Skip to content

nevetssf/tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Price Tracker

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.

Features

  • 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)

Getting Started

Prerequisites

  • Docker and Docker Compose
  • eBay Developer Account (for eBay API credentials)

eBay API Setup

  1. Go to eBay Developers Program
  2. Sign up for a developer account
  3. Create a new application
  4. Get your App ID, Cert ID, and Dev ID from the keys page

Installation

  1. Clone this repository
  2. Copy environment file:
    cp backend/.env.example backend/.env
  3. Edit backend/.env and add your eBay API credentials
  4. Start the application:
    docker-compose up -d
  5. Access the web interface at http://localhost:3000

Development Mode

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 --reload

Frontend:

cd frontend
npm install
npm run dev

Configuration

Edit 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)

Usage

  1. Add a search: Click "+ Add Search" in the sidebar
  2. Enter details: Provide a name and keywords for your search
  3. Scan manually: Click "Scan Now" to fetch current listings
  4. View results: Items appear in the sortable table
  5. Track changes: Price changes are automatically recorded

Architecture

  • 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

API Endpoints

  • GET / - Health check
  • GET /queries - List all search queries
  • POST /queries - Create new search query
  • GET /queries/{id}/items - Get items for a query
  • POST /queries/{id}/scan - Manually trigger scan
  • DELETE /queries/{id} - Deactivate a query

Project Structure

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

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors