3.0 KiB
3.0 KiB
Piano di Sviluppo - Zentral (OBIS Safety)
Data: 2025-12-15 Stato: Pianificazione Iniziale
Obiettivo
Creare una Web App SaaS ("Zentral") per la gestione della formazione sicurezza OBIS, sostituendo Excel con un sistema automatizzato.
1. Architettura del Sistema
Backend (Node.js)
- Framework: Express.js con TypeScript.
- Struttura: Modulare (vedi
src/backend/src/modules). - Database:
- ORM: Prisma (Supporto nativo per SQLite in dev e PostgreSQL in prod).
- Dev: SQLite (
dev.db). - Prod: PostgreSQL.
- API: RESTful standard
api/[modulo]/[risorsa]. - Sicurezza: Helmet, CORS, input validation (Zod/Joi), password hashing (Argon2/Bcrypt).
Frontend (React)
- Build Tool: Vite.
- Linguaggio: TypeScript.
- UI/UX:
- Design System: Custom basato su "Material Design" ma con estetica "Premium" (colori vibranti, glassmorphism).
- Styling: Vanilla CSS (Variabili CSS per temi) + CSS Modules per scoping.
- Componenti: React standard.
- Stato: React Context + Hooks per gestione globale semplice.
2. Roadmap di Implementazione
Fase 1: Setup e Fondamenta (Oggi)
- Inizializzazione Repository e Cartelle (
src/backend,src/frontend). - Setup Backend: Express, Prisma, Struttura Modulare base.
- Setup Frontend: Vite React, Configurazione CSS Base (Design Tokens), Layout App Shell (Sidebar, Header).
- Configurazione Database iniziale (Schema Prisma: User, Company preliminary).
Fase 2: Gestione Anagrafiche
- Modulo Aziende (Companies): CRUD, Sedi.
- Modulo Lavoratori (Workers): CRUD, Associazione Azienda.
- UI per Anagrafiche: Tabelle moderne, Form di inserimento laterali o modali.
Fase 3: Core Formazione
- Modulo Corsi (Courses): Catalogo, tipologie, validità.
- Modulo Eventi (TrainingEvents): Gestione eventi, upload attestati (Parziale).
- Logica Calcolo Scadenze (Service layer dedicate).
Fase 4: Scadenzario e Dashboard
- Dashboard KPI: Grafici di copertura.
- Scadenzario: Datatable avanzata (Filtri, Sort, Export Excel).
Fase 5: Notifiche e Comunicazioni
- Sistema Code Mail (Redis/Bull o tabella DB semplice per MVP).
- Template Engine (Mock/Simple).
- Workflow approvazione manuale invii.
3. Modello Dati Preliminare (Schema ER semplificato)
- Company: id, name, vatNumber, email, phone, status...
- Site: id, companyId, address, city...
- Worker: id, companyId, siteId, firstName, lastName, taxCode (CF), jobTitle, status...
- Course: id, title, type, validityYears, hasPostExpiryReminder...
- TrainingEvent: id, workerId, courseId, eventDate, expiryDate, provider, status (Valid/Expiring/Expired), certificateUrl...
- Notification: id, companyId, type (Pre/At/Post), status (Pending/Sent/Error), scheduledDate...
4. Azioni Immediate
- Creare struttura cartelle.
- Inizializzare Backend (
npm init, installazione dipendenze base). - Inizializzare Frontend (
npm create vite). - Definire Schema Prisma iniziale.