Skip to content

ashasic/TextbookApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UIBookShelf

Final Project

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.

How it works:

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.

Those involved:

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.

What will be used:

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.

The Application:

Home Page with clean and consistent user interface Home Page - clean and consistent user interface

Login Page Login Page

Sign Up Page with Admin Option Sign Up Page with Admin Option

Add Textbook, Search for Textbooks, Reservation Details, Upload and Download ISBN Files Add Textbook, Search for Textbooks, Reservation Details, Upload and Download ISBN Files

Collection of Current Textbooks with Details, Delete and Review Functionality Collection of Current Textbooks with Details, Delete and Review Functionality

Review Page - showcasing CRUD functionality Review Page - showcasing CRUD functionality

Mongo Collections: Reviews, Reservations, Textbooks, Students(Users) Mongo Collections: Reviews, Reservations, Textbooks, Students(Users)

Procedure

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:

Step 1: Ensure that the latest version of python is installed.

Step 2: Create and activate a virtual python environment using the following commands:

    python -m venv venv
    .\venv\Scripts\activate

Once done using this code, use 'deactivate' to deactivate the venv

Step 3: Install fastAPI/uvicorn

    pip install fastapi uvicorn

Step 3: Connect FastAPI to MongoDB

    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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •