A full-stack webapp to find the best car deals from Manheim auctions and other sources.
manheim-deals-finder/
��� app.jsx # React frontend (standalone with sample data)
��� ManheimDealsFinder.jsx # Alternative React component
��� index.html # HTML shell with dark theme CSS
��� backend/
� ��� main.py # FastAPI server with all API endpoints
� ��� config.py # Configuration (DB, ports, intervals)
� ��� models.py # SQLAlchemy models + Pydantic schemas
� ��� requirements.txt # Python dependencies
� ��� .env.example # Environment variables template
� ��� scrapers/
� ��� __init__.py
� ��� base_scraper.py # Abstract base scraper class
� ��� manheim_scraper.py # Manheim.com scraper (requires login)
� ��� copart_scraper.py # Copart auction scraper
� ��� carscom_scraper.py # Cars.com scraper
Open app.jsx in any React environment or use the standalone index.html.
- Install Python dependencies:
cd backend
pip install -r requirements.txt- Copy and configure environment:
cp .env.example .env
# Edit .env with your Manheim credentials- Start the backend:
python main.pyThe API runs at http://localhost:8000 with auto-docs at /docs.
- Search & filter by make, model, year, price, mileage, fuel type, transmission
- Deal Score algorithm (compares price vs MMR value + condition + mileage)
- Side-by-side vehicle comparison (up to 3 cars)
- Price distribution & top makes charts
- Dark/Light mode toggle
- DealShield & Buy Now filters
- Pagination with smart page navigation
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/cars |
Search cars with filters |
| GET | /api/cars/{id} |
Get car details |
| GET | /api/dashboard |
Dashboard statistics |
| GET | /api/filters |
Available filter options |
| POST | /api/scrape/{source} |
Trigger manual scrape |
| POST | /api/alerts |
Create price alert |
- Backend: Python, FastAPI, SQLAlchemy, APScheduler
- Frontend: React, Recharts, Lucide Icons
- Database: SQLite (default) / PostgreSQL
- Scrapers: Playwright/aiohttp-based