Files
obis-gestionale-security/.agent/rules/development-folders.md
2025-12-15 13:16:19 +01:00

33 lines
2.0 KiB
Markdown

---
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`).