MVP para administrar proyectos por cliente y comparar consumo anual vs presupuesto de Soporte y Mejora Continua.
- Python 3.11+ recomendado
pip install -r requirements.txt
SPCPRO_DEFAULT_ADMIN_EMAIL=tu-email@ejemplo.com \
SPCPRO_DEFAULT_ADMIN_PASSWORD='TuContraseñaSegura!' \
uvicorn app.main:app --reloadNota: Reemplaza tu-email@ejemplo.com y TuContraseñaSegura! con credenciales reales antes de ejecutar.
Abrir: http://127.0.0.1:8000
La app incluye manifest + service worker.
Checklist para verificar:
- En el navegador, abrir DevTools → Application:
- Manifest: debe cargar desde
/static/manifest.json - Service Workers: debe aparecer
sw.jscon scope/
- Manifest: debe cargar desde
- Para probar “instalar”, usar HTTPS o
http://127.0.0.1:8000/http://localhost:8000(los navegadores solo habilitan PWA en contextos seguros).
Archivos clave:
app/static/manifest.jsonapp/static/sw.js(servido en/sw.js)app/templates/base.html(registro del service worker)
docker buildx build --platform linux/arm64 -t k8sregistry.moccraft.com/spcpro_projects:latest --push -f k8s/Dockerfile .- En desarrollo (F5), se setean en .vscode/launch.json para que se cree automáticamente el usuario admin si no existe.
- En Kubernetes, se definen en k8s/secret.yaml y se inyectan al Deployment.
Nota: el usuario “por defecto” solo se crea si existen las variables SPCPRO_DEFAULT_ADMIN_EMAIL y SPCPRO_DEFAULT_ADMIN_PASSWORD.
- Base SQLite local en
data/app.db - Se crean las tablas automáticamente al iniciar
Si ya habías corrido una versión previa, el esquema de Project cambió para soportar costos partidas (Soporte/Mejora/Extra).
La app intenta migrar automáticamente columnas nuevas y copiar datos desde el esquema viejo.