- Migrate from SQLite to PostgreSQL with normalized schema - Add 11 lookup tables (fuel_type, body_type, drivetrain, transmission, materials, position_part, manufacture_type, quality_tier, countries, reference_type, shapes) - Rewrite dashboard/server.py (76 routes) using SQLAlchemy text() queries - Rewrite console/db.py (27 methods) using SQLAlchemy ORM - Add models.py with 27 SQLAlchemy model definitions - Add config.py for centralized DB_URL configuration - Add migrate_to_postgres.py migration script - Add docs/METABASE_GUIDE.md with complete data entry guide - Rebrand from "AUTOPARTS DB" to "NEXUS AUTOPARTS" - Fill vehicle data gaps via NHTSA API + heuristics: engines (cylinders, power, torque), brands (country, founded_year), models (body_type, production years), MYE (drivetrain, transmission, trim) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Vehicle Database Dashboard
A web-based dashboard for searching and filtering vehicle data from your database.
Features
- Filter vehicles by brand, model, year, and engine
- Responsive web interface with Bootstrap
- Real-time filtering and search
- Detailed vehicle information display
- Modern UI with cards and badges
Prerequisites
- Python 3.x
- Flask (installed via
sudo apt-get install python3-flask) - SQLite database with vehicle data (created in the vehicle_database directory)
Setup
- Make sure you have the vehicle database created in the
../vehicle_database/vehicle_database.dbpath - Install Flask:
sudo apt-get install python3-flask - Run the dashboard server:
python3 server.py
Usage
-
Start the server:
cd dashboard python3 server.py -
Open your web browser and navigate to
http://localhost:5000 -
Use the filters on the left panel to search for vehicles:
- Select a brand from the dropdown
- Select a model (based on the selected brand)
- Select a year
- Select an engine type
- Click "Search Vehicles" to apply filters
-
The results will appear in the right panel with detailed information
API Endpoints
The dashboard uses the following API endpoints:
GET /api/brands- Get all vehicle brandsGET /api/models?brand=[brand]- Get models for a specific brandGET /api/years- Get all yearsGET /api/engines- Get all enginesGET /api/vehicles?[filters]- Search vehicles with optional filters
File Structure
dashboard/
├── index.html # Main dashboard page
├── dashboard.js # Frontend JavaScript
├── server.py # Flask backend
├── requirements.txt # Python dependencies
├── start_dashboard.sh # Startup script
└── README.md # This file
Customization
You can customize the dashboard by:
- Modifying the CSS styles in index.html
- Adding more filters in the JavaScript
- Changing the layout in index.html
- Adding more vehicle details in the display
Troubleshooting
- If the server won't start, make sure the vehicle database exists
- If filters don't populate, check that the database has data
- If the page doesn't load, verify that Flask is installed correctly