Cronograma de subida a producción + desarrollos pendientes hasta Beta 2
Semana T+1 · 1-2 días · BLOQUEANTE para todo
Sin Alembic, cualquier cambio de esquema en producción = pérdida de datos. Es lo primero que hay que hacer.
pip install alembic en requirements.txtalembic init alembic en backend/env.py con SQLAlchemy engine actualalembic revision --autogenerate -m "initial schema"alembic_multi.py que itera por despachobackend/requirements.txt, backend/alembic/, backend/app/main.py (quitar create_all())Semana T+2 a T+3 · 2-3 días · BLOQUEANTE
Hoy los documentos viven en /uploads del VPS. Si el VPS muere, se pierden. Hay que migrar a S3-compatible.
backend/app/services/storage.py con backends local (dev) y s3 (prod)boto3 o aiobotocores3://gestdok-docs/{tenant_id}/{uuid}.extbackend/app/services/storage.py (nuevo), backend/app/api/routes/documentos.py, backend/app/core/config.pySemana T+3 · 1 día · Bloqueante seguridad
Hoy los JWT no caducan. Si filtras un token, es permanente. Hay que separar access (15 min) y refresh (7 días) con tabla en BD.
refresh_tokens/auth/refresh que rota el refresh y devuelve nuevo access/auth/logout que invalida el refreshapiFetch que renueva al primer 401backend/app/core/auth.py, backend/app/api/routes/auth.py, backend/app/models/models.py (+RefreshToken), frontend/app.js (apiFetch)Semana T+5 · 2-3 días
Reemplazar el túnel cloudflared (que cae si apagas tu PC) por hosting profesional.
*.gestdok.com)pg_dump | age encrypt → ambas regionesSemana T+6 · 3-5 días · Patrón PC58
Cargar TC2/RNT del cliente y cruzar con cuentas 640 (sueldos), 642 (SS empresa), 4751 (IRPF a ingresar), 471 (créditos SS), 465 (remuneraciones pendientes).
NominaRegistro en models.py (análogo a LibroIvaFactura)backend/app/services/extractores/personal/nominas.py/cargar-nomina, /nomina, /generarmodels.py (+modelo), extractores/personal/nominas.py (nuevo), papeles_generados.py (+endpoints), app.js (+modal)Semana T+7 a T+8 · 3-4 días por cédula · Patrón PC58
Completar el ciclo B08 (Administraciones Públicas) con las cédulas que faltan tras PC58 IVA:
_calcular_conciliacion_iva renombrado a genéricoSemana T+9 a T+10 · Hito Beta 1
Hito principal del MVP. La beta arranca con uso real.
Semana T+11 · 5-7 días
Papel donde el auditor revisa que la memoria entregada por el cliente cumple PGC + concuerda con Balance/PyG.
Semana T+12 · 5-7 días
Documento legal firmado por la dirección del cliente al cierre del trabajo. Confirma responsabilidades sobre estados financieros, fraude, partes vinculadas, etc.
Semana T+13 a T+14 · 2-3 semanas · La pieza más compleja
El documento más importante: la opinión firmada del auditor. Reutiliza OnlyOffice que ya tienes integrado.
InformeAuditoria: tipo_opinion (limpia/calificada/denegada/adversa), fecha_emision, plantilla_base_id, contenido_html, estado_version, firma_socio_id{{cliente.nombre}}, {{materialidad.final}}, {{fecha_emision}}Semana T+15 a T+16 · Hito Beta 2
Los despachos de Beta 1 estrenan el ciclo completo. Pueden cerrar una auditoría desde inicio hasta informe firmado sin salir de Gestdok.
Semana T+1 · 2-3 reuniones
Conseguir asesoría especializada en TIC + RGPD + LOPDGDD. No vale un abogado generalista.
Semana T+2 a T+4 · 3 semanas de redacción
Documentos legales necesarios antes del primer despacho de pago (en beta puede ser simplificado).
Semana T+4 a T+5 · Necesario antes de Beta 1
Documento "ligero" para que los 2-3 despachos amigos puedan firmar y usar la beta sin riesgo legal.
Semana T+10 a T+11 · ~150 €/mes recurrente
Obligatorio LOPDGDD art. 34 cuando se tratan datos a gran escala (8+ despachos).
| Asesoría legal (DPA + 5 docs) | 2.500-3.500 € único |
| Hetzner Cloud + Storage V1 | ~50 €/mes |
| Dominio gestdok.com | ~12 €/año |
| Sentry + UptimeRobot | 0 € (tier free) |
| DPO externalizado (desde T+10) | 150 €/mes |
| Total 4 meses MVP | ~3.500-4.500 € |
| Bloque A Infra (T+1 → T+4) | ~4 semanas |
| Beta 1 features (T+5 → T+8) | ~4 semanas |
| 🎯 Beta 1 LIVE | ~T+10 |
| Beta 2 features (T+11 → T+14) | ~4 semanas |
| 🎯 Beta 2 LIVE | ~T+16 |
| Total para tener producto vendible | ~4 meses |