- 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.
68 lines
3.1 KiB
PHP
68 lines
3.1 KiB
PHP
<?= $this->extend("layout/main_layout"); ?>
|
|
|
|
<?= $this->section("content"); ?>
|
|
<main class="flex-1 p-6 overflow-auto">
|
|
<div class="flex flex-col md:flex-row md:items-center md:justify-between mb-6 gap-4">
|
|
<div>
|
|
<h1 class="text-2xl font-bold tracking-tight text-base-content">Dashboard</h1>
|
|
<p class="text-sm mt-1 opacity-70">Quality Control Overview</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-6">
|
|
<div class="bg-base-100 rounded-xl border border-base-300 shadow-sm p-6">
|
|
<div class="flex items-center justify-between">
|
|
<div>
|
|
<p class="text-sm text-base-content/60">Total Controls</p>
|
|
<p class="text-2xl font-bold text-base-content mt-1">24</p>
|
|
</div>
|
|
<div class="w-12 h-12 rounded-lg bg-primary/10 flex items-center justify-center">
|
|
<i class="fa-solid fa-vial text-primary text-xl"></i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="bg-base-100 rounded-xl border border-base-300 shadow-sm p-6">
|
|
<div class="flex items-center justify-between">
|
|
<div>
|
|
<p class="text-sm text-base-content/60">Tests Today</p>
|
|
<p class="text-2xl font-bold text-base-content mt-1">156</p>
|
|
</div>
|
|
<div class="w-12 h-12 rounded-lg bg-success/10 flex items-center justify-center">
|
|
<i class="fa-solid fa-check text-success text-xl"></i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="bg-base-100 rounded-xl border border-base-300 shadow-sm p-6">
|
|
<div class="flex items-center justify-between">
|
|
<div>
|
|
<p class="text-sm text-base-content/60">Pass Rate</p>
|
|
<p class="text-2xl font-bold text-base-content mt-1">98.5%</p>
|
|
</div>
|
|
<div class="w-12 h-12 rounded-lg bg-warning/10 flex items-center justify-center">
|
|
<i class="fa-solid fa-chart-line text-warning text-xl"></i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="bg-base-100 rounded-xl border border-base-300 shadow-sm p-6">
|
|
<div class="flex items-center justify-between">
|
|
<div>
|
|
<p class="text-sm text-base-content/60">Alerts</p>
|
|
<p class="text-2xl font-bold text-base-content mt-1">3</p>
|
|
</div>
|
|
<div class="w-12 h-12 rounded-lg bg-error/10 flex items-center justify-center">
|
|
<i class="fa-solid fa-triangle-exclamation text-error text-xl"></i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="bg-base-100 rounded-xl border border-base-300 shadow-sm p-6">
|
|
<h2 class="text-lg font-semibold text-base-content mb-4">Recent QC Results</h2>
|
|
<p class="text-base-content/60 text-center py-8">Dashboard content coming soon...</p>
|
|
</div>
|
|
</main>
|
|
<?= $this->endSection(); ?>
|