initial commit
This commit is contained in:
33
.agent/rules/development-folders.md
Normal file
33
.agent/rules/development-folders.md
Normal file
@@ -0,0 +1,33 @@
|
||||
---
|
||||
trigger: always_on
|
||||
---
|
||||
|
||||
usa ./docs/development/devlog per tenere traccia di tutti i piani di lavoro e il loro attuale stato singolarmente, crea qui dentro i log delle lavorazioni ed il lavoro fatto, da fare e suggerito per ogni piano di sviluppo, usa il formato "yyyy-mm-dd-hh24miss_descrizione_brevissima".
|
||||
|
||||
usa ./docs/development per tenere un file DEVELOPMENT.md riassuntivo con link ai file specifici dentro ./docs/development/devlog e una breve sintesi specificando che tipo di sviluppo si è concluso o si sta lavorando.
|
||||
|
||||
usa ./src/backend per tutto quello che riguarda il backend in Node.js
|
||||
|
||||
usa ./src/frontend per tutto quello che riguarda il frontend in react
|
||||
|
||||
## Struttura Modulare del Progetto
|
||||
|
||||
Il progetto segue una rigorosa struttura modulare sia per il backend che per il frontend. Ogni nuova funzionalità o dominio di business deve essere incapsulato nel proprio modulo.
|
||||
|
||||
### Backend (Node.js)
|
||||
- **Moduli**: `src/backend/src/modules/[nome-modulo]/`
|
||||
- **Controllers**: `src/backend/src/modules/[nome-modulo]/controllers/`
|
||||
- I file devono essere nominati `[nome].controller.ts`.
|
||||
- Le rotte devono essere definite in `[nome-modulo].routes.ts` e seguire il pattern `api/[nome-modulo]/[risorsa]`.
|
||||
- **Entities/Models**: `src/backend/src/modules/[nome-modulo]/entities/`
|
||||
- Le entità devono essere definite usando l'ORM scelto (es. TypeORM/Prisma) e risiedere in questa cartella.
|
||||
- **Services**: `src/backend/src/modules/[nome-modulo]/services/`
|
||||
- La logica di business deve risiedere nei service, separata dai controller.
|
||||
|
||||
### Frontend (React)
|
||||
- **Moduli**: `src/frontend/src/modules/[nome-modulo]/`
|
||||
- **Pagine**: `src/frontend/src/modules/[nome-modulo]/pages/`
|
||||
- **Componenti**: `src/frontend/src/modules/[nome-modulo]/components/`
|
||||
- **Rotte**: `src/frontend/src/modules/[nome-modulo]/routes.tsx`
|
||||
- Il file `routes.tsx` deve esportare un componente che definisce le rotte figlie del modulo.
|
||||
- Le rotte devono essere importate e registrate nel router principale (es. `App.tsx`).
|
||||
37
.agent/rules/development-guide.md
Normal file
37
.agent/rules/development-guide.md
Normal file
@@ -0,0 +1,37 @@
|
||||
---
|
||||
trigger: always_on
|
||||
---
|
||||
|
||||
Produci sempre prima il piano di implementazione nelle cartelle dedicate (`./docs/development/devlog`) e proponi di default all'utente di visionarlo. Se l'utente approva, prosegui con l'implementazione senza fermarti; aggiorna il piano man mano che viene completato.
|
||||
|
||||
### Filosofia UX/UI
|
||||
L'obiettivo primario è **sostituire Excel** riducendo il tempo di gestione manuale.
|
||||
- **Target Utente:** L'utente tipo (es. "Ilaria") deve gestire grandi moli di dati ripetitivi. Il software deve essere veloce, supportare l'inserimento rapido e fornire feedback immediati.
|
||||
- **Interfaccia:** Utilizza Material Design. Pulita, professionale e ad alto contrasto per la leggibilità delle tabelle (Scadenzario).
|
||||
- **Feedback:** Il salvataggio dei dati deve essere quanto più possibile automatico o "senza frizione". Se il backend restituisce un errore, questo deve essere notificato con un messaggio specifico e comprensibile, mai un generico "Errore".
|
||||
|
||||
### Stack Tecnologico
|
||||
- **Frontend:** React. Usa componenti standard e stabili.
|
||||
- **Backend:** Node.js.
|
||||
- **Database:** Gestione rigorosa in **Code First** tramite ORM (es. Prisma o TypeORM).
|
||||
- **Sviluppo:** SQLite.
|
||||
- **Produzione:** PostgreSQL.
|
||||
- **Regola:** Mai query SQL raw; usare sempre le migrazioni.
|
||||
|
||||
### Struttura e Navigazione
|
||||
Dimentica la logica "App Store". L'applicazione è un unico ambiente integrato con un Menu Laterale fisso per le aree funzionali:
|
||||
1. **Dashboard** (KPI e riepiloghi).
|
||||
2. **Scadenzario** (Il cuore operativo: filtri, viste scadenze, stati).
|
||||
3. **Anagrafiche** (Sottomenu: Aziende, Lavoratori).
|
||||
4. **Formazione** (Sottomenu: Catalogo Corsi, Eventi Formativi).
|
||||
5. **Comunicazioni** (Coda invio mail, Storico).
|
||||
6. **Configurazione/Admin**.
|
||||
|
||||
### Workflow di Sviluppo
|
||||
1. **Pianificazione:** Prima di ogni task, scrivi il piano in `./docs/development`.
|
||||
2. **Integrazione:** Lavora sempre sul codice esistente. Non riscrivere se puoi estendere.
|
||||
3. **Responsività:** L'interfaccia deve adattarsi, ma la priorità è la fruibilità Desktop per l'uso da ufficio intensivo.
|
||||
4. **I18n:** Predisponi il sistema per il multilingua (Italiano default), mantenendo i file di traduzione allineati.
|
||||
|
||||
### Verifica Preliminare
|
||||
Prima di pianificare nuove attività, verifica sempre che l'applicazione si avvii correttamente e che le funzioni base (es. Login, Lista Aziende) siano operative.
|
||||
17
.agent/rules/market-placing.md
Normal file
17
.agent/rules/market-placing.md
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
trigger: always_on
|
||||
---
|
||||
|
||||
Il software si chiama Zentral (configurazione OBIS Safety) e si occupa esclusivamente di gestire la formazione obbligatoria in materia di sicurezza:
|
||||
|
||||
- **Anagrafiche**: Gestione strutturata di aziende clienti, sedi operative e lavoratori.
|
||||
- **Catalogo Corsi**: Definizione tipologie corsi, livelli e durate di validità (calcolo automatico scadenze).
|
||||
- **Eventi Formativi**: Registrazione della formazione avvenuta e calcolo automatico dello stato (valido, in scadenza, scaduto).
|
||||
- **Scadenzario**: Dashboard operativa per il monitoraggio delle scadenze con filtri e viste dedicate.
|
||||
- **Documentale**: Archiviazione e ricerca rapida degli attestati (PDF/Word) collegati ai lavoratori.
|
||||
- **Comunicazioni**: Automazione dei flussi di avviso via e-mail alle aziende (promemoria pre-scadenza, scadenza e post-scadenza) con sistema di approvazione.
|
||||
- **Import/Export**: Strumenti per l'importazione massiva dei dati storici e l'esportazione verso portali e-learning esterni.
|
||||
|
||||
Mostra statistiche grafiche sullo stato di copertura formativa nella dashboard principale.
|
||||
|
||||
Si orienta all'automatizzazione dei processi di back-office per eliminare la gestione manuale su file Excel e centralizzare i dati della formazione sicurezza.
|
||||
9
.agent/rules/running-guide.md
Normal file
9
.agent/rules/running-guide.md
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
trigger: always_on
|
||||
---
|
||||
|
||||
All'inizio dei lavori avvia sempre l'applicazione. Assicurati di aver installato le dipendenze con `npm install` (o `yarn`) sia nel backend che nel frontend.
|
||||
|
||||
Avvia l'ambiente di sviluppo (che deve lanciare sia backend che frontend) con il comando dedicato (es. `npm run dev` o `make run dev` se presente Makefile).
|
||||
|
||||
Se le porte sono occupate, prima liberale, poi avvia l'applicazione.
|
||||
Reference in New Issue
Block a user