feat: initialize dashboard with bug reporting system

- Add Tailwind CSS for styling and custom theme variables.
- Create HTML structure for the dashboard with dark mode support.
- Implement database schema for bug reports and associated files using Drizzle ORM.
- Set up database connection with MySQL and environment variables.
- Create utility functions for class names, byte formatting, and date formatting.
- Develop error handling page for the dashboard.
- Implement layout and routing for the dashboard, including pagination and filtering for bug reports.
- Create API endpoints for downloading reports and files.
- Add functionality for viewing, updating, and deleting bug reports.
- Set up Docker configuration for the dashboard service.
- Include TypeScript configuration and Vite setup for the project.
This commit is contained in:
Flavio Fois
2026-02-14 21:35:27 +01:00
parent d510c24b69
commit c6c27f2f30
25 changed files with 1096 additions and 0 deletions

View File

@@ -686,6 +686,22 @@ A separate API server (`server/` directory) receives bug reports:
- **Rate limiting**: HWID-based, configurable (default 5 reports per 24h)
- **Endpoints**: `POST /api/bug-reports` (client), `GET/DELETE /api/admin/bug-reports` (admin)
#### Bug Report Dashboard
A web dashboard (`dashboard/` directory) for browsing, triaging, and downloading bug reports:
- **Stack**: SvelteKit (Svelte 5) + TailwindCSS v4 + Drizzle ORM + Bun.js
- **Deployment**: Docker service in `server/docker-compose.yml`, port 3001
- **Database**: Connects directly to the same MySQL database via Drizzle ORM (read/write)
- **Features**:
- Paginated reports list with status filter and search (hostname, user, name, email)
- Report detail view with metadata, description, system info (collapsible JSON), and file list
- Status management (new → in_review → resolved → closed)
- Inline screenshot preview for attached screenshots
- Individual file download and bulk ZIP download (all files + report metadata)
- Report deletion with confirmation dialog
- Dark mode UI matching EMLy's aesthetic
- **Development**: `cd dashboard && bun install && bun dev` (localhost:3001)
#### Configuration (config.ini)
```ini