- A cloud full-stack web app called book subscription system
- Main function is that the administrator can manage books, customers can subscribe to books and view their orders
- I led this group project for COMS E6156, written by 6 people.
- Use datagrip to set up database and schema and change credentials first
- Install all dependencies
- Run frontend and backend app independently
-
Run sql
- modify your database url in every database.py in all folders
- run sql_create_table.sql in datagrip to create schema
-
Update credentials as your own when you want to use google login in local
- create your own google cloud API credentials because my credentials have expired
- create OAuth 2.0 Client IDs
- Authorized JavaScript origins: http://127.0.0.1:5000
- Authorized redirect URIs: http://127.0.0.1:5000/auth
- modify credentials in book-subscription-system/composition/main.py to use your own
- GOOGLE_CLIENT_ID = "....apps.googleusercontent.com"
- GOOGLE_CLIENT_SECRET = "GOCSPX-..."
- create your own google cloud API credentials because my credentials have expired
-
Terminal 0:
cd frontend
npm install package
npm start
-
Terminal 1,2,3,4:
cd order
andcd book
andcd user
andcd composition
pip install -r requirements.txt
python main.py
- or if no main
uvicorn main:app --reload
(default port is 8000)
- sprint 1: https://github.com/donald-f-ferguson/Topics-in-SW-Engineering-F22/blob/main/Sprints/SPRINT-1.md
- sprint 2: https://github.com/donald-f-ferguson/Topics-in-SW-Engineering-F22/blob/main/docs/Project-Sprints/README-Sprint-2.md
- fastapi as a backend framework
- react.js as a frontend framework
- we use microservices as a software architecture (each folder is a microservice)
- mysql database (rds in aws)
/
/login
/auth
/books
/books/{id}
/orders
/orders/{id}
/users
/users/{id}
/users/search-by-email
/users/json
- ...
you can download to see them if needed.