College students are spending thousands each year on textbooks they will use for a semester.
With no system in place for colleges to facilitate inter-student exchanges of textbooks to save money.
This app will change that. With this app, students can post their used textbooks for free and this way new students can go on here and when they are finished, post it again. With this method, students won't have to buy textbooks.
Students sign up using their email. They then input the ISBN information of the textbook and find a post. Once found they can contact the person and set up an exchange date.
Professors will be the driving force in getting this out as they can introduce it to their classes for students who need textbooks and can't afford them. Admin users will be moderating posts and verifying the identities of all users via email and other sources. Students can also add comments on whether this textbook is needed.
To make this app we would be using fast API, MongoDB, along with Python, HTML, and CSS MongoDB will be used as a database to store the textbooks along with storing students and admin information to specify roles and user data. For the textbook data, we will be using the Google Books API key.
Home Page - clean and consistent user interface
Sign Up Page with Admin Option
Add Textbook, Search for Textbooks, Reservation Details, Upload and Download ISBN Files
Collection of Current Textbooks with Details, Delete and Review Functionality
Review Page - showcasing CRUD functionality
Mongo Collections: Reviews, Reservations, Textbooks, Students(Users)
Once you open up our app you will be greeted with a login/sign-up option and from there they can search for their desired textbook and once found, reserve it and contact the user who posted it.
To run this code, follow the steps outlined below:
python -m venv venv
.\venv\Scripts\activate
Once done using this code, use 'deactivate' to deactivate the venv
pip install fastapi uvicorn
pip install motor
This should install all the required dependencies
Alternatively, you can use 'pip install -r requirements.txt'. I highly reccomend this
Use 'python -m pip list' to view all the currently installed dependencies
You can view requirements.txt to see all required dependencies
Use 'pip freeze > requirements.txt' command to create a file with all required dependencies
After doing pip install -r requirements.txt you must do 'pip install pydantic==1.10.9' to resolve some confilcts in the dependecies
All javascript files are in a folder named 'static' and all html files are in a folder named 'templates'
CURRENT FEATURES:
Add/Delete textbooks
Search textbooks
Reserve textbooks
CRUD Reviews for each textbook
Register as admin or student; Login/out to access textbook data
Download list of all current textbooks in database
Upload a file containg 1 isbn on each line, all isbns will automatically be uploaded into the database
Logging Stored on Disk
One thing to note is after uploading a file of isbns the program may take a couple seconds to add all the books and refresh the list.
Logs can be seen in application.log file