A React application for exploring and visualizing OBD parameter data from the OBDb GitHub organization repositories.
OBDb Explorer is a web application that provides an improved interface for exploring the OBD parameter definitions across different vehicle repositories. Unlike the original 2D matrix visualization, this application offers a more user-friendly and efficient way to:
- Browse vehicles by make and model
- Search and filter OBD parameters
- Explore commands and their vehicle support
- View parameter details organized by vehicle, ECU, or suggested metric
- Vehicle Browser: Browse all available vehicles by make and model
- Parameters Database: Search and filter parameters by name, ID, or suggested metric
- Commands Explorer: View all OBD commands and which vehicles support each command
- Vehicle Detail View: Explore all parameters available for a specific vehicle, organized by ECU or metric
- Responsive Design: Works well on desktop and mobile devices
- Fast and Efficient: Quick filtering and searching capabilities without performance issues
- Data Consistency: Ensures consistent data formatting and validation (Learn more)
obdb-explorer/
├── public/
│ ├── index.html
│ └── data/
│ └── matrix_data.json # Generated data file
├── src/
│ ├── components/ # Reusable UI components
│ │ ├── Navbar.js
│ │ └── Footer.js
│ ├── pages/ # Page components
│ │ ├── Home.js
│ │ ├── Vehicles.js
│ │ ├── Parameters.js
│ │ ├── Commands.js
│ │ └── VehicleDetail.js
│ ├── services/ # Data services
│ │ └── dataService.js
│ ├── App.js # Main application component
│ └── index.js # Entry point
└── scripts/
├── extract_data.py # Data extraction script
├── validate_json.py # JSON validation script
└── matrix_data_schema.json # Schema for data validation
- Node.js (v14 or higher)
- npm or yarn
- Python 3.6+ (for data extraction)
- GitHub CLI (
gh
) installed and authenticated for repository access
-
Clone this repository:
git clone https://github.com/yourusername/obdb-explorer.git cd obdb-explorer
-
Install dependencies:
npm install
-
Extract data from OBDb repositories:
# Create the data directory mkdir -p public/data # Run the extraction script (fetch repositories first) python scripts/extract_data.py --fetch --workspace workspace --output public/data
Or, if you already have the repositories cloned:
python scripts/extract_data.py --workspace workspace --output public/data
-
Start the development server:
npm start
The application will be available at http://localhost:3000.
To build the application for production:
npm run build
The build files will be available in the build/
directory and can be deployed to any static hosting service.
usage: extract_data.py [-h] [--org ORG] [--workspace WORKSPACE] [--output OUTPUT] [--fetch] [--force]
Extract OBD parameter data for the OBDb Explorer
optional arguments:
-h, --help show this help message and exit
--org ORG GitHub organization name (default: OBDb)
--workspace WORKSPACE Workspace directory for cloning repos (default: workspace)
--output OUTPUT Output directory for JSON data (default: public/data)
--fetch Fetch/update repositories before extraction
--force Force update even if no changes detected
To validate and normalize existing JSON data:
usage: validate_json.py [-h] --input INPUT --output OUTPUT [--schema SCHEMA]
Validate and normalize JSON data for consistent output
optional arguments:
-h, --help show this help message and exit
--input INPUT Input JSON file path
--output OUTPUT Output normalized JSON file path
--schema SCHEMA JSON schema file path for validation
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.