- Introduction
- Scenario
- Backend
- Frontend
- How to Run With Docker
- How to Run With Kubernetes
- How to Run Tests
Fast Commerce is a comprehensive e-commerce system designed for exceptional performance, extensibility, and maintainability. This repository houses both the backend and frontend components of the system, offering a complete solution for online shopping. Fast commerce uses Fastapi as the backend framework and React as the frontend framework.
FastPicture a thriving e-commerce ecosystem where tech giants like Apple and Microsoft have joined forces with Fast Commerce. Aspiring company owners embark on their journey by registering as users, gaining the opportunity to become recognized vendors upon approval. These vendors seamlessly introduce their world-class products to our platform. When a user places an order, vendors take charge of delivering the items to our central hub. Fast Commerce acts as the catalyst, orchestrating the entire order fulfillment process, ensuring prompt delivery to end-users. This collaborative synergy empowers businesses to effortlessly expand their reach, while customers relish unhindered access to premium products.
The backend of Fast Commerce is a robust system organized into several key components, each responsible for specific functionalities:
- Authentication (Auth): Manages user registration, verification, and login.
- User Management (User): Handles user profile retrieval and updates.
- Vendor Management (Vendor): Allows users to enroll as vendors and add products.
- Product Management (Products): After vendor approval, users can add and manage products.
- Order Management (Order): Enables users to create orders and manage their status.
- Payment Processing (Payment): Handles payments for orders.
The backend leverages cutting-edge technologies like Docker, Alembic, SQLAlchemy, Celery, and Redis to provide a solid foundation for the e-commerce platform.
For detailed documentation on the backend components and how to set up and run the backend system, please refer to the Backend README.
The Frontend Is Not Yet Available. We regret any inconvenience this may cause. If you are interested in contributing to the development of the frontend, please feel free to reach out. Please refer to the Frontend README for more information.
To get Fast Commerce up and running on your local environment, follow these steps:
- Clone the Repository:
git clone https://github.com/mohamad-liyaghi/fast-commerce.git
- Cd into the Backend Directory:
cd fast-commerce/
- Build the Backend Docker Image:
Make build
- Run the Backend Docker Container:
Make run
You can run tests by running Make test
.
You can now access the backend server at http://localhost:8000/
.
To run Fast Commerce backend with Kubernetes, follow these steps:
- Install Minikube: Follow the instructions here.
- Start Minikube:
minikube start
- Clone the Repository:
git clone https://github.com/mohamad-liyaghi/fast-commerce.git
- Cd into the Backend Directory:
cd fast-commerce/
- Create a Confmap:
make confmap
- Run the Kubernetes Deployment:
kubectl apply -f kubernetes/
- Get external ip from minikube:
minikube service backend
The backend of Fast Commerce is equipped with a comprehensive test suite to ensure its reliability and robustness.
To run tests, you can run the following command on the backend directory:
make test
If you are running the project with kubernetes, you can run tests by running the following command:
make test_k8s