Salta el contingut

Cas pràctic: API de gestió d'incidències

Descripció del projecte

L'Institut Sa Palomera necessita un sistema intern per gestionar les incidències TIC dels alumnes i professors. Actualment tot es fa per correu electrònic, cosa que genera desordre i pèrdua de seguiment. Es vol construir una API REST (backend) que permeti crear, assignar i tancar incidències, amb un frontend simple per als usuaris.

Durada total: 6 setmanes (3 sprints de 2 setmanes). Equip: 4 persones (2 backend, 1 frontend, 1 QA/DevOps).


Visió del projecte i Product Goal

Product Goal:
Al final del projecte, el sistema de tickets permetrà
als usuaris de l'institut crear incidencies TIC i al
servei tecnic gestionar-les i tancar-les, eliminant
la dependencia del correu electronic.

Product Backlog inicial

Epic 1: Gestio d'usuaris i autenticació

ID Historia SP Prioritat
D01 Com a usuari, vull poder registrar-me amb el correu institucional i una contrasenya, per accedir al sistema. 5 Alta
D02 Com a usuari, vull iniciar sessio i rebre un token JWT, per autenticar les meves peticions a l'API. 3 Alta
D03 Com a admin, vull assignar rols (usuari, tecnic, admin), per controlar que pot fer cada persona. 5 Alta

Epic 2: Gestio d'incidencies

ID Historia SP Prioritat
D04 Com a usuari, vull crear una incidencia amb titol, descripcio i prioritat, per comunicar el problema al servei tecnic. 5 Alta
D05 Com a tecnic, vull veure totes les incidencies obertes ordenades per prioritat, per atendre-les en ordre. 3 Alta
D06 Com a tecnic, vull assignar una incidencia a mi mateix o a un altre tecnic, per gestionar la carrega de treball. 3 Alta
D07 Com a tecnic, vull canviar l'estat d'una incidencia (oberta, en progres, resolta, tancada), per reflectir el progres real. 3 Alta
D08 Com a usuari, vull rebre una notificacio per correu quan l'estat de la meva incidencia canvia, per estar informat. 5 Mitjana
D09 Com a admin, vull veure estadistiques (temps de resolucio, incidencies per tecnic, per categoria), per gestionar l'equip. 8 Baixa

Epic 3: Qualitat i desplegament

ID Historia SP Prioritat
D10 Com a sysadmin, vull que l'API i la base de dades s'executin en contenidors Docker, per facilitar el desplegament. 5 Alta
D11 Com a dev, vull tests automatics per als endpoints principals de l'API, per detectar regressions. 8 Mitjana
D12 Com a dev, vull un pipeline CI/CD (GitHub Actions) que executi els tests i faci el deploy automaticament, per reduir l'error huma. 8 Baixa

Planificació dels sprints

Sprint 1 — Autenticació i CRUD bàsic d'incidències

Sprint Goal: Un usuari pot registrar-se, iniciar sessió i crear/veure incidències via l'API.

Item SP
D01 — Registre d'usuari 5
D02 — Login + JWT 3
D04 — Crear incidencia 5
D05 — Llistar incidencies 3
D10 — Docker 5
Total 21

Sprint 2 — Gestió completa i rols

Sprint Goal: Tecnics poden gestionar el cicle complet d'una incidència. Rols implementats.

Item SP
D03 — Rols 5
D06 — Assignar incidencia 3
D07 — Canviar estat 3
D08 — Notificacions correu 5
D11 — Tests automatics 8
Total 24

Sprint 3 — Estadístiques, CI/CD i tancament

Sprint Goal: Sistema complet amb estadístiques, pipeline CI/CD i documentació de l'API.

Item SP
D09 — Estadistiques 8
D12 — CI/CD 8
Documentacio API (Swagger/OpenAPI) 3
Proves d'acceptacio 3
Total 22

Definition of Done del projecte

Un item es considera DONE quan:
[ ] L'endpoint o funcionalitat esta implementat i els tests passen (>=80% coverage).
[ ] El codi esta revisat per un altre membre de l'equip (PR aprovat).
[ ] L'endpoint esta documentat a Swagger/OpenAPI.
[ ] El pipeline CI/CD passa sense errors.
[ ] S'han executat les proves manuals dels criteris d'acceptacio.
[ ] L'issue esta tancat a GitHub Projects.

Activitat RA5 — Sprint 1 Dev

Executeu el primer sprint del projecte d'API:

  1. Configureu el repositori GitHub amb la plantilla d'Issues i el tauler Projects.
  2. Feu el Sprint Planning i descomposeu els items en tasques de menys d'un dia.
  3. Manteniu el tauler actualitzat i feu la Daily cada dia de classe.
  4. Al final del sprint, feu la Sprint Review: l'API ha de funcionar en local via curl o Postman.
  5. Feu la Retrospectiva i documenteu les accions de millora.