Pla de programació Laravel - Geyseco
Document creat: 31/08/2026
1. Objectiu del document
Aquest document converteix la proposta funcional i tècnica de Geyseco en un pla de programació executable per fases.
No és encara un calendari tancat. És l'ordre recomanat de construcció, amb dependències, entregables, criteris d'acceptació i proves mínimes per reduir risc abans d'entrar en producció.
El criteri principal és construir una vertical completa abans d'omplir tots els CRUD:
- Crear un congrés.
- Assignar-hi equip.
- Configurar inscripcions, idiomes, quotes i web.
- Publicar una web pública.
- Rebre una inscripció realista.
- Generar formularis d'inscripció.
- Donar accés a l'Àrea personal del responsable i dels assistents.
- Cobrar amb targeta/TPV o registrar moviments manuals de pagament.
- Gestionar allotjaments.
- Validar permisos, auditoria, cues, backups i responsive.
2. Abast del MVP
Entra
- Autenticació i gestió inicial d'usuaris.
- Rols globals i equip assignat per congrés.
- Alta, edició, arxiu i gestió de congressos.
- Configuració multiidioma de backoffice i web pública.
- Configuració d'inscripcions, quotes, extres i camps.
- Formulari públic d'inscripció.
- Àrea personal per a responsable i assistents.
- Responsable/contacte, assistents i dades fiscals.
- Extres associats a assistents.
- Allotjaments amb disponibilitat per nit.
- Formularis d'inscripció de confirmació i revisions manuals.
- Pagament amb targeta o TPV dins del formulari públic.
- Pagaments manuals com a llibre de moviments.
- Webhooks, idempotència i reconciliació de pagaments TPV.
- Web pública del congrés.
- Textos legals globals i personalització per congrés.
- Publicació a l'agenda corporativa.
- Auditoria d'accions rellevants.
- Operacions i jobs visibles.
- Backups i restauració provada.
No entra al MVP
- Facturació.
- Comunicacions científiques.
- Avaluadors i superavaluadors.
- Estadístiques avançades.
- Constructor visual lliure de webs.
3. Arquitectura de partida
La base tècnica recomanada és:
- Laravel com a monòlit modular.
- Inertia + Vue per al backoffice.
- Blade o SSR per a webs públiques.
- MySQL/MariaDB com a base de dades objectiu en el servidor actual.
- Redis per cues i cache.
- Laravel Queues amb workers separats.
- Outbox transaccional per correus i operacions crítiques.
- Storage privat mitjançant Laravel Flysystem.
- S3 compatible en producció si l'operativa ho permet.
- Proveïdor transaccional extern per correus.
- Proveïdor de pagament amb targeta/TPV.
- Desplegament i operació mitjançant Mestral.
4. Decisions prèvies a Sprint 0
Abans de començar codi productiu, cal tancar o confirmar:
- Repositori definitiu i política de branques.
- Entorns: desenvolupament, staging i producció.
- Credencials i base de dades MySQL/MariaDB del servidor actual.
- Confirmació de política de backups i restauració de MySQL/MariaDB.
- Servidor Redis disponible per queues i cache.
- Proveïdor de correu transaccional.
- Proveïdor de pagament amb targeta/TPV i entorn de proves.
- Credencials sandbox i producció del TPV.
- Caducitat i política de regeneració dels accessos a l'Àrea personal.
- Estratègia de dominis i subdominis per webs públiques.
- Ubicació de fitxers privats.
- Política de backups i restauració.
- Idiomes inicials del backoffice.
- Idiomes inicials de webs públiques.
- Primer congrés pilot per validar la vertical completa.
- Dades legals globals de Geyseco.
- Comptes bancaris inicials.
5. Definició de fet
Una funcionalitat no es considera acabada només perquè es vegi a pantalla.
Per donar-la per feta cal:
- Migracions aplicades sense errors.
- Models, relacions i validacions coherents.
- Policies o permisos aplicats al backend.
- UI funcional al backoffice o web pública segons correspongui.
- Textos preparats per multiidioma quan siguin visibles.
- Auditoria quan hi hagi canvi funcional rellevant.
- Tests mínims de model, política o flux.
- Validació responsive en mòbil, tauleta i sobretaula.
- Sense errors de consola en la ruta afectada.
- Documentació actualitzada si canvia el criteri funcional o tècnic.
6. Sprint 0 - Arrencada tècnica
Objectiu
Crear la base real del projecte Laravel i deixar-la preparada per desenvolupar amb seguretat.
Tasques
- Crear repositori real del projecte.
- Inicialitzar Laravel.
- Configurar Inertia i Vue per al backoffice.
- Definir estructura modular interna.
- Configurar base de dades.
- Configurar Redis.
- Configurar queues.
- Configurar scheduler.
- Configurar entorn local.
- Configurar staging.
- Configurar variables d'entorn.
- Configurar logs.
- Configurar health check bàsic.
- Configurar pipeline mínim de validació.
- Afegir formatador i estàndard de codi.
- Crear layout base del backoffice.
- Preparar layout base de web pública.
- Crear primeres migracions tècniques.
- Preparar patró d'auditoria.
- Preparar patró d'outbox.
- Preparar patró d'operacions visibles.
Entregable
Aplicació Laravel arrencable en local i staging, amb login placeholder o base tècnica preparada, connexió a base de dades, cues i estructura mínima de mòduls.
Criteris d'acceptació
- El projecte arrenca en local.
- El projecte arrenca en staging.
- Les migracions s'executen sense errors.
- Es pot executar la cua.
- Es pot executar el scheduler.
- Existeix una pàgina base de backoffice.
- Existeix una pàgina base de web pública.
- Hi ha una estratègia clara de logs i configuració.
Proves mínimes
- Test de boot de l'aplicació.
- Test de connexió a base de dades.
- Test de dispatch i processament d'un job simple.
- Test de migracions en entorn net.
7. Sprint 1 - Autenticació, usuaris i permisos
Objectiu
Construir l'accés segur al backoffice i la base de permisos real.
Tasques
- Implementar login.
- Implementar logout.
- Implementar recuperació de contrasenya.
- Crear model d'usuaris.
- Crear model de rols.
- Crear assignació de rol global.
- Crear gestió d'usuaris al backoffice.
- Crear gestió de rols al backoffice.
- Crear matriu de permisos inicial.
- Incorporar el mapa de mòduls i permisos com a referència funcional.
- Crear Policies de Laravel per a mòduls inicials.
- Restringir Programació a Súperadministrador.
- Restringir documentació interna a Súperadministrador.
- Auditar canvis d'usuari i rol.
- Afegir preferència d'idioma de treball de l'usuari.
Entregable
Backoffice amb autenticació real, usuaris, rols i protecció efectiva de rutes segons permisos.
Criteris d'acceptació
- Un usuari pot entrar i sortir.
- Un usuari pot recuperar la contrasenya.
- Un administrador pot crear i modificar usuaris.
- Un administrador pot assignar rols.
- Un gestor no pot veure configuració global si no té permís.
- Un usuari no autoritzat no pot accedir a Programació.
- La documentació interna no és accessible sense permís.
Proves mínimes
- Tests d'autenticació.
- Tests de recuperació de contrasenya.
- Tests de Policies.
- Tests d'accés prohibit a rutes internes.
- Tests d'auditoria de canvis d'usuari.
8. Sprint 2 - Congressos i equip assignat
Objectiu
Crear la base operativa del congrés com a entitat mare de tota la informació.
Tasques
- Crear taula de congressos.
- Crear camps principals del congrés.
- Guardar any del congrés.
- Guardar zona horària del congrés.
- Guardar estat del congrés.
- Implementar alta de congrés.
- Implementar edició de congrés.
- Implementar llistat de congressos.
- Implementar arxiu de congrés.
- Diferenciar arxivar, eliminar, anonimitzar i purgar.
- Crear assignació d'usuaris a congressos.
- Crear pestanya Equip assignat dins del congrés.
- Aplicar permisos per congrés assignat.
- Auditar canvis principals del congrés.
Entregable
Un administrador pot crear congressos i assignar-hi gestors. Un gestor només veu i gestiona els congressos assignats.
Criteris d'acceptació
- El congrés té dades generals completes.
- L'any queda guardat de forma consultable.
- La zona horària queda definida.
- L'arxiu no elimina dades.
- L'equip assignat funciona.
- Els permisos es validen al backend.
- El llistat filtra segons el rol de l'usuari.
Proves mínimes
- Tests CRUD de congressos.
- Tests de Policies per congressos assignats.
- Tests d'arxiu.
- Tests d'auditoria de canvis de congrés.
9. Sprint 3 - Configuració d'inscripcions
Objectiu
Definir com es configurarà cada congrés abans d'obrir inscripcions.
Tasques
- Crear configuració d'inscripcions per congrés.
- Crear idiomes actius del congrés.
- Crear idioma per defecte del congrés.
- Crear quotes d'inscripció.
- Crear edicions de quota amb dates límit.
- Crear extres associables a assistents.
- Crear camps configurables del formulari.
- Crear textos legals vinculats al formulari.
- Crear mètodes de pagament manuals actius.
- Crear configuració de pagament amb targeta/TPV per congrés.
- Permetre activar o desactivar TPV per congrés.
- Assignar compte bancari del congrés.
- Configurar criteri de formularis d'inscripció per responsable i assistents.
- Configurar text genèric de pagament pendent.
- Configurar text genèric de retorn.
- Congelar imports com a futura línia econòmica.
- Auditar canvis de configuració sensible.
Entregable
Un congrés pot deixar preparada tota la configuració necessària per rebre inscripcions públiques.
Criteris d'acceptació
- Es poden configurar quotes i extres.
- Els extres queden marcats com a associables a assistents.
- Els idiomes públics del congrés són independents de l'idioma del backoffice.
- Els mètodes de pagament manuals i TPV són configurables.
- Els textos de pagament pendent i retorn són configurables.
- La configuració queda auditada quan afecta imports o pagaments.
Proves mínimes
- Tests de configuració per congrés.
- Tests de validació d'imports.
- Tests de dates límit.
- Tests de permisos sobre configuració.
10. Sprint 4 - Formulari públic d'inscripció
Objectiu
Construir el primer flux públic complet d'inscripció.
Tasques
- Crear formulari públic SSR o Blade.
- Implementar selector d'idioma públic.
- Implementar pas de responsable.
- Permetre que el responsable sigui també assistent.
- Implementar pas d'assistents.
- Permetre diversos assistents en una sol·licitud.
- Implementar selecció de quota per assistent.
- Implementar extres per assistent.
- Implementar dades fiscals úniques per sol·licitud.
- Implementar resum final.
- Crear validacions server side.
- Crear registre de sol·licitud.
- Crear línies econòmiques congelades.
- Crear idioma de comunicació de la sol·licitud.
- Integrar inici de pagament amb targeta/TPV si està activat.
- Gestionar retorn correcte des del TPV.
- Gestionar pagament rebutjat o cancel·lat.
- Preparar esdeveniment outbox de confirmació.
- Mostrar estat inicial pendent de pagament.
Entregable
Una persona pot completar una inscripció pública amb un o diversos assistents i el sistema desa una sol·licitud coherent.
Criteris d'acceptació
- El formulari funciona en tots els idiomes actius.
- El responsable pot ser o no assistent.
- No cal entrar dues vegades les dades si el responsable és assistent.
- Cada assistent pot tenir quota i extres propis.
- Les dades fiscals són úniques per sol·licitud.
- Els imports queden congelats.
- La sol·licitud queda pagada automàticament si el TPV confirma el cobrament.
- La sol·licitud queda pendent de pagament si no hi ha pagament automàtic o si el TPV no accepta l'operació.
Proves mínimes
- Tests de validació del formulari.
- Tests de creació amb un assistent.
- Tests de creació amb múltiples assistents.
- Tests de responsable també assistent.
- Tests de línies econòmiques congelades.
- Tests de retorn TPV acceptat.
- Tests de retorn TPV rebutjat o cancel·lat.
- Tests responsive del formulari.
11. Sprint 5 - Backoffice d'inscripcions i pagaments
Objectiu
Donar a Geyseco control real sobre sol·licituds, assistents, imports, pagaments automàtics amb TPV i moviments manuals.
Tasques
- Crear llistat de sol·licituds.
- Crear fitxa de sol·licitud.
- Crear llistat d'assistents.
- Crear fitxa d'assistent.
- Mostrar imports contractats.
- Mostrar moviments econòmics.
- Calcular balanç.
- Derivar estat agregat de pagament.
- Crear transaccions de pagament TPV.
- Registrar resposta del TPV.
- Processar webhook o retorn segur de confirmació.
- Evitar dobles cobraments amb idempotència.
- Permetre reconciliació manual de transaccions TPV.
- Afegir moviment de pagament manual.
- Afegir moviment de Bizum.
- Afegir moviment de transferència.
- Afegir ajust manual.
- Afegir devolució.
- Anul·lar o corregir moviment entrat per error.
- Auditar moviments i correccions.
- Detectar diferencial pendent.
- Detectar import a retornar.
- Crear alerta de comunicació pendent quan hi ha modificacions.
Entregable
La fitxa d'inscripció mostra clarament què s'ha contractat, què s'ha cobrat automàticament o manualment, què queda pendent i quin és l'estat agregat.
Criteris d'acceptació
- Un gestor pot veure sol·licituds del congrés assignat.
- Un pagament TPV acceptat marca automàticament la inscripció com a pagada si l'import quadra.
- Un pagament TPV rebutjat no marca la inscripció com a pagada.
- Un gestor pot registrar un moviment manual.
- Un moviment afecta el balanç.
- L'estat de pagament es deriva del balanç.
- Un moviment incorrecte no s'esborra sense rastre.
- Les correccions queden auditades.
- La pantalla diferencia imports contractats i imports cobrats.
Proves mínimes
- Tests de càlcul de balanç.
- Tests d'estat agregat.
- Tests de transacció TPV acceptada.
- Tests de transacció TPV rebutjada.
- Tests d'idempotència de webhook TPV.
- Tests de moviment positiu.
- Tests de devolució.
- Tests d'anul·lació o correcció.
- Tests de permisos per congrés.
12. Sprint 6 - Formularis d'inscripció, Àrea personal, correus i outbox
Objectiu
Enviar confirmacions i revisions sense perdre rastre ni duplicar comunicacions, i donar accés segur a l'Àrea personal.
Tasques
- Crear plantilles globals multiidioma de formularis d'inscripció.
- Crear variables disponibles per plantilla.
- Crear formulari d'inscripció detallat de responsable.
- Crear formulari personal d'inscripció d'assistent.
- Aplicar configuració per congrés.
- Enviar formularis d'inscripció segons idioma de comunicació.
- Registrar cada email enviat.
- Registrar plantilla i versió utilitzada.
- Processar enviaments via outbox.
- Evitar duplicats amb idempotència.
- Crear reenviament manual.
- Agrupar modificacions en una única comunicació pendent.
- Permetre editar puntualment instruccions de pagament pendent.
- Permetre editar puntualment instruccions de retorn.
- Crear Àrea personal pública.
- Crear accés de responsable.
- Crear accés individual d'assistent.
- Crear enllaços segurs amb caducitat.
- Crear regeneració d'accés des del web públic amb verificació per email.
- Crear registre d'accessos.
- Mostrar al responsable sol·licitud, assistents, imports, pagament, dades fiscals, allotjaments i documents.
- Mostrar a l'assistent només dades personals, quota, extres propis, allotjament propi i documents personals.
- Amagar dades econòmiques globals i dades d'altres assistents a l'accés d'assistent.
- Permetre que el responsable que també és assistent alterni entre La meva sol·licitud i La meva zona d'assistent.
- Preparar webhooks del proveïdor de correu.
Entregable
El sistema genera i envia formularis d'inscripció coherents en l'idioma correcte, amb registre d'enviament i reenviament manual. El responsable i cada assistent poden accedir a la seva Àrea personal amb permisos limitats.
Criteris d'acceptació
- El responsable pot rebre un formulari d'inscripció detallat.
- Cada assistent pot rebre un formulari personal d'inscripció sense dades econòmiques.
- L'idioma del correu és el de comunicació de la inscripció.
- Les plantilles globals estan traduïdes.
- Els reenviaments queden registrats.
- Les modificacions pendents s'agrupen en una sola comunicació fins que s'envia.
- Si falla Redis, l'esdeveniment funcional no es perd perquè existeix outbox.
- El responsable pot veure informació econòmica i de sol·licitud.
- L'assistent no pot veure dades econòmiques globals ni dades d'altres assistents.
- Els accessos caduquen o es poden regenerar segons la política definida.
- Cada accés queda registrat.
Proves mínimes
- Tests de render de plantilles.
- Tests d'idioma de correu.
- Tests d'outbox.
- Tests d'idempotència.
- Tests de reenviament.
- Tests de comunicació pendent agrupada.
- Tests d'accés de responsable.
- Tests d'accés d'assistent.
- Tests de separació de permisos entre responsable i assistent.
- Tests de token caducat o regenerat.
- Tests de registre d'accessos.
13. Sprint 7 - Allotjaments
Objectiu
Gestionar hotels, tipus d'habitació, disponibilitat per nit i reserves vinculades a inscripcions.
Tasques
- Crear hotels per congrés.
- Crear tipus d'habitació.
- Crear inventari per nit.
- Crear disponibilitat confirmada.
- Crear disponibilitat bloquejada.
- Crear reserves vinculades a sol·licituds.
- Permetre titular d'habitació.
- Registrar nomes l'assistent titular, sense demanar noms dels altres ocupants (decisio Geyseco 20/10/2026).
- Permetre habitacions compartides.
- Confirmar automàticament si hi ha disponibilitat i la configuració ho permet.
- Deixar reserva pendent si no hi ha disponibilitat o cal validació manual.
- Permetre acabar la inscripció encara que allotjament quedi pendent.
- Permetre afegir allotjament manualment a posteriori.
- Generar alerta per enviar formulari d'inscripció manual quan s'afegeix allotjament.
- Controlar concurrència per nit.
Entregable
Geyseco pot gestionar allotjaments sense sobreocupació i pot afegir reserves manualment quan cal.
Criteris d'acceptació
- La disponibilitat es controla per hotel, tipus i nit.
- Dues reserves simultànies no poden sobreocupar inventari.
- La inscripció pot finalitzar amb allotjament pendent.
- L'allotjament manual actualitza imports contractats.
- L'allotjament manual crea alerta de formulari d'inscripció pendent.
- Les habitacions compartides tenen un unic titular; consumeixen una habitacio per nit i es cobren una sola vegada, sense identificar la resta d'ocupants.
Proves mínimes
- Tests d'inventari per nit.
- Tests de concurrència.
- Tests de reserva confirmada.
- Tests de reserva pendent.
- Tests d'afegit manual.
- Tests de generació d'alerta.
14. Sprint 8 - Web pública, continguts, legals i agenda
Objectiu
Construir la publicació pública del congrés amb continguts editables, domini configurable i coherència amb el backoffice.
Tasques
- Crear model de web pública per congrés.
- Configurar URL final.
- Configurar subdomini temporal o definitiu.
- Configurar estat publicada o no publicada.
- Configurar aparença bàsica.
- Gestionar banner.
- Crear pàgines editorials.
- Editar continguts multiidioma.
- Proposar traduccions amb IA com a ajuda, si s'integra en fase real.
- Diferenciar continguts editorials i mòduls provinents de Dades del congrés.
- Mostrar menú públic segons configuració.
- Implementar estructura responsive.
- Crear footer amb textos legals.
- Seleccionar textos legals per web.
- Permetre personalitzar textos legals per congrés i idioma.
- Crear pàgines legals reals.
- Crear publicació a agenda corporativa.
- Mostrar dates readonly des de Dades del congrés.
- Mostrar URL readonly des de Web > Configuració.
- Permetre pujar cartell d'agenda.
- Preparar operació visible de publicació o regeneració.
Entregable
Un congrés pot tenir web pública responsive, continguts traduïts, footer legal i fitxa publicada a l'agenda corporativa.
Criteris d'acceptació
- La web pública carrega en mòbil, tauleta i sobretaula.
- El banner enllaça a home.
- El menú lateral funciona en escriptori.
- El menú hamburguesa funciona en mòbil.
- Les pàgines publicades es veuen.
- Les pàgines en esborrany no es veuen al web públic.
- Els mòduls actius depenen de Dades del congrés.
- Els textos legals del footer es poden configurar.
- Les pàgines legals són accessibles des del footer.
- La publicació agenda usa dates i URL ja informades.
Proves mínimes
- Tests de render web pública.
- Tests de selecció d'idioma.
- Tests de pàgines publicades i esborrany.
- Tests de footer legal.
- Tests responsive.
- Tests de publicació agenda.
15. Sprint 9 - QA, seguretat, operativa i validació MVP
Objectiu
Tancar el MVP amb garanties mínimes de qualitat, seguretat, recuperació i ús real.
Tasques
- Revisió completa de permisos.
- Revisió d'accés per congressos assignats.
- Revisió responsive de backoffice.
- Revisió responsive de web pública.
- Revisió de textos multiidioma.
- Revisió d'errors de consola.
- Revisió de jobs i retries.
- Revisió d'idempotència.
- Revisió d'auditoria.
- Revisió de fitxers privats.
- Revisió de backups.
- Prova real de restauració.
- Revisió de logs.
- Revisió de health checks.
- Revisió de rendiment bàsic.
- Revisió d'exports si entren al MVP.
- Correcció de bugs de validació client.
- Preparació de checklist de pas a producció.
Entregable
MVP complet validable per Geyseco en staging, amb procés de desplegament i recuperació provat.
Criteris d'acceptació
- No hi ha accessos no autoritzats a rutes sensibles.
- Els gestors no veuen congressos no assignats.
- Les cues funcionen.
- Els correus queden registrats.
- Els backups es poden restaurar.
- Les pantalles principals són funcionals en mòbil i sobretaula.
- El client pot executar la vertical completa sense intervenció tècnica.
Proves mínimes
- Suite de tests automatitzada.
- Tests de Policies globals.
- Tests de flux complet d'inscripció.
- Tests de pagaments manuals.
- Tests d'allotjaments.
- Tests de formularis d'inscripció.
- Tests de web pública.
- Test de restauració documentat.
16. Entregues parcials recomanades
Entrega A - Base tècnica
Inclou Sprint 0 i Sprint 1.
Resultat: backoffice segur, usuaris, rols i base tècnica preparada.
Entrega B - Congrés gestionable
Inclou Sprint 2 i Sprint 3.
Resultat: congressos reals configurables, amb inscripcions preparades.
Entrega C - Primera vertical d'inscripció
Inclou Sprint 4, Sprint 5 i Sprint 6.
Resultat: una persona es pot inscriure, Geyseco pot gestionar la sol·licitud, registrar pagaments manuals o confirmar TPV, reenviar formularis d'inscripció i donar accés segur a l'Àrea personal.
Entrega D - Allotjament i web pública
Inclou Sprint 7 i Sprint 8.
Resultat: allotjaments, web pública, textos legals i agenda corporativa.
Entrega E - Validació MVP
Inclou Sprint 9.
Resultat: MVP validable i preparat per decisió de posada en producció.
17. Ordre tècnic dins de cada sprint
Per cada sprint, l'ordre recomanat de treball és:
- Confirmar criteri funcional.
- Escriure migracions.
- Crear models i relacions.
- Crear serveis de domini quan hi hagi regles complexes.
- Crear Policies.
- Crear controladors o actions.
- Crear pantalles Inertia o Blade.
- Afegir auditoria i outbox si aplica.
- Afegir tests.
- Validar responsive i errors de consola.
- Actualitzar documentació.
18. Estratègia de tests
Tests de backend
- Models i relacions.
- Validacions.
- Serveis de domini.
- Policies.
- Càlculs econòmics.
- Transaccions TPV.
- Webhooks de pagament i idempotència.
- Concurrència d'allotjaments.
- Outbox i idempotència.
- Jobs i retries.
Tests de frontend
- Render de pàgines principals.
- Formularis crítics.
- Estats buits.
- Errors de validació.
- Canvi d'idioma.
- Responsive bàsic.
Tests de flux
- Login i accés segons rol.
- Crear congrés.
- Assignar equip.
- Configurar inscripcions.
- Fer inscripció pública.
- Accedir a l'Àrea personal com a responsable.
- Accedir a l'Àrea personal com a assistent.
- Pagar amb targeta/TPV.
- Veure sol·licitud al backoffice.
- Registrar pagament.
- Enviar formulari d'inscripció.
- Afegir allotjament.
- Publicar web.
19. Migracions i dades inicials
Cal preparar seeders inicials per:
- Rols de sistema.
- Usuari Súperadministrador inicial.
- Idiomes base.
- Traduccions de backoffice.
- Textos legals globals.
- Plantilles globals de formularis d'inscripció.
- Comptes bancaris de prova.
- Congrés pilot si es vol validar amb dades demo.
Les dades demo no han de quedar barrejades amb dades productives.
20. Seguretat mínima
Cal aplicar des del principi:
- Hash segur de contrasenyes.
- Tokens temporals per recuperació.
- CSRF en formularis.
- Rate limiting en login i formularis públics.
- Validació server side sempre.
- Policies a totes les rutes sensibles.
- Validació segura del retorn i webhook del TPV.
- Idempotència per evitar cobraments duplicats.
- Fitxers privats per defecte.
- URL temporals per descàrregues.
- Registre d'accés a documentació interna.
- Registre d'accés a l'Àrea personal.
- Registre d'accés a exports.
- Separació de permisos per congrés assignat.
21. Operativa mínima de producció
La producció ha de tenir processos separats:
- Nginx.
- PHP-FPM.
- Base de dades.
- Redis.
- Workers Laravel.
- Scheduler Laravel.
- Monitoratge.
- Backups.
El desplegament ha de contemplar:
- Migracions controlades.
- Rollback de codi.
- Reinici ordenat de workers.
- Workers executant la mateixa versió que el codi desplegat.
- Health checks.
- Logs consultables.
- Backup abans de canvis crítics.
22. Riscos principals
Permisos
Risc: confiar massa en la UI.
Mesura: Policies obligatòries i tests d'accés.
Imports
Risc: recalcular imports antics quan canvien tarifes.
Mesura: línies econòmiques congelades.
Pagaments manuals
Risc: perdre rastre de canvis manuals.
Mesura: llibre de moviments, correccions auditables i estat agregat calculat.
Allotjaments
Risc: sobreocupació per reserves simultànies.
Mesura: transaccions i bloqueig coherent d'inventari per nit.
Correus
Risc: perdre confirmacions si falla la cua.
Mesura: outbox transaccional i idempotència.
Multiidioma
Risc: barrejar idioma de backoffice, idioma públic i idioma de comunicació.
Mesura: camps separats i tests de locale.
Web pública
Risc: construir una SPA innecessària i perdre SEO o simplicitat.
Mesura: render servidor amb Blade/SSR i Vue només on aporti valor.
Documentació interna
Risc: exposar documents interns amb URL pública directa.
Mesura: servir documents des del backend amb permís de Súperadministrador.
Àrea personal
Risc: que un assistent vegi dades econòmiques, fiscals o personals d'altres assistents.
Mesura: perfils d'accés separats, tokens limitats, Policies o guards específics de portal i tests de separació de dades.
23. Primer objectiu real de desenvolupament
El primer objectiu real no hauria de ser tenir totes les pantalles dibuixades.
El primer objectiu hauria de ser:
En staging, un Súperadministrador entra al backoffice, crea un congrés, assigna un gestor, configura una quota i TPV, publica una web mínima, completa una inscripció pública, paga amb targeta en entorn de proves, veu la sol·licitud al backoffice, entra a l'Àrea personal com a responsable, entra a l'Àrea personal com a assistent, registra si cal un moviment manual i envia un formulari d'inscripció.
Quan aquesta vertical funcioni amb dades persistents, permisos, email, auditoria i responsive, la resta de mòduls es podran ampliar amb molt menys risc.
24. Documents relacionats
- Proposta funcional i arquitectura tècnica.
- Mapa de mòduls i permisos.
- Esquema de base de dades.
- Fluxos principals.