A web application to track item prices across multiple marketplaces. Currently supports eBay, with plans to add KEH.com, MPB.com, and other photography equipment marketplaces. Search for items by keywords, monitor price changes, and view results in a clean web interface.
- Keyword-based searches: Track items like "Nikon 85mm LTM lens"
- Automatic daily scans: Configurable scheduled scans
- Price history tracking: Monitor price changes over time
- Web interface: Accessible from any device on your local network
- Tabbed navigation: Separate tabs for different search queries
- Sortable tables: Click column headers to sort results
- Multi-marketplace support: Designed to track prices across multiple sites
- eBay integration: Uses official eBay Finding API (more marketplaces coming soon)
- Docker and Docker Compose
- eBay Developer Account (for eBay API credentials)
- Go to eBay Developers Program
- Sign up for a developer account
- Create a new application
- Get your App ID, Cert ID, and Dev ID from the keys page
- Clone this repository
- Copy environment file:
cp backend/.env.example backend/.env
- Edit
backend/.envand add your eBay API credentials - Start the application:
docker-compose up -d
- Access the web interface at
http://localhost:3000
Backend:
cd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
uvicorn app.main:app --reloadFrontend:
cd frontend
npm install
npm run devEdit backend/.env to configure:
SCAN_SCHEDULE_HOUR: Hour for daily scans (0-23, default: 9)SCAN_SCHEDULE_MINUTE: Minute for daily scans (0-59, default: 0)DATABASE_URL: Database connection string (SQLite by default)
- Add a search: Click "+ Add Search" in the sidebar
- Enter details: Provide a name and keywords for your search
- Scan manually: Click "Scan Now" to fetch current listings
- View results: Items appear in the sortable table
- Track changes: Price changes are automatically recorded
- Backend: FastAPI (Python) - REST API, eBay integration, scheduling
- Frontend: React + Vite - Web interface with TanStack Table
- Database: SQLite (local) - Item and price history storage
- Scheduler: APScheduler - Automated daily scans
- Container: Docker - Easy deployment
GET /- Health checkGET /queries- List all search queriesPOST /queries- Create new search queryGET /queries/{id}/items- Get items for a queryPOST /queries/{id}/scan- Manually trigger scanDELETE /queries/{id}- Deactivate a query
tracker/
├── backend/ # FastAPI backend
│ ├── app/
│ │ ├── main.py # API endpoints
│ │ ├── models.py # Database models
│ │ ├── database.py # Database setup
│ │ ├── ebay_api.py # eBay API client
│ │ ├── scheduler.py # Scheduled tasks
│ │ └── config.py # Configuration
│ ├── requirements.txt
│ └── Dockerfile
├── frontend/ # React frontend
│ ├── src/
│ │ ├── App.jsx # Main application
│ │ └── components/ # React components
│ ├── package.json
│ └── Dockerfile
└── docker-compose.yml # Container orchestration
MIT