PriceLens is a microservice-based system for tracking, comparing, and forecasting product prices across Amazon and Flipkart. Built as a successor to a monolithic predecessor, this project demonstrates a modern Clean Architecture approach to distributed systems.
PriceLens is designed as a collection of independent, bounded contexts:
- Frontend: React + TypeScript + TailwindCSS
- Backend: FastAPI microservices (Auth, Search, Tracking, Analytics, Notification)
- Scraping Engine: Distributed Celery workers (Selenium) for Amazon/Flipkart
- Infrastructure: Orchestrated via Kubernetes; monitored with Prometheus/Grafana
- Persistence & Cache: PostgreSQL (records) + Redis (cache-aside) + RabbitMQ (queues)
For the full system diagram and data contracts, see docs/architecture.md.
This project emphasizes production-grade engineering practices, not just functional code.
| Status | Highlight |
|---|---|
| Testing | ✅ Full CI/CD coverage for all core backend services. |
| DevOps | ✅ Multi-stage Docker builds, Kubernetes StatefulSets, and HPA. |
| Observability | ✅ 8-panel Grafana dashboard for real-time traffic and scrape health. |
| Readiness |
- Docker & Docker Compose
- Node.js 22+
- Python 3.12+
-
Clone & Setup
git clone https://github.com/your-username/pricelens.git cd pricelens -
Configure Environment
Copy
.env.examplefiles to.envin each service directory. -
Launch Stack
docker compose up --build
-
Database Migrations
docker compose exec auth-service alembic upgrade head docker compose exec tracking-service alembic upgrade head
-
Verify the Installation
Your services are now running at the following local ports:
- Frontend: http://localhost:8080
- Auth API: http://localhost:8001/docs
- Tracking API: http://localhost:8003/docs
- RabbitMQ Management: http://localhost:15672
Login:pricelens/pricelens_dev_password
pricelens/
├── frontend/ # React application
├── services/ # Microservices (Auth, Search, Tracking, etc.)
├── infra/ # K8s manifests, Prometheus/Grafana config
└── docs/ # Architectural deep-dives and readiness tracking
Built as a portfolio project to demonstrate backend engineering, distributed systems design, and cloud-native architecture. Every architectural decision is documented with its rationale see Architecture.md for the phase-by-phase design history.