You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# FitSpec — Automotive Parts Fitment & Recommendation Engine
2
2
3
-
Full-stack automotive parts fitment application built with **Angular 21**, **ASP.NET Core 10**, **SQL Server**, and **MongoDB**. Provides verified compatibility data for aftermarket parts, accessories, and modifications across 150+ products and 30 brands.
FitSpec solves the automotive aftermarket's core conversion problem: getting the right part on the right vehicle, every time. Users select their vehicle by year, make, model, and trim, then browse a catalog of verified-compatible parts across multiple categories — with AI-powered recommendations, install guides, and a fitment assistant built in.
6
+
7
+
The fitment data model reflects how aftermarket automotive parts actually work: year/make/model/trim specificity, receiver classes, bulb types, wiring configurations, and cross-category compatibility patterns. Every architectural decision maps to a real e-commerce outcome.
@@ -31,7 +81,7 @@ Full-stack automotive parts fitment application built with **Angular 21**, **ASP
31
81
└───────────┘ └───────────┘
32
82
```
33
83
34
-
The Angular app is served by nginx, which also reverse-proxies `/api/` and `/hubs/` requests to the .NET API container. All API calls from the frontend use relative URLs (`/api/v1/...`).
84
+
---
35
85
36
86
## Features
37
87
@@ -58,16 +108,50 @@ The Angular app is served by nginx, which also reverse-proxies `/api/` and `/hub
58
108
21.**Dark Mode** — System-aware theme toggle with CSS custom properties
59
109
22.**Global Search** — Header autocomplete with typeahead
60
110
61
-
## Prerequisites
111
+
---
112
+
113
+
## Design Decisions
114
+
115
+
### Polyglot Persistence (SQL Server + MongoDB)
116
+
Fitment data is deeply relational — vehicles, products, and their many-to-many compatibility mappings require referential integrity and performant joins. Reviews, Q&A, and extended product metadata have variable schemas (a hitch and a headlight have completely different spec sheets) and are naturally document-oriented. Using both databases is an intentional architectural choice, not complexity for its own sake.
117
+
118
+
### Dapper + EF Core Hybrid
119
+
Dapper handles the performance-critical fitment queries via stored procedures — these power the core user experience and need to be fast. EF Core handles migrations, schema management, and simpler CRUD operations where developer velocity matters more than raw query speed. This reflects how production .NET applications actually make data access decisions.
120
+
121
+
### ML.NET Over External APIs
122
+
The recommendation engine runs entirely within the .NET ecosystem using ML.NET, with no external API dependencies or Python services. The trained model is loaded once at startup and serves predictions in-process, keeping response times low.
123
+
124
+
---
125
+
126
+
## Data Model
127
+
128
+
The core schema centers on the `FitmentMappings` junction table, which links vehicles to compatible products. This many-to-many relationship is the heart of the application.
docker compose down -v # Stop and delete volumes (reset databases)
206
317
```
207
318
319
+
---
320
+
321
+
## About the Developer
322
+
323
+
Built by **Nate Allen** — a software engineer with 12+ years of e-commerce experience who understands that fitment accuracy is the difference between a conversion and a return.
0 commit comments