Skip to content

a-samir97/simple-ecommerce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple Ecommerce

Business Requirenments

  • Admin can create products, user can buy products
  • Each product has its parts and options.
  • Product can have more than one part.
  • Each Part can have more than one options.
  • 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.

Database Schema

Database

Backend Endpoints

  • Swagger URL-> http://localhost:8000/swagger/
  • Category endpoints Category Endpoints
  • Product endpoints Product Endpoints
  • Part endpoints Part Endpoints
  • Option endpoints Option Endpoints
  • Custom Price endpoints Custom Price Endpoints
  • Prohibited Combinations endpoints Prohibited Combinations Endpoints
  • Order (checkout) endpoint Order Endpoints

Challenges

  • 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

ScreenShot

  • Create product step Product
  • Create part step Parts
  • Create options step Options
  • Create custom price step Custom Price
  • Create prohibited combinations step Combinations
  • Cart and Checkout Cart and Checkout
  • Login (Note: login is used for admin only to create products) Login
  • Product list Product List
  • Product details Product details

helpful commands

  • Command to run unit test make test Unit test

  • Command to load data (fixtures) make loaddata Load data

  • Command to create super user (admin) make superuser Super User

Tools and Langauges

  • Backend
    • Python
    • Django
    • Django Rest Framework
  • Frontend
    • JavaScript
    • React JS
  • Containerzation
    • Docker
  • Documentation
    • Swagger

Improvements

  • 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)

About

Simple E-commerce using Python and Reactjs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published