Important
The project is still work in progress
A half-baked mock online shopping platform that simulates the process of Shopee, one of the largest online shopping platform in South East Asia, without the transportation layer and order management system of the process.
- User Service: user authentication, user authorization and user access control with JWT token.
- Product Service: Only users that are identified as vendors are allowed to create a product and no duplicate product could be created. Customers could add desired product into their shopping cart.
- Cart Service: Users that are identified as customers could perform CRUD operation on a cart and checkout whenever they want.
- Order Service: When the cart is checked out, the items within a cart will be converted a sales order.
- Search Service: Allow users to search for specified product through query parameter or filter products into a specified category
- Login as a vendor -> Create some products
- Login as a customer -> Search for the products -> Add some products into the cart -> Checkout the cart -> View the Order
- Python: 3.12+
- PostgreSQL: 16.1
- Install Dependencies
pip install -r requirements.txt
-
Install PostgreSQL and Pgadmin and create a database
db
in Pgadmin -
Copy
.env.example
to.env
-
Run
openssl rand hex -32
and store the data generated intoREFRESH_TOKEN_SECRET_KEY
in.env
-
Within your terminal run
uvicorn main:app --reload
- Navigate to http://127.0.0.1:8000/docs to see all the services that is provided
- Create elastic search
- Rate Limiting
- Pagination as a middleware
- Logger
- Create a Ticketing system so that users could share the problems of the product with the vendor
- Additional services for admin
- Use HTTPS for security consideration
- Casbin RBAC Access Control Model
- Once checkout, send an invoice email for the order confirmation
- Email verification flow and send invoice email once payment is made