MiniShop is a simple eCommerce API built with FastAPI. It includes features for user authentication, product management, cart functionality, and email notifications.
- User Authentication: Register, login, and manage users with JWT tokens.
- Product Management: Create, update, and delete products.
- Cart Functionality: Add products to the cart, update quantity, and view cart contents.
- Email Notifications: Sends order confirmation and other notifications via email.
- FastAPI - Web framework for building APIs.
- Tortoise ORM - Object Relational Mapper for interacting with the Sqlite database.
- Sqlite - Relational database for storing product, user, and order data.
- Uvicorn - ASGI server for running the FastAPI app.
- Docker - Containerization for the API and database services.
- Docker Compose - Tool for defining and running multi-container Docker applications.
- Clone the repository:
git clone https://github.com/felixLandlord/eCommerce.git
cd eCommerce
- Set up environment variables:
EMAIL=""
PASS=""
SECRET=""
PASS is your gmail App password SECRET is a random generated token using the secrets library in python
- Install dependencies:
poetry install
poetry shell
- Build and run the Docker containers:
docker-compose up -d
- Access the API:
fastapi dev
- The FastAPI app will be available at http://localhost:8000.