92 lines
3.1 KiB
Markdown
92 lines
3.1 KiB
Markdown
# Vehicle Database — 2015+ 400+ HP Production Cars
|
|
|
|
## Source of truth
|
|
- **Live URL:** https://core.itpropartner.com/vehicles.json
|
|
- **Local copy (Caddy):** /var/www/static/vehicles.json
|
|
- **Portal copy:** /root/portal-mockup/vehicles.json
|
|
- **Caddy config:** core.itpropartner.com serves static files from /var/www/static/
|
|
|
|
## Database Stats (as of Jul 7, 2026)
|
|
- **47 makes** — every global automaker
|
|
- **373 models** — every production 2015+ car with 400+ HP
|
|
- **1,433 year-HP data points**
|
|
|
|
## Data Structure
|
|
|
|
```
|
|
{
|
|
"Make": {
|
|
"Model": {
|
|
"Year": HP,
|
|
"Year": HP,
|
|
...
|
|
},
|
|
...
|
|
},
|
|
...
|
|
}
|
|
```
|
|
|
|
Example:
|
|
```json
|
|
{
|
|
"Ferrari": {
|
|
"296 GTB": {
|
|
"2022": 819,
|
|
"2023": 819,
|
|
"2024": 819,
|
|
"2025": 819
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## Maintenance Rules
|
|
1. **New model launches** — When new model years launch (2027s, mid-cycle refreshes), add them proactively within a week of announcement
|
|
2. **Corrections** — User reports missing cars (like ZR1 year ranges). Add immediately, verify with the user
|
|
3. **No snippet updates needed** — The Apex WPForms form fetches live from the JSON endpoint. Updating the JSON is sufficient
|
|
4. **HP values** — use manufacturer claimed horsepower. For EVs, use combined system HP
|
|
5. **Sorting** — Makes alphabetically, models alphabetically, years descending (newest first)
|
|
6. **Years are strings** — `"2025"` not `2025`. The vehicle registration form expects string keys.
|
|
7. **HP is integer** — No decimal points.
|
|
|
|
## Deploy Updates
|
|
|
|
After editing vehicles.json in portal-mockup, you MUST copy to the web root:
|
|
|
|
```bash
|
|
cp /root/portal-mockup/vehicles.json /var/www/static/vehicles.json
|
|
```
|
|
|
|
Then verify via curl:
|
|
```bash
|
|
curl -s https://core.itpropartner.com/vehicles.json | python3 -c "import sys,json; d=json.load(sys.stdin); print(len(d.keys()), 'makes')"
|
|
```
|
|
|
|
## Common Maintenance Tasks
|
|
|
|
### Add a missing year to a model
|
|
```python
|
|
data['Ferrari']['296 GTB']['2025'] = 819 # same HP as existing year
|
|
```
|
|
|
|
### Add a missing model
|
|
```python
|
|
data['Ferrari']['SF90 XX Spider'] = {"2024": 1016}
|
|
```
|
|
|
|
## PITFALLS
|
|
|
|
- **User may notice missing models via customer feedback** — This is the primary signal. When a participant can't find their car in registration, check if the model exists in the DB. If not, add it.
|
|
- **Ferrari "Speciale" variants** — Ferrari does not produce a production model called "Speciale" for the 296 line. Only GTB (coupe) and GTS (spider) exist.
|
|
- **Current as of Jul 2026** — Years should be kept current. If user reports years are missing, add the current year +1.
|
|
|
|
## Apex Form Integration
|
|
- Form fetches from `https://core.itpropartner.com/vehicles.json` (HTTPS, CORS-enabled)
|
|
- WPForms HTML Content field embeds JS snippet that populates cascading dropdowns
|
|
- Make → Model → Year → Color → HP display
|
|
- Existing WPForms snippet at `/root/.hermes/references/apex-vreg-live.html`
|
|
|
|
## Significance
|
|
This is a showcase project for IT Pro Partner. Every missing car that gets corrected makes the Apex form more reliable and builds trust. Accuracy here directly leads to more MSP tech projects.
|