GithubHelp home page GithubHelp logo

mylibrary's Introduction

myLibrary 馃摎

A network application that keep track of books for each account.

Table of contents

General info

Network desktop application that keep track of books for each account. At first the user have to register with username and a password, after the user login, he can look for new books to add. Each user have two tables: "wishlist" - books that the user will want to read. "booksRead" - books that the user already read.

Every-time the user search for book, the server will activate a bot to find the book from https://simania.co.il/ . The project optimize for Hebrew books especially. English books support will come soon.

***The project works on Linux MacOS and Windows. ***

Technologies

The project created with:

  • python 3.9
  • kivy
  • sqlite
  • selenium

Setup

Make sure you have python and virtualenv in your computer.

In the project directory run:
Linux \ MacOS:

$ virtualenv .env && source .env/bin/activate && pip install -r requirements.txt

Windows:

$ virtualenv .env && .env\Scripts\activate && pip install -r requirements.txt

Navigate to the Server folder and run:

$ python Server.py

Navigate to the Client folder and Run the desktop application:

$ python kivyapp.py 127.0.0.1

Keep in mind:

The IP address should point to the IP address of the server, If you run the Server in your local computer run the above IP, If you run the server in another computer find the ip for the server and replace 127.0.0.1 with the correct IP.

mylibrary's People

Contributors

mraviel avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

mylibrary's Issues

Clean the code for publish.

Clean the code to make it more readable and efficient.
The lust thing before publish.
Do not forget:

  1. clear the database.
  2. clean the code.
  3. change names for var \ func \ classes if needed.
  4. Change the server file, dictionary instead of multiple if.

Update the web driver automatically

Currently the web driver isn't match to the chrome on the local computer,
Each time the user activate the server the user need to manually download the right web driver (chrome driver).

Add the option to update the web driver automatically each time the server is activated.

Create new tables for the database.

Create new tables for the database.
Now the is only one --> Users
There need to be more tables:
Books --> store all the books in the system
WishList --> store all the books that belong to accounts.
BooksRead --> store all the books that belong to accounts.

Book page

Add a book page, when the user click on book he enter to the book page that contain all the details of the book,
And the option to delete the book AND the option to mark the book as I READ.

Add book page

Each book have it's own page,
when clicking on book a book page is open with the data about the book:
image, summary, name, author.
The book page has option:
1.Delete the book
2. Mark the book as read and transfer the book to Wish I Read.
3. Go back to Wish List Window.

Organize the server file.

The code in the server file is a little messy.
Change the code to be more efficient. (get rid of if statements).
Change var names.

Bot activation

Web Scrapping a whole page will be problematic because there are legal limitation,
So what we will do is to activate a bot in the background (Server side) that will activate him self every time
"Add new book" is clicked, the bot will search for the book and pull the information to the Books table -- database.

Mark as read.

Add the option to mark the book as read and transfer the book to Books I Read.

Make the login button to work

The login button is only make a change in the screen.
Need to change that to make a login to the account (check if the account exists)
if True: login and change screen
else: do not make any change

Click on exit does not exit the entire app.

When clicking on exit symbol the program does not end to run because of the Client that run at the same time.
The program try to close itself but the client does'nt end.
Needed to find a command that when you close the program (when click on x) than the client will close itself.
sys.exit()

Add new book button.

Make the "Add new book" button to work.
It's means that need to add the webScrapper and when enter the button the web scrapper wil work.
Store all the info in the database.

Search book

Before activate the bot, search the book in books table, the search bar should show the user all the relevant books to choose from.

Delete book

Add the option to delete a book from the book page.

Rearrange the folders in the project.

Rearrange the folders in the project.
The project will have 2 main folders, one for the client side and one for the server side.
Each folder will contain the relevant data it's need.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    馃枛 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 馃搳馃搱馃帀

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google 鉂わ笍 Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.