garage-erp/docs/dashboard/feature-checklist.md

292 lines
20 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Garage Management System — Feature Implementation Checklist
> **Generated**: April 11, 2026
> **Dependency Order Reference**: Postman API Collection (`packages/api/postman/collection.json`)
> **Status Source of Truth**: API clients in `packages/api/src/clients`, route pages in `apps/dashboard/app`, and dashboard modules in `apps/dashboard/modules`
> **Ordered by**: Dependency level (no dependencies → most complex relations)
---
## How to Read This Checklist
- **✅ Client + UI** = a matching API client exists and at least one dedicated route page or module exists
- **🔧 Client Only** = a matching API client exists, but no dedicated route page or module was found
- **🧩 UI Only** = a dedicated route page or module exists, but no matching API client was found
- **⬜ Not Started** = no client, page, or module was found
- **Client** paths are relative to `packages/api/src/clients`
- **Page** paths are relative to `apps/dashboard/app`
- **Module** paths are relative to `apps/dashboard/modules`
- **Module** includes top-level forms, CRUD dialogs, detail subforms, and inline forms
- **Lookup usage only** (for example an async select or picker field) does **not** count as module coverage
- **Page coverage** only counts when that route actively manages the resource itself; a parent route that happens to exist for a neighboring resource does not count
- **Depends on** = other resources that must exist before this one (based on foreign keys in the Postman collection)
---
## Level 0 — Zero Dependencies (Standalone Reference Data)
These resources have no foreign key references. They are the foundation.
| # | Resource | Status | Client | Page | Module |
|---|----------|--------|--------|------|--------|
| 1 | Auth (Login / Profile / Logout) | ✅ Client + UI | `auth.ts` | `(auth)/login/page.tsx` | `auth/login-form.tsx` |
| 2 | Countries | 🔧 Client Only | `geo.ts` | — | — |
| 3 | Customer Types | 🔧 Client Only | `customers.ts` | — | — |
| 4 | Referral Sources | 🔧 Client Only | `referral-sources.ts` | — | — |
| 5 | Payment Terms | 🔧 Client Only | `payment-terms.ts` | — | — |
| 6 | Payment Modes | 🔧 Client Only | `payment-modes.ts` | — | — |
| 7 | Shop Types | ✅ Client + UI | `shop-types.ts` | `(authenticated)/settings/shop-type/page.tsx` | `settings/shop-type/shop-type-form.tsx` |
| 8 | Vehicle Body Types | ✅ Client + UI | `vehicle-attributes.ts` | — | `vehicles/inline-forms/body-type-inline-form.tsx` |
| 9 | Vehicle Fuel Types | ✅ Client + UI | `vehicle-attributes.ts` | — | `vehicles/inline-forms/fuel-type-inline-form.tsx` |
| 10 | Vehicle Transmissions | ✅ Client + UI | `vehicle-attributes.ts` | — | `vehicles/inline-forms/transmission-inline-form.tsx` |
| 11 | Vehicle Colors | ✅ Client + UI | `vehicle-attributes.ts` | — | `vehicles/inline-forms/color-inline-form.tsx` |
| 12 | Document Types | ✅ Client + UI | `vehicle-documents.ts` | — | `vehicles/inline-forms/document-type-inline-form.tsx` |
| 13 | Unit Types | ✅ Client + UI | `inventory.ts` | — | `services/inline-forms/unit-type-inline-form.tsx` |
| 14 | Labels | 🔧 Client Only | `labels.ts` | — | — |
| 15 | Insurance Types | ✅ Client + UI | `insurance-types.ts` | `(authenticated)/settings/insurance-types/page.tsx` | `settings/insurance-types/insurance-type-form.tsx` |
| 16 | Inspection Categories | ✅ Client + UI | `inspections.ts` | — | `inspections/inline-forms/inspection-category-inline-form.tsx` |
| 17 | Check Point Labels | 🔧 Client Only | `inspections.ts` | — | — |
| 18 | Quick Remarks | 🔧 Client Only | `quick-remarks.ts` | — | — |
| 19 | Quick Notes | 🔧 Client Only | `quick-notes.ts` | — | — |
| 20 | Reasons | 🔧 Client Only | `reasons.ts` | — | — |
| 21 | Task Types | ✅ Client + UI | `task-types.ts` | — | `tasks/task-type-form.tsx`, `tasks/task-type-crud-dialog.tsx` |
| 22 | Task Sections | ✅ Client + UI | `task-sections.ts` | — | `tasks/task-section-form.tsx`, `tasks/task-section-crud-dialog.tsx` |
| 23 | Invoice Labels | 🔧 Client Only | `invoices.ts` | — | — |
| 24 | Holiday Years | ✅ Client + UI | `holiday-years.ts` | `(authenticated)/productivity/holidays/page.tsx` | `settings/holiday-year/holiday-year-form.tsx` |
| 25 | Taxes | ✅ Client + UI | `taxes.ts` | `(authenticated)/settings/tax-rates/page.tsx` | `settings/tax-rates/tax-form.tsx` |
| 26 | Departments | ✅ Client + UI | `departments.ts` | `(authenticated)/settings/departments/page.tsx` | `settings/departments/department-form.tsx` |
| 27 | Labor Rates | 🔧 Client Only | `inventory.ts` | — | — |
| 28 | Vendors | ✅ Client + UI | `vendors.ts` | `(authenticated)/purchase/vendor/page.tsx` | `vendors/vendor-form.tsx` |
| 29 | Shop Calendars | ✅ Client + UI | `shop-calendars.ts` | `(authenticated)/productivity/shop-calendars/page.tsx` | `shop-calendars/shop-calendar-form.tsx` |
| 30 | Shop Timings | ✅ Client + UI | `shop-timings.ts` | `(authenticated)/productivity/shop-timings/page.tsx` | `shop-timings/shop-timing-form.tsx` |
| 31 | Settings | ✅ Client + UI | `settings.ts`, `configurations.ts` | `(authenticated)/settings/company/page.tsx`, `(authenticated)/settings/configurations/preferences/*/page.tsx` | `settings/company/settings-form.tsx`, `settings/configurations/*-form.tsx` |
---
## Level 1 — Single-Level Dependencies
These depend only on Level 0 resources.
| # | Resource | Status | Depends On | Client | Page | Module |
|---|----------|--------|------------|--------|------|--------|
| 32 | States | 🔧 Client Only | Countries | `geo.ts` | — | — |
| 33 | Inventory Categories | ✅ Client + UI | Shop Types | `inventory-categories.ts` | — | `expense-items/inventory-category-form.tsx`, `expense-items/inventory-category-crud-dialog.tsx`, `services/inline-forms/inventory-category-inline-form.tsx` |
| 34 | Vendor Addresses | 🔧 Client Only | Vendors, Countries, States | `vendors.ts` | — | — |
| 35 | Holidays | 🔧 Client Only | Holiday Years | `holidays.ts` | — | — |
| 36 | Make and Models | ✅ Client + UI | Shop Types, Body Types, Fuel Types, Transmissions | `make-and-models.ts` | `(authenticated)/settings/make-and-models/page.tsx` | `settings/make-and-models/make-and-model-form.tsx` |
---
## Level 2 — Core Business Entities
These depend on Level 0 + Level 1 resources and are used by many higher-level features.
| # | Resource | Status | Depends On | Client | Page | Module |
|---|----------|--------|------------|--------|------|--------|
| 37 | Customers | ✅ Client + UI | Customer Types, Referral Sources, Payment Terms, Countries, States | `customers.ts` | `(authenticated)/sales/customers/page.tsx` | `customers/customer-form.tsx` |
| 38 | Vehicles | ✅ Client + UI | Shop Types, Body Types, Fuel Types, Transmissions, Colors | `vehicles.ts` | `(authenticated)/sales/vehicles/page.tsx` | `vehicles/vehicle-form.tsx` |
| 39 | Expense Items | ✅ Client + UI | Inventory Categories, Unit Types, Departments | `expense-items.ts` | `(authenticated)/items/expense-item/page.tsx` | `expense-items/expense-item-form.tsx` |
---
## Level 3 — Operational Resources
These depend on Level 02 resources.
| # | Resource | Status | Depends On | Client | Page | Module |
|---|----------|--------|------------|--------|------|--------|
| 40 | Employees | ✅ Client + UI | Departments, Shop Calendars, Shop Timings | `employees.ts` | `(authenticated)/productivity/employees/page.tsx` | `employees/employee-form.tsx` |
| 41 | Parts | ✅ Client + UI | Shop Types, Inventory Categories, Unit Types, Departments, Vendors | `parts.ts` | `(authenticated)/items/parts/page.tsx` | `parts/part-form.tsx` |
| 42 | Services | ✅ Client + UI | Shop Types, Inventory Categories, Unit Types, Departments | `services.ts` | `(authenticated)/items/services/page.tsx` | `services/service-form.tsx` |
| 43 | Vehicle Documents | ✅ Client + UI | Vehicles, Document Types | `vehicle-documents.ts` | `(authenticated)/sales/vehicles/[id]/documents/page.tsx` | `vehicles/vehicle-document-form.tsx` |
| 44 | Vehicle Mileage | ✅ Client + UI | Vehicles | `vehicle-documents.ts` | `(authenticated)/sales/vehicles/[id]/mileage/page.tsx` | `vehicles/mileage-form.tsx` |
| 45 | Time Sheets | 🔧 Client Only | Employees | `time-sheets.ts` | — | — |
| 46 | Invoice Sequences | 🔧 Client Only | Departments | `invoice-sequences.ts` | — | — |
---
## Level 4 — Composite Service Resources
These depend on Level 03 resources.
| # | Resource | Status | Depends On | Client | Page | Module |
|---|----------|--------|------------|--------|------|--------|
| 47 | Service Groups | ✅ Client + UI | Shop Types, Inventory Categories, Unit Types, Departments | `service-groups.ts` | `(authenticated)/items/service-group/page.tsx` | `service-groups/service-group-form.tsx` |
| 48 | Service Group Includes | 🔧 Client Only | Service Groups | `service-group-includes.ts` | — | — |
| 49 | Service Group Services | 🔧 Client Only | Service Groups, Services, Labor Rates, Taxes | `service-group-services.ts` | — | — |
| 50 | Service Group Parts | 🔧 Client Only | Service Groups, Parts, Taxes | `service-group-parts.ts` | — | — |
| 51 | Service Group Pricings | 🔧 Client Only | Service Groups, Shop Types, Labor Rates, Fuel Types, Body Types | `service-group-pricings.ts` | — | — |
---
## Level 5 — Workflow & Operations
These are core garage workflow features depending on customers, vehicles, employees, etc.
| # | Resource | Status | Depends On | Client | Page | Module |
|---|----------|--------|------------|--------|------|--------|
| 52 | Inspections | ✅ Client + UI | Customers, Vehicles, Departments, Inspection Categories, Employees | `inspections.ts` | `(authenticated)/sales/inspections/page.tsx` | `inspections/inspection-form.tsx` |
| 53 | Inspection Check Points | ✅ Client + UI | Inspections, Check Point Labels | `inspections.ts` | `(authenticated)/sales/inspections/[id]/checkpoints/page.tsx` | — |
| 54 | Estimates | ✅ Client + UI | Customers, Vehicles, Departments, Labels | `estimates.ts` | `(authenticated)/sales/estimates/page.tsx` | `estimates/estimate-form.tsx` |
| 55 | Job Cards | ✅ Client + UI | Customers, Vehicles, Departments, Labels, Employees | `job-cards.ts` | `(authenticated)/sales/job-cards/page.tsx` | `job-cards/job-card-form.tsx` + related subforms |
---
## Level 6 — Financial & Scheduling
These depend on Job Cards and other Level 5 resources.
| # | Resource | Status | Depends On | Client | Page | Module |
|---|----------|--------|------------|--------|------|--------|
| 56 | Appointments | ✅ Client + UI | Customers, Vehicles, Departments, Job Cards, Employees, Labels | `appointments.ts` | `(authenticated)/calendar/appointment/list/page.tsx` | `appointments/appointment-form.tsx` |
| 57 | Tasks | ✅ Client + UI | Task Types, Task Sections, Job Cards, Employees, Departments | `tasks.ts` | `(authenticated)/productivity/tasks/page.tsx` | `tasks/task-form.tsx` |
| 58 | Purchase Orders | ✅ Client + UI | Job Cards, Vendors, Departments, Labels, Parts | `purchase-orders.ts` | `(authenticated)/purchase/purchase-order/page.tsx` | `purchase-orders/purchase-order-form.tsx` |
| 59 | Bills | ✅ Client + UI | Job Cards, Vendors, Vendor Addresses, Payment Terms, Departments, Labels, Parts | `bills.ts` | `(authenticated)/purchase/bill/page.tsx` | `bills/bill-form.tsx` |
| 60 | Expenses | ✅ Client + UI | Job Cards, Expense Items, Vendors, Departments, Labels | `expenses.ts` | `(authenticated)/purchase/expense/page.tsx` | `expenses/expense-form.tsx` |
| 61 | Payment Received | ✅ Client + UI | Job Cards, Payment Modes, Customers | `payment-received.ts` | `(authenticated)/sales/payment-received/page.tsx` | `payment-received/payment-received-form.tsx` |
| 62 | Inventory Adjustments | ✅ Client + UI | Parts, Job Cards, Invoices, Reasons | `inventory-adjustments.ts` | `(authenticated)/items/adjustment/page.tsx` | `inventory-adjustments/inventory-adjustment-form.tsx` |
---
## Level 7 — Invoicing & Credit System (Most Complex)
These are the most complex resources with the deepest dependency chains.
| # | Resource | Status | Depends On | Client | Page | Module |
|---|----------|--------|------------|--------|------|--------|
| 63 | Invoices | ✅ Client + UI | Customers, Vehicles, Departments, Invoice Sequences, Labels, Inspection Categories, Parts, Services, Expense Items, Service Groups | `invoices.ts` | `(authenticated)/sales/invoice/page.tsx` | `invoices/invoice-form.tsx` |
| 64 | Invoice Documents | ✅ Client + UI | Invoices, Customers, Vehicles, Document Types | `invoices.ts` | `(authenticated)/sales/invoice/[id]/documents/page.tsx` | `invoices/invoice-document-form.tsx` |
| 65 | Invoice Notes | ✅ Client + UI | Invoices | `invoices.ts` | `(authenticated)/sales/invoice/[id]/notes/page.tsx` | `invoices/invoice-note-form.tsx` |
| 66 | Credit Notes | ✅ Client + UI | Customers, Parts, Services, Expenses, Inspection Categories, Labels | `credit-notes.ts` | `(authenticated)/sales/credit-notes/page.tsx` | `credit-notes/credit-note-form.tsx` + document/note subforms |
| 67 | Payment Mades | ✅ Client + UI | Vendors, Employees, Bills, Expenses, Payment Modes | `payment-mades.ts` | `(authenticated)/purchase/payments-made/page.tsx` | `payment-mades/payment-made-form.tsx` |
| 68 | Vendor Credits | ✅ Client + UI | Vendors, Departments, Parts, Services, Expenses, Labels | `vendor-credits.ts` | `(authenticated)/purchase/vendor-credit/page.tsx` | `vendor-credits/vendor-credit-form.tsx` |
---
## Summary
### Status Snapshot
| Status | Count | Percentage |
|--------|-------|------------|
| ✅ Client + UI | 47 | 69.1% |
| 🔧 Client Only | 21 | 30.9% |
| 🧩 UI Only | 0 | 0.0% |
| ⬜ Not Started | 0 | 0.0% |
No UI-only resources were found under the current `packages/api/src/clients`, `apps/dashboard/app`, and `apps/dashboard/modules` source-of-truth rules.
### Implementation Progress
| Category | Total | ✅ Client + UI | 🔧 Client Only | 🧩 UI Only | ⬜ Not Started |
|----------|-------|----------------|----------------|-----------|----------------|
| Level 0 — Standalone | 31 | 19 | 12 | 0 | 0 |
| Level 1 — Single Dep | 5 | 2 | 3 | 0 | 0 |
| Level 2 — Core Entities | 3 | 3 | 0 | 0 | 0 |
| Level 3 — Operational | 7 | 5 | 2 | 0 | 0 |
| Level 4 — Composite | 5 | 1 | 4 | 0 | 0 |
| Level 5 — Workflows | 4 | 4 | 0 | 0 | 0 |
| Level 6 — Financial | 7 | 7 | 0 | 0 | 0 |
| Level 7 — Invoicing | 6 | 6 | 0 | 0 | 0 |
| **Total** | **68** | **47** | **21** | **0** | **0** |
### UI Coverage Shape
| Coverage Shape | Count |
|----------------|-------|
| Client + Page + Module | 36 |
| Client + Module Only | 10 |
| Client + Page Only | 1 |
The single page-only resource is **Inspection Check Points**, which is implemented directly in its route page without a dedicated module file.
### Status Changes Since April 3, 2026
- Moved to **✅ Client + UI**: Insurance Types, Task Types, Task Sections, Settings, Make and Models, Expense Items, Inspection Check Points, Tasks, Purchase Orders, Bills, Inventory Adjustments, Credit Notes, Payment Mades, Vendor Credits
- Moved to **🔧 Client Only** from **⬜ Not Started**: Reasons, Holidays, Time Sheets, Invoice Sequences, Service Group Includes, Service Group Services, Service Group Parts, Service Group Pricings
### Resources with Client + UI Coverage (47 total)
- Page + module coverage (36): Auth, Shop Types, Insurance Types, Holiday Years, Taxes, Departments, Vendors, Shop Calendars, Shop Timings, Settings, Make and Models, Customers, Vehicles, Expense Items, Employees, Parts, Services, Vehicle Documents, Vehicle Mileage, Service Groups, Inspections, Estimates, Job Cards, Appointments, Tasks, Purchase Orders, Bills, Expenses, Payment Received, Inventory Adjustments, Invoices, Invoice Documents, Invoice Notes, Credit Notes, Payment Mades, Vendor Credits
- Module-only coverage (10): Vehicle Body Types, Vehicle Fuel Types, Vehicle Transmissions, Vehicle Colors, Document Types, Unit Types, Inspection Categories, Task Types, Task Sections, Inventory Categories
- Page-only coverage (1): Inspection Check Points
### API Clients Without UI Coverage (21 total)
- Master data and reference resources: Countries, Customer Types, Referral Sources, Payment Terms, Payment Modes, Labels, Check Point Labels, Quick Remarks, Quick Notes, Reasons, Invoice Labels, Labor Rates, States
- Operational and nested resources: Vendor Addresses, Holidays, Time Sheets, Invoice Sequences, Service Group Includes, Service Group Services, Service Group Parts, Service Group Pricings
### API Clients Without UI Coverage — Priority Recommendations
Based on current implementation depth and dependency weight, the highest-leverage missing UI coverage is:
1. **Service Group Includes / Services / Parts / Pricings** — the client layer exists, but the service-group composition workflow is still missing from the dashboard
2. **Invoice Sequences** — invoices are implemented, but their setup dependency still has no route or module
3. **Holidays** — the current `productivity/holidays` route manages Holiday Years, not Holiday entries
4. **Payment Modes / Payment Terms** — still important finance reference data with no dedicated UI
5. **Referral Sources / Customer Types / Reasons / Labels** — useful master-data UI for sales and workflow flows
6. **Time Sheets / Vendor Addresses** — operational subresources still have API support only
---
## Dependency Graph (Simplified)
```
Level 0 (Foundation)
├── Auth, Countries, Shop Types, Customer Types, Referral Sources
├── Payment Terms, Payment Modes, Document Types, Unit Types, Labels
├── Vehicle Attributes (Body, Fuel, Transmission, Colors)
├── Inspection Categories, Check Point Labels, Insurance Types
├── Quick Remarks/Notes, Reasons, Task Types/Sections
├── Holiday Years, Taxes, Departments, Labor Rates
├── Vendors, Shop Calendars, Shop Timings, Invoice Labels, Settings
Level 1 (Single Dependency)
├── States → Countries
├── Inventory Categories → Shop Types
├── Vendor Addresses → Vendors + Countries + States
├── Holidays → Holiday Years
├── Make and Models → Shop Types + Vehicle Attributes
Level 2 (Core Entities)
├── Customers → Customer Types + Referral Sources + Payment Terms + Geo
├── Vehicles → Shop Types + Vehicle Attributes
├── Expense Items → Inventory Categories + Unit Types + Departments
Level 3 (Operational)
├── Employees → Departments + Shop Calendars + Shop Timings
├── Parts → Shop Types + Inventory Categories + Unit Types + Departments + Vendors
├── Services → Shop Types + Inventory Categories + Unit Types + Departments
├── Vehicle Documents → Vehicles + Document Types
├── Vehicle Mileage → Vehicles
├── Time Sheets → Employees
├── Invoice Sequences → Departments
Level 4 (Composite)
├── Service Groups → Shop Types + Inv. Categories + Unit Types + Departments
├── SG Includes/Services/Parts/Pricings → Service Groups + ...
Level 5 (Workflows)
├── Inspections → Customers + Vehicles + Departments + Insp. Categories + Employees
├── Inspection Check Points → Inspections + Check Point Labels
├── Estimates → Customers + Vehicles + Departments + Labels
├── Job Cards → Customers + Vehicles + Departments + Labels + Employees
Level 6 (Financial)
├── Appointments → Customers + Vehicles + Departments + Job Cards + Employees
├── Tasks → Task Types + Task Sections + Job Cards + Employees + Departments
├── Purchase Orders → Job Cards + Vendors + Departments + Labels + Parts
├── Bills → Job Cards + Vendors + Payment Terms + Departments + Labels + Parts
├── Expenses → Job Cards + Expense Items + Vendors + Departments + Labels
├── Payment Received → Job Cards + Payment Modes + Customers
├── Inventory Adjustments → Parts + Job Cards + Invoices + Reasons
Level 7 (Invoicing — Most Complex)
├── Invoices → Customers + Vehicles + Departments + Inv. Sequences + Labels + Parts + Services + Expenses + Service Groups
├── Invoice Documents → Invoices + Customers + Vehicles + Document Types
├── Invoice Notes → Invoices
├── Credit Notes → Customers + Parts + Services + Expenses + Insp. Categories + Labels
├── Payment Mades → Vendors + Employees + Bills + Expenses + Payment Modes
└── Vendor Credits → Vendors + Departments + Parts + Services + Expenses + Labels
```