tinyqc/docs/prd.json
mahdahar 5cae572916 Refactor application structure, unify entry management, and overhaul UI with DaisyUI
- Reorganized Architecture: Moved Master data management (Controls, Departments, Tests) to a dedicated Master namespace/directory for better modularity.
- Unified Data Entry: Consolidated daily and monthly QC entry views and logic into a single streamlined system.
- UI/UX Modernization:
    - Integrated DaisyUI and Alpine.js for a responsive, themeable, and interactive experience.
    - Replaced legacy layouts with a new DaisyUI-based template.
    - Updated branding with new logo and favicon assets.
    - Cleaned up deprecated JavaScript assets (app.js, charts.js, tables.js).
- Backend Enhancements:
    - Added `ControlEntryModel` and `ResultCommentsController` for improved data handling and auditing.
    - Updated routing to support the new controller structure and consolidated API endpoints.
- Documentation & Assets:
    - Added [docs/PRD.md](cci:7://file:///c:/www/tinyqc/docs/PRD.md:0:0-0:0) and [docs/llms.txt](cci:7://file:///c:/www/tinyqc/docs/llms.txt:0:0-0:0) for project context and requirements.
    - Included database schema scripts and backups in the `backup/` directory.
- Cleanup: Removed legacy TUI progress files and unused commands.
2026-01-19 06:37:37 +07:00

221 lines
5.6 KiB
JSON

{
"name": "TinyQC Product Requirements Document (PRD)",
"description": "**TinyQC** is a lightweight, web-based Laboratory Quality Control (QC) Management System designed to help laboratories record, track, and analyze quality control test results with statistical analysis capabilities.",
"branchName": "main",
"userStories": [
{
"id": "US-001",
"title": "View Departments",
"description": "View Departments",
"acceptanceCriteria": [],
"priority": 1,
"passes": true,
"labels": [],
"dependsOn": [],
"completionNotes": "Completed by agent"
},
{
"id": "US-002",
"title": "Create Department",
"description": "Create Department",
"acceptanceCriteria": [],
"priority": 2,
"passes": true,
"labels": [],
"dependsOn": [],
"completionNotes": "Completed by agent"
},
{
"id": "US-003",
"title": "Edit Department",
"description": "Edit Department",
"acceptanceCriteria": [],
"priority": 3,
"passes": true,
"labels": [],
"dependsOn": [],
"completionNotes": "Completed by agent"
},
{
"id": "US-004",
"title": "Delete Department",
"description": "Delete Department",
"acceptanceCriteria": [],
"priority": 4,
"passes": true,
"labels": [],
"dependsOn": [],
"completionNotes": "Completed by agent"
},
{
"id": "US-005",
"title": "View Tests",
"description": "View Tests",
"acceptanceCriteria": [],
"priority": 4,
"passes": true,
"labels": [],
"dependsOn": [],
"completionNotes": "Completed by agent"
},
{
"id": "US-006",
"title": "Create Test",
"description": "Create Test",
"acceptanceCriteria": [],
"priority": 4,
"passes": true,
"labels": [],
"dependsOn": [],
"completionNotes": "Completed by agent"
},
{
"id": "US-007",
"title": "Edit Test",
"description": "Edit Test",
"acceptanceCriteria": [],
"priority": 4,
"passes": true,
"labels": [],
"dependsOn": [],
"completionNotes": "Completed by agent"
},
{
"id": "US-008",
"title": "Delete Test",
"description": "Delete Test",
"acceptanceCriteria": [],
"priority": 4,
"passes": true,
"labels": [],
"dependsOn": [],
"completionNotes": "Completed by agent"
},
{
"id": "US-009",
"title": "View Controls",
"description": "View Controls",
"acceptanceCriteria": [],
"priority": 4,
"passes": true,
"labels": [],
"dependsOn": [],
"completionNotes": "Completed by agent"
},
{
"id": "US-010",
"title": "Create Control",
"description": "Create Control",
"acceptanceCriteria": [],
"priority": 4,
"passes": true,
"labels": [],
"dependsOn": [],
"completionNotes": "Completed by agent"
},
{
"id": "US-011",
"title": "Edit Control",
"description": "Edit Control",
"acceptanceCriteria": [],
"priority": 4,
"passes": true,
"labels": [],
"dependsOn": [],
"completionNotes": "Completed by agent"
},
{
"id": "US-012",
"title": "Delete Control",
"description": "Delete Control",
"acceptanceCriteria": [],
"priority": 4,
"passes": true,
"labels": [],
"dependsOn": [],
"completionNotes": "Completed by agent"
},
{
"id": "US-013",
"title": "Daily Entry Interface",
"description": "Daily Entry Interface",
"acceptanceCriteria": [],
"priority": 4,
"passes": true,
"labels": [],
"dependsOn": [],
"completionNotes": "Completed by agent"
},
{
"id": "US-014",
"title": "Save Daily Result",
"description": "Save Daily Result",
"acceptanceCriteria": [],
"priority": 4,
"passes": true,
"labels": [],
"dependsOn": [],
"completionNotes": "Completed by agent"
},
{
"id": "US-015",
"title": "Monthly Entry Interface",
"description": "Monthly Entry Interface",
"acceptanceCriteria": [],
"priority": 4,
"passes": true,
"labels": [],
"dependsOn": [],
"completionNotes": "Completed by agent"
},
{
"id": "US-016",
"title": "Save Monthly Results",
"description": "Save Monthly Results",
"acceptanceCriteria": [],
"priority": 4,
"passes": true,
"labels": [],
"dependsOn": [],
"completionNotes": "Completed by agent"
},
{
"id": "US-017",
"title": "Daily Comments",
"description": "User can entry comment per day, per test.",
"acceptanceCriteria": [],
"priority": 4,
"passes": true,
"labels": [],
"dependsOn": [],
"completionNotes": "Completed by agent"
},
{
"id": "US-018",
"title": "Report Generation Form",
"description": "Report Generation Form",
"acceptanceCriteria": [],
"priority": 4,
"passes": true,
"labels": [],
"dependsOn": [],
"completionNotes": "Completed by agent"
},
{
"id": "US-019",
"title": "Report Display",
"description": "Report Display",
"acceptanceCriteria": [],
"priority": 4,
"passes": true,
"labels": [],
"dependsOn": [],
"completionNotes": "Completed by agent"
}
],
"metadata": {
"createdAt": "2026-01-16T09:22:41.726Z",
"version": "1.0.0",
"updatedAt": "2026-01-16T10:27:48.837Z"
}
}