From finding a part to reviewing a request
A vehicle make is not enough to identify the right part. Model, equipment and available quantity also matter. I built AracStok around this workflow: customers find parts and submit requests; dealers review them and manage inventory.
Developed in December 2023–January 2024, the application uses C# and Windows Forms with separate customer, dealer and administrator screens.
01 / A catalog tied to vehicle configuration
Selecting a make updates the model list; selecting a model exposes equipment options. Parts appear with their available quantities, keeping each request attached to a specific vehicle configuration.
02 / Vehicle and stock management
Dealers enter vehicle details and initial part quantities, then inspect existing records and update stock. Defining catalog data and changing available quantities are separate actions.
03 / Requests and decisions
Each request records the part, vehicle details and timestamp. Dealers approve or reject it and customers can review the outcome. An administrator interface provides user and vehicle record management.
Objects and persistence
Customer, Dealer and Admin inherit common fields from User. Car holds equipment options and SparePart objects; Request represents a purchase request. CarInventory manages catalog persistence.
JSON.NET serializes user, vehicle and request records into three JSON files. LINQ supports filtering and selection; DataGridView displays records. Registration validates usernames, passwords, email and phone formats.
Engineering lessons
A single IsApproved flag cannot cleanly distinguish pending and rejected requests. Explicit states and idempotent approval operations would protect stock changes. A relational database would also allow inventory updates to be committed within transactions.
The project made the need to protect business rules independently of UI handlers concrete, particularly for quantities and repeated user actions.
Result
The desktop application connects the vehicle catalog, part inventory, customer requests and dealer review. Role inheritance, JSON persistence and event-driven interfaces are its main technical elements.