garage-erp/docs/dashboard/feature-checklist.md
2026-04-06 02:32:47 +03:00

277 lines
19 KiB
Markdown
Raw 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 3, 2026
> **Dependency Order Reference**: Postman API Collection (`packages/api/postman/collection.json`)
> **Status Source of Truth**: Implemented API clients in `packages/api/src/clients` and implemented dashboard modules in `apps/dashboard/modules`
> **Ordered by**: Dependency level (no dependencies → most complex relations)
---
## How to Read This Checklist
- **✅ Client + UI Module** = matching API client exists and a matching dashboard module exists
- **🔧 API Client Only** = matching API client exists, but no dedicated dashboard module was found
- **🧩 UI Module Only** = matching dashboard module exists, but no matching API client was found
- **⬜ Not Started** = no matching client or module was found
- **Module** = a dedicated top-level form, inline form, or resource subform inside `apps/dashboard/modules`
- **Lookup usage only** (for example an async select inside another form) does **not** count as a module
- **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 | Implementation Details |
|---|----------|--------|----------------------|
| 1 | Auth (Login / Profile / Logout) | ✅ Client + UI Module | Client: `AuthClient` · Module: `auth/login-form.tsx` |
| 2 | Countries | 🔧 API Client Only | Client: `GeoClient.countries()` · Module: none |
| 3 | Customer Types | 🔧 API Client Only | Client: `CustomersClient.listCustomerTypes()` · Module: none |
| 4 | Referral Sources | 🔧 API Client Only | Client: `ReferralSourcesClient` · Module: none |
| 5 | Payment Terms | 🔧 API Client Only | Client: `PaymentTermsClient` · Module: none |
| 6 | Payment Modes | 🔧 API Client Only | Client: `PaymentsClient.listModes()` · Module: none |
| 7 | Shop Types | ✅ Client + UI Module | Client: `ShopTypesClient` · Module: `settings/shop-type/shop-type-form.tsx` |
| 8 | Vehicle Body Types | ✅ Client + UI Module | Client: `VehicleAttributesClient.listBodyTypes()` · Module: `vehicles/inline-forms/body-type-inline-form.tsx` |
| 9 | Vehicle Fuel Types | ✅ Client + UI Module | Client: `VehicleAttributesClient.listFuelTypes()` · Module: `vehicles/inline-forms/fuel-type-inline-form.tsx` |
| 10 | Vehicle Transmissions | ✅ Client + UI Module | Client: `VehicleAttributesClient.listTransmissions()` · Module: `vehicles/inline-forms/transmission-inline-form.tsx` |
| 11 | Vehicle Colors | ✅ Client + UI Module | Client: `VehicleAttributesClient.listColors()` · Module: `vehicles/inline-forms/color-inline-form.tsx` |
| 12 | Document Types | ✅ Client + UI Module | Client: `VehicleDocumentsClient.listDocumentTypes()` · Module: `vehicles/inline-forms/document-type-inline-form.tsx` |
| 13 | Unit Types | ✅ Client + UI Module | Client: `InventoryClient.listUnitTypes()` · Module: `services/inline-forms/unit-type-inline-form.tsx` |
| 14 | Labels | 🔧 API Client Only | Client: `LabelsClient` · Module: none |
| 15 | Insurance Types | 🔧 API Client Only | Client: `InsuranceTypesClient` · Module: none |
| 16 | Inspection Categories | ✅ Client + UI Module | Client: `InspectionsClient.listCategories()` · Module: `inspections/inline-forms/inspection-category-inline-form.tsx` |
| 17 | Check Point Labels | 🔧 API Client Only | Client: `InspectionsClient.listCheckpointLabels()` · Module: none |
| 18 | Quick Remarks | 🔧 API Client Only | Client: `EstimatesClient.listQuickRemarks()` · Module: none |
| 19 | Quick Notes | 🔧 API Client Only | Client: `EstimatesClient.listQuickNotes()` · Module: none |
| 20 | Reasons | ⬜ Not Started | Client: none found · Module: none |
| 21 | Task Types | 🔧 API Client Only | Client: `TasksClient.listTypes()` · Module: none |
| 22 | Task Sections | 🔧 API Client Only | Client: `TasksClient.listSections()` · Module: none |
| 23 | Invoice Labels | 🔧 API Client Only | Client: `InvoicesClient.listLabels()` · Module: none |
| 24 | Holiday Years | ✅ Client + UI Module | Client: `HolidayYearsClient` · Module: `settings/holiday-year/holiday-year-form.tsx` |
| 25 | Taxes | ✅ Client + UI Module | Client: `TaxesClient` · Module: `settings/tax-rates/tax-form.tsx` |
| 26 | Departments | ✅ Client + UI Module | Client: `DepartmentsClient` · Module: `services/inline-forms/department-inline-form.tsx` |
| 27 | Labor Rates | 🔧 API Client Only | Client: `InventoryClient.listLaborRates()` · Module: none |
| 28 | Vendors | ✅ Client + UI Module | Client: `VendorsClient` · Module: `vendors/vendor-form.tsx` |
| 29 | Shop Calendars | ✅ Client + UI Module | Client: `ShopCalendarsClient` · Module: `shop-calendars/shop-calendar-form.tsx` |
| 30 | Shop Timings | ✅ Client + UI Module | Client: `ShopTimingsClient` · Module: `shop-timings/shop-timing-form.tsx` |
| 31 | Settings | ⬜ Not Started | Client: none in `packages/api/src/clients` · Module: none (tracked setting resources are listed separately) |
---
## Level 1 — Single-Level Dependencies
These depend only on Level 0 resources.
| # | Resource | Status | Depends On | Implementation Details |
|---|----------|--------|------------|----------------------|
| 32 | States | 🔧 API Client Only | Countries | Client: `GeoClient.states()` · Module: none |
| 33 | Inventory Categories | ✅ Client + UI Module | Shop Types | Client: `InventoryClient.listCategories()` · Module: `services/inline-forms/inventory-category-inline-form.tsx` |
| 34 | Vendor Addresses | 🔧 API Client Only | Vendors, Countries, States | Client: `VendorsClient.createAddress()` / `getAddress()` · Module: none |
| 35 | Holidays | ⬜ Not Started | Holiday Years | Client: none dedicated · Module: none (`HolidayYearForm` covers years only) |
| 36 | Make and Models | ⬜ Not Started | Shop Types, Body Types, Fuel Types, Transmissions | Client: none dedicated · Module: none (vehicle form uses plain make/model fields) |
---
## 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 | Implementation Details |
|---|----------|--------|------------|----------------------|
| 37 | Customers | ✅ Client + UI Module | Customer Types, Referral Sources, Payment Terms, Countries, States | Client: `CustomersClient` · Module: `customers/customer-form.tsx` |
| 38 | Vehicles | ✅ Client + UI Module | Shop Types, Body Types, Fuel Types, Transmissions, Colors | Client: `VehiclesClient` · Module: `vehicles/vehicle-form.tsx` |
| 39 | Expense Items | 🔧 API Client Only | Inventory Categories, Unit Types, Departments | Client: `ExpensesClient.listItems()` / `createItem()` · Module: none |
---
## Level 3 — Operational Resources
These depend on Level 02 resources.
| # | Resource | Status | Depends On | Implementation Details |
|---|----------|--------|------------|----------------------|
| 40 | Employees | ✅ Client + UI Module | Departments, Shop Calendars, Shop Timings | Client: `EmployeesClient` · Module: `employees/employee-form.tsx` |
| 41 | Parts | ✅ Client + UI Module | Shop Types, Inventory Categories, Unit Types, Departments, Vendors | Client: `PartsClient` · Module: `parts/part-form.tsx` |
| 42 | Services | ✅ Client + UI Module | Shop Types, Inventory Categories, Unit Types, Departments | Client: `ServicesClient` · Module: `services/service-form.tsx` |
| 43 | Vehicle Documents | ✅ Client + UI Module | Vehicles, Document Types | Client: `VehicleDocumentsClient.listDocuments()` / `createDocument()` · Module: `vehicles/vehicle-document-form.tsx` |
| 44 | Vehicle Mileage | ✅ Client + UI Module | Vehicles | Client: `VehicleDocumentsClient.listMileage()` / `createMileage()` · Module: `vehicles/mileage-form.tsx` |
| 45 | Time Sheets | ⬜ Not Started | Employees | Client: none found · Module: none |
| 46 | Invoice Sequences | ⬜ Not Started | Departments | Client: none found · Module: none |
---
## Level 4 — Composite Service Resources
These depend on Level 03 resources.
| # | Resource | Status | Depends On | Implementation Details |
|---|----------|--------|------------|----------------------|
| 47 | Service Groups | ✅ Client + UI Module | Shop Types, Inventory Categories, Unit Types, Departments | Client: `ServiceGroupsClient` · Module: `service-groups/service-group-form.tsx` |
| 48 | Service Group Includes | ⬜ Not Started | Service Groups | Client: none dedicated in `ServiceGroupsClient` · Module: none |
| 49 | Service Group Services | ⬜ Not Started | Service Groups, Services, Labor Rates, Taxes | Client: none dedicated in `ServiceGroupsClient` · Module: none |
| 50 | Service Group Parts | ⬜ Not Started | Service Groups, Parts, Taxes | Client: none dedicated in `ServiceGroupsClient` · Module: none |
| 51 | Service Group Pricings | ⬜ Not Started | Service Groups, Shop Types, Labor Rates, Fuel Types, Body Types | Client: none dedicated in `ServiceGroupsClient` · Module: none |
---
## Level 5 — Workflow & Operations
These are core garage workflow features depending on customers, vehicles, employees, etc.
| # | Resource | Status | Depends On | Implementation Details |
|---|----------|--------|------------|----------------------|
| 52 | Inspections | ✅ Client + UI Module | Customers, Vehicles, Departments, Inspection Categories, Employees | Client: `InspectionsClient` · Module: `inspections/inspection-form.tsx` |
| 53 | Inspection Check Points | 🔧 API Client Only | Inspections, Check Point Labels | Client: `InspectionsClient.listCheckpoints()` / `createCheckpoint()` · Module: none |
| 54 | Estimates | ✅ Client + UI Module | Customers, Vehicles, Departments, Labels | Client: `EstimatesClient` · Module: `estimates/estimate-form.tsx` |
| 55 | Job Cards | ✅ Client + UI Module | Customers, Vehicles, Departments, Labels, Employees | Client: `JobCardsClient` · Module: `job-cards/job-card-form.tsx` + remark/recommendation subforms |
---
## Level 6 — Financial & Scheduling
These depend on Job Cards and other Level 5 resources.
| # | Resource | Status | Depends On | Implementation Details |
|---|----------|--------|------------|----------------------|
| 56 | Appointments | ✅ Client + UI Module | Customers, Vehicles, Departments, Job Cards, Employees, Labels | Client: `AppointmentsClient` · Module: `appointments/appointment-form.tsx` |
| 57 | Tasks | 🔧 API Client Only | Task Types, Task Sections, Job Cards, Employees, Departments | Client: `TasksClient` · Module: none |
| 58 | Purchase Orders | 🔧 API Client Only | Job Cards, Vendors, Departments, Labels, Parts | Client: `PurchaseOrdersClient` · Module: none |
| 59 | Bills | 🔧 API Client Only | Job Cards, Vendors, Vendor Addresses, Payment Terms, Departments, Labels, Parts | Client: `ExpensesClient.listBills()` / `createBill()` · Module: none |
| 60 | Expenses | ✅ Client + UI Module | Job Cards, Expense Items, Vendors, Departments, Labels | Client: `ExpensesClient.listExpenses()` / `createExpense()` · Module: `expenses/expense-form.tsx` |
| 61 | Payment Received | ✅ Client + UI Module | Job Cards, Payment Modes, Customers | Client: `PaymentsClient.listReceived()` / `createReceived()` · Module: `payment-received/payment-received-form.tsx` |
| 62 | Inventory Adjustments | ⬜ Not Started | Parts, Job Cards, Invoices, Reasons | Client: none found · Module: none |
---
## Level 7 — Invoicing & Credit System (Most Complex)
These are the most complex resources with the deepest dependency chains.
| # | Resource | Status | Depends On | Implementation Details |
|---|----------|--------|------------|----------------------|
| 63 | Invoices | ✅ Client + UI Module | Customers, Vehicles, Departments, Invoice Sequences, Labels, Inspection Categories, Parts, Services, Expense Items, Service Groups | Client: `InvoicesClient` · Module: `invoices/invoice-form.tsx` |
| 64 | Invoice Documents | ✅ Client + UI Module | Invoices, Customers, Vehicles, Document Types | Client: `InvoicesClient.listDocuments()` / `createDocument()` · Module: `invoices/invoice-document-form.tsx` |
| 65 | Invoice Notes | ✅ Client + UI Module | Invoices | Client: `InvoicesClient.listNotes()` / `createNote()` · Module: `invoices/invoice-note-form.tsx` |
| 66 | Credit Notes | ⬜ Not Started | Customers, Parts, Services, Expenses, Inspection Categories, Labels | Client: none found · Module: none |
| 67 | Payment Mades | ⬜ Not Started | Vendors, Employees, Bills, Expenses, Payment Modes | Client: none found · Module: none |
| 68 | Vendor Credits | ⬜ Not Started | Vendors, Departments, Parts, Services, Expenses, Labels | Client: none found · Module: none |
---
## Summary
### Status Snapshot
| Status | Count | Percentage |
|--------|-------|------------|
| ✅ Client + UI Module | 33 | 48.5% |
| 🔧 API Client Only | 21 | 30.9% |
| 🧩 UI Module Only | 0 | 0.0% |
| ⬜ Not Started | 14 | 20.6% |
No UI-only resources were found under the current `packages/api/src/clients` and `apps/dashboard/modules` source-of-truth rules.
### Implementation Progress
| Category | Total | ✅ Client + UI Module | 🔧 API Client Only | 🧩 UI Module Only | ⬜ Not Started |
|----------|-------|-----------------------|--------------------|------------------|----------------|
| Level 0 — Standalone | 31 | 15 | 14 | 0 | 2 |
| Level 1 — Single Dep | 5 | 1 | 2 | 0 | 2 |
| Level 2 — Core Entities | 3 | 2 | 1 | 0 | 0 |
| Level 3 — Operational | 7 | 5 | 0 | 0 | 2 |
| Level 4 — Composite | 5 | 1 | 0 | 0 | 4 |
| Level 5 — Workflows | 4 | 3 | 1 | 0 | 0 |
| Level 6 — Financial | 7 | 3 | 3 | 0 | 1 |
| Level 7 — Invoicing | 6 | 3 | 0 | 0 | 3 |
| **Total** | **68** | **33** | **21** | **0** | **14** |
### Resources with Client + UI Module (33 total)
- Top-level modules (20): Auth, Shop Types, Holiday Years, Taxes, Vendors, Shop Calendars, Shop Timings, Customers, Vehicles, Employees, Parts, Services, Service Groups, Inspections, Estimates, Job Cards, Appointments, Expenses, Payment Received, Invoices
- Inline modules (9): Vehicle Body Types, Vehicle Fuel Types, Vehicle Transmissions, Vehicle Colors, Document Types, Unit Types, Inspection Categories, Departments, Inventory Categories
- Detail subforms (4): Vehicle Documents, Vehicle Mileage, Invoice Documents, Invoice Notes
### API Clients Without UI Modules (21 total)
- Master data and reference resources: Countries, Customer Types, Referral Sources, Payment Terms, Payment Modes, Labels, Insurance Types, Check Point Labels, Quick Remarks, Quick Notes, Task Types, Task Sections, Invoice Labels, Labor Rates, States, Vendor Addresses
- Workflow and transactional resources: Expense Items, Inspection Check Points, Tasks, Purchase Orders, Bills
### Not Started (14 total)
- Reasons, Settings, Holidays, Make and Models, Time Sheets, Invoice Sequences, Service Group Includes, Service Group Services, Service Group Parts, Service Group Pricings, Inventory Adjustments, Credit Notes, Payment Mades, Vendor Credits
### API Clients Without UI Modules — Priority Recommendations
Based on current implementation depth and operational value, the highest-leverage missing UI modules are:
1. **Purchase Orders** — existing client, central purchasing workflow
2. **Bills** — existing client, complements Vendors and Expenses
3. **Tasks** — existing client, operational workflow layer is in place but no module exists
4. **Expense Items** — existing client, currently blocks full expense master-data management
5. **Payment Modes / Payment Terms** — existing clients, important finance reference data
6. **Referral Sources / Customer Types** — existing clients, useful master-data UI for sales flows
---
## 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
```