- Business Requirements
- Database Schema
- Backend Endpoints
- Challenges
- Screenshots
- Helpful Commands
- Tools and Langauges
- Improvements
Admin
can create products,user
can buy products- Each
product
has itsparts
andoptions
. Product
can have more than onepart
.- Each
Part
can have more than oneoptions
. - Each product can have its roles in Custom Price and Prohibited Combinations.
Custom Price
is added if the user selected two or more options that need more cost.Prohibited Combination
added from the admin side, to check and validate that user can not select these cominations.
Swagger URL-> http://localhost:8000/swagger/
- Category endpoints
- Product endpoints
- Part endpoints
- Option endpoints
- Custom Price endpoints
- Prohibited Combinations endpoints
- Order (checkout) endpoint
- Frontend Side
- All the frontend stuff :joy
- Backend Side
- Handling race conditions in purchasing a new product
- Designing database to make tha admin able to add more than product
- Create product step
- Create part step
- Create options step
- Create custom price step
- Create prohibited combinations step
- Cart and Checkout
- Login (Note: login is used for admin only to create products)
- Product list
- Product details
- Backend
- Python
- Django
- Django Rest Framework
- Frontend
- JavaScript
- React JS
- Containerzation
- Docker
- Documentation
- Swagger
- Frontend UI
- Each product can have more than 1 image
- Each option can have more than 1 image
- Authentication and Authorization (User Roles)
- Enhance and improve structure of the unit test (FakeRepo) for testing
- Add Account model for every user (to check balance before purchasing product)