How pred-javeriana/pred-platform works
PRED is a server-rendered forecasting platform: users upload data, configure a selection and launch a run; an embedded worker orchestrates the external prediction engine, while results are read back through a contract-validated repository and presented in the UI. The graph preserves ingestion, M2 selection, run execution, and M3 published-evidence stages, plus persistence and presentation layers. Relationships for unsampled subsystems are included only where the README or source index supports them; the excerpts do not expose every runtime call.
Main entry points: repository.py Data repository · main.py FastAPI application · results.py Result routes · ejecucion.py Run configuration
Components 23
Web interface
- FastAPI application
src/pred_platform/app/main.py - Execution routes
src/pred_platform/app/routers/execution.py - Result routes
src/pred_platform/app/routers/results.py
Forecast workflow
- Data ingestion UI
src/pred_platform/app/datos.py - M2 selection
src/pred_platform/app/seleccion.py - Run configuration
src/pred_platform/app/ejecucion.py
Data and contracts
- Data repository
src/pred_platform/data/repository.py - Source selection
src/pred_platform/data/factory.py - List query helpers
src/pred_platform/data/query.py - Contract v1 models
src/pred_platform/contract/models.py - Contract v2 models
src/pred_platform/contract/models_v2.py - DAL read queries
src/pred_platform/dal/lectura.py - DAL run writes
src/pred_platform/dal/ejecuciones.py - SQLite database
Run orchestration
- Worker service
src/pred_platform/worker/service.py - Engine adapter
src/pred_platform/worker/engine.py - Prediction engine
Results and errors
- M3 results
src/pred_platform/app/resultados_m3.py - Charts and result views
src/pred_platform/app/charts.py - Published evidence reads
src/pred_platform/data/m3_query.py - Error presentation
src/pred_platform/fallas.py - Error messages
src/pred_platform/mensajes.py
Other components
- Platform user
Connections 25
- Platform user → FastAPI application: uses
- FastAPI application → Execution routes: registers routes
src/pred_platform/app/main.py - FastAPI application → Result routes: registers routes
src/pred_platform/app/main.py - Execution routes → Run configuration: delegates to
src/pred_platform/app/routers/execution.py - Result routes → M3 results: renders results
src/pred_platform/app/routers/results.py - Result routes → Charts and result views: uses views
src/pred_platform/app/routers/results.py - FastAPI application → Data ingestion UI: serves data UI
src/pred_platform/app/main.py - Data ingestion UI → Data repository: reads data
src/pred_platform/app/datos.py - Run configuration → Data repository: reads run data
src/pred_platform/app/ejecucion.py - Run configuration → Worker service: controls runs
src/pred_platform/app/ejecucion.py - M3 results → Data repository: reads published evidence
src/pred_platform/app/resultados_m3.py - Data repository → Source selection: selects source
- Source selection → DAL read queries: reads DAL
- Data repository → List query helpers: filters and pages
src/pred_platform/data/query.py - Data repository → Contract v1 models: validates documents
src/pred_platform/data/repository.py - Data repository → Contract v2 models: validates M3 documents
src/pred_platform/data/repository.py - DAL read queries → SQLite database: reads
src/pred_platform/dal/lectura.py - DAL run writes → SQLite database: writes run state
- Worker service → Engine adapter: runs engine
src/pred_platform/worker/service.py - Engine adapter → Prediction engine: launches subprocess
- Worker service → DAL run writes: persists run state
src/pred_platform/worker/service.py - Data repository → Published evidence reads: reads M3 evidence
src/pred_platform/data/repository.py - Published evidence reads → DAL read queries: queries published data
src/pred_platform/data/m3_query.py - M3 results → Error presentation: formats failures
src/pred_platform/fallas.py - Error presentation → Error messages: translates codes
src/pred_platform/fallas.py