Backend (server.py): - Fix N+1 query in /api/diagrams/<id>/parts with batch cross-ref query - Add LIMIT safety nets to 15 endpoints (50-5000 per data type) - Add pagination to /api/vehicles, /api/model-year-engine, /api/vehicles/<id>/parts, /api/admin/export - Optimize search_vehicles() EXISTS subquery to JOIN - Restrict static route to /static/* subdir (security fix) - Add detailed=true support to /api/brands and /api/models Frontend: - Extract shared CSS into shared.css (variables, reset, buttons, forms, scrollbar) - Create shared nav.js component (logo + navigation links, auto-highlights) - Update all 4 HTML pages to use shared CSS and nav - Update JS to handle paginated API responses Data quality: - Fix cross-reference source field: map 72K records from catalog names to actual brands - Fix aftermarket_parts manufacturer_id: correct 8K records with wrong brand attribution - Delete 98MB backup file, orphan records, and garbage cross-references - Add import scripts for DAR, FRAM, WIX, MOOG, Cartek catalogs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Vehicle Database
A comprehensive database system for storing information about vehicle brands, models, years, and engines.
Overview
This project provides a structured database for vehicle information with the following entities:
- Brands: Vehicle manufacturers with details like country of origin and founding year
- Models: Vehicle models with body type, generation, and production years
- Years: Calendar years for vehicle production
- Engines: Engine specifications including displacement, cylinders, power, and fuel type
- Model-Year-Engine: Junction table linking all entities with trim levels and specifications
Database Schema
The database uses SQLite and consists of the following tables:
brands
id: Primary keyname: Brand name (e.g., Toyota, Ford)country: Country of originfounded_year: Year the company was founded
engines
id: Primary keyname: Engine namedisplacement_cc: Engine displacement in cubic centimeterscylinders: Number of cylindersfuel_type: Type of fuel (gasoline, diesel, electric, hybrid)power_hp: Horsepowertorque_nm: Torque in Newton metersengine_code: Manufacturer engine code
models
id: Primary keybrand_id: Foreign key to brands tablename: Model name (e.g., Camry, Civic)body_type: Body style (sedan, SUV, truck, etc.)generation: Model generationproduction_start_year: Year production startedproduction_end_year: Year production ended (NULL if still in production)
years
id: Primary keyyear: Calendar year
model_year_engine
id: Primary keymodel_id: Foreign key to models tableyear_id: Foreign key to years tableengine_id: Foreign key to engines tabletrim_level: Trim level (e.g., base, luxury, sport)drivetrain: Drive system (FWD, RWD, AWD, 4WD)transmission: Transmission type (manual, automatic, CVT)
Setup
- Install Python 3.x if not already installed
- Clone or download this repository
- Run the database manager script:
cd vehicle_database
python scripts/database_manager.py
This will create the database, populate it with sample data, and run example queries.
Usage
The VehicleDatabaseManager class provides methods to:
- Create and manage the database schema
- Insert new brands, models, engines, and years
- Query vehicle information
- Link models, years, and engines with trim levels and specifications
Sample Queries
The script demonstrates several query patterns:
- Get all brands
- Get models for a specific brand
- Search for specific vehicles by brand, model, year, or engine
- Retrieve comprehensive vehicle information
Extending the Database
To add more data, you can:
- Use the provided Python API
- Directly execute SQL commands on the SQLite database
- Import data from CSV files using the provided structure
File Structure
vehicle_database/
├── sql/
│ └── schema.sql # Database schema
├── scripts/
│ └── database_manager.py # Python database manager
├── data/ # Directory for data files
└── README.md # This file