- 🔐 Authentication & Authorization (JWT)
- 📦 Product, Category & Image Management
- 🛒 Cart, Checkout & Orders
- 💳 Stripe Payment Integration
- 📊 Monitoring with Prometheus + Grafana
- 🐞 Logging & Error Tracking with Sentry
- 🧵 Background Tasks (Celery + Flower)
- 🧪 Full Testing Suite (pytest)
- 💅 Code Quality Tools: ruff, black, isort, mypy
- 🛡 Security Layers: bandit, detect-secrets, pip-audit, safety
- aiofiles: Async file I/O
- aiosqlite: Async SQLite driver
- alembic: Database migrations
- argon2-cffi: Password hashing
- bandit: Security analysis
- black: Code formatter
- celery: Task queue system
- cryptography: Cryptographic library
- detect-secrets: Secret scanner
- fastapi: Web framework
- fastapi-mail: Email sending
- flower: Celery monitoring UI
- httpx: Async HTTP client
- isort: Import sorter
- loguru: Logging library
- mypy: Static type checker
- orjson: Fast JSON serialization
- passlib: Password hashing utilities
- pip-audit: Vulnerability scanner
- pre-commit: Git hooks manager
- prometheus-fastapi-instrumentator: Metrics exporter
- psycopg: PostgreSQL driver
- pydantic-settings: Config management
- pydantic: Data validation
- pyjwt: JWT handling
- pytest: Testing framework
- pytest-asyncio: Async tests
- pytest-cov: Coverage reports
- python-dotenv: Environment loader
- python-jose: JWT + Crypto
- python-multipart: Multipart form parser
- ruff: Linter & formatter
- safety: Security auditing
- sentry-sdk: Error tracking
- stripe: Payments API
- uvicorn: ASGI server
There are two ways to start the E-Commerce API:
Make sure you have Docker and Docker Compose installed.
docker compose up --builddocker compose downhttp://localhost:8000
pip install -r requirements.txtor (if using pyproject.toml)
uv pip install . # or use "uv sync"Create .env file:
cp .env-example .envUpdate your DB URL, secret keys, etc.
alembic upgrade headuvicorn dev:app --app-dir src --host 0.0.0.0 --port 8000 --reload