Guia de desenvolupament
Aquesta guia explica com treballar al projecte LDP a nivell pràctic:
- arrencar el projecte en local,
- provar l’API,
- entendre el flux de treball amb Git,
- seguir unes normes bàsiques de codi,
- mantenir la documentació al dia.
Públic objectiu: desenvolupadors que volen arrencar el projecte en local, provar l’API i començar a contribuir.
1. Prerequisits
Abans de començar, assegura’t de tenir instal·lat:
- Java JDK
- Versió mínima: 17 (21 recomanat)
- Com verificar:
java -version - On descarregar: https://adoptium.net/
- Maven
- Versió mínima: 3.8+
- Com verificar:
mvn -version - On descarregar: https://maven.apache.org/download.cgi
- Docker
- Versió mínima: 20.10+
- Com verificar:
docker --version - On descarregar: https://www.docker.com/products/docker-desktop/
- Git
- Versió mínima: 2.30+
- Com verificar:
git --version - On descarregar: https://git-scm.com/downloads
Verificació ràpida:
java -version
mvn -version
docker --version
git --version
Per requisits específics del backend:
- consulta
dev/backend-setup.
2. Arrencar el projecte en local (vista ràpida)
2.1. Backend
-
Assegura’t que PostgreSQL està actiu (Docker o instal·lació local).
-
Configura variables d’entorn i perfils segons
dev/backend-setup. -
Des de la carpeta
backend/:mvn spring-boot:run
# o, amb perfil local:
# mvn spring-boot:run -Dspring-boot.run.profiles=local
Per més detall:
- revisa
dev/backend-setup.
2.2. Frontend (quan estigui definit)
Quan el frontend estigui creat al monorepo:
-
Ves a la carpeta
frontend/. -
Instal·la dependències:
npm install -
Arrenca el frontend:
npm run dev -
Obre’l al navegador (per exemple):
http://localhost:5173
3. Flux de treball amb Git
3.1. Branques
main- branca estable, preparada per desplegar.
- Branques de feature:
- nom recomanat:
feat/nom-curt - exemples:
feat/dance-crud-improvementsfeat/import-csv-basic
- nom recomanat:
- Branques de fix:
- nom recomanat:
fix/nom-curt - exemples:
fix/fix-cors-configfix/login-redirect
- nom recomanat:
3.2. Procés recomanat
-
Actualitza la branca principal:
git checkout main
git pull -
Crea una branca nova a partir de
main:git checkout -b feat/nom-curt -
Fes els canvis:
- codi,
- tests,
- documentació (si cal).
-
Comprova que tot compila i que els tests passen.
-
Fes commit amb un missatge clar:
git commit -m "feat: improve dance filters on admin list" -
Puja la branca i crea la Pull Request (si es fa servir PR).
4. Normes de codi
4.1. Backend (Java / Spring Boot)
- Noms en anglès:
- classes, mètodes, entitats (
Dance,Song,OwnershipRequest, etc.).
- classes, mètodes, entitats (
- Lògica:
- evitar lògica pesada als controllers,
- delegar la lògica de negoci a serveis (
service).
- Validació:
- utilitzar anotacions Bean Validation als DTOs (
@NotNull,@Size, etc.), - fer validacions de domini als serveis si cal.
- utilitzar anotacions Bean Validation als DTOs (
- Errors:
- utilitzar excepcions específiques per cada cas,
- tenir un handler global (
@ControllerAdvice) per retornar respostes d’API coherents.
4.2. Frontend (React / TypeScript)
- Components en anglès:
- per exemple:
DanceListPage,SongForm,ImportCsvPage.
- per exemple:
- Tipatge:
- evitar
any, - definir tipus i DTOs per a respostes de l’API.
- evitar
- Formularis:
- utilitzar React Hook Form (o la llibreria acordada),
- afegir validació amb Zod (o similar) quan sigui possible.
- Estructura:
- separar components de presentació i lògica quan tingui sentit,
- mantenir fitxers raonablement curts i llegibles.
5. Afegir una nova funcionalitat (checklist)
5.1. Pas 1 – Disseny ràpid
Abans de tocar codi:
- Pregunta’t:
- Afecta backend? frontend? tots dos?
- Toca model de dades (taules, entitats)?
- Si toca model de dades:
- revisa
architecture/db-redesign-plan.
- revisa
Documents d’arquitectura relacionats que pots consultar:
architecture/architecture-overviewarchitecture/import-systemarchitecture/securityarchitecture/ownership-workflow(si aplica)
5.2. Pas 2 – Backend
- Ajusta o crea entitats i DTOs si cal.
- Afegeix migracions Flyway per als canvis de base de dades.
- Actualitza:
- repositoris,
- serveis,
- controllers.
- Afegeix tests:
- de servei,
- de controller (si té sentit).
- Verifica:
- que les migracions funcionen en una BD neta,
- que els endpoints fan el que diu la documentació.
5.3. Pas 3 – Frontend
- Actualitza clients d’API i tipus de dades.
- Afegeix o modifica pàgines, components i formularis.
- Afegeix validacions al client (formularis).
- Prova el flux complet:
- UI → API → BD → resposta.
5.4. Pas 4 – Documentació
En funció del tipus de canvi:
- Arquitectura:
- actualitza
architecture/architecture-overviewo el document específic.
- actualitza
- Model de dades:
- actualitza
architecture/db-redesign-plan.
- actualitza
- Import/staging:
- actualitza
architecture/import-system.
- actualitza
- Roadmap i backlog:
- marca tasques com fetes o en curs a
roadmap/backlog, - si cal, ajusta l’estat de la fase a
roadmap/roadmap-global.
- marca tasques com fetes o en curs a
- Històric:
- afegeix una entrada a
history/changelogamb:- data,
- resum del canvi,
- referències (issue, PR, etc.).
- afegeix una entrada a
6. Treballar amb la documentació (docs-web)
6.1. Arrencar la doc en local
Des de la carpeta docs-web/:
npm install # primera vegada
npm run start
La documentació s’obrirà (o la pots obrir) a:
http://localhost:3000
6.2. Actualitzar documents
- Localitza el fitxer adequat, per exemple:
architecture/security.mdroadmap/backlog.mddev/backend-setup.md
- Edita el text:
- en català,
- mantenint estructura de títols, llistes i taules.
- Desa i comprova al navegador.
- Fes commit:
- junt amb el codi relacionat, o en un commit separat però clar.
Per regles generals de documentació:
- consulta
meta/docs-guide.
7. Relació amb roadmap, backlog i changelog
Documents clau:
- Roadmap global:
roadmap/roadmap-global
- Detall tècnic per fase:
roadmap/roadmap-technical-details
- Backlog viu:
roadmap/backlog
- Històric de canvis:
history/changelog
Quan tanquis una tasca o bloc rellevant:
- Actualitza
roadmap/backlog(estat: pendent, en curs, fet). - Si afecta una fase, ajusta
roadmap/roadmap-global. - Afegeix una entrada a
history/changelogamb data i resum.
8. Ús d’IA (ChatGPT, Copilot, etc.)
Pots utilitzar IA per:
- refactoritzar codi,
- generar snippets,
- ordenar notes i convertir-les en documentació.
Bones pràctiques:
- Dona sempre prou context:
- fitxer,
- fragment de codi,
- objectiu.
- Revisa sempre el resultat:
- que respecti el model de dades real,
- que segueixi les convencions del projecte.
Veure també:
ai/ai-roles
9. On començar si ets nou al projecte
- Llegeix:
overview/visionoverview/tech-stack
- Mira:
architecture/architecture-overview
- Repassa:
roadmap/roadmap-globalroadmap/backlog
- Segueix:
dev/backend-setupper arrencar el backend en local.
- Arrenca
docs-webi utilitza aquesta web com a punt de navegació principal.
A partir d’aquí, utilitza aquesta guia com a referència mentre vas treballant.