Flujos de Trabajo
Esta sección detalla los flujos técnicos y de negocio más importantes del sistema.
CI/CD Pipeline
El despliegue y verificación continua se manejan a través de GitHub Actions.
graph TD
A[Push a Main/Staging] --> B{Detectar Cambios}
B -->|Código| C[Run Tests (Pytest)]
B -->|Docs| D[Build MkDocs]
C --> E{Tests Pass?}
E -->|Yes| F[Build Docker Image]
E -->|No| G[Fail Workflow]
F --> H[Push to Registry]
H --> I[Deploy to Staging]
Flujos de Negocio
1. Evaluación de Pregunta Discursiva
Este flujo describe cómo un estudiante responde una pregunta y recibe feedback de la IA.
sequenceDiagram
actor Student as Estudiante
participant UI as Interfaz Web
participant View as Django View
participant Credit as Credit Service
participant AI as AI Service
participant OpenAI as OpenAI API
Student->>UI: Escribe respuesta y envía
UI->>View: POST /submit-response/
View->>Credit: check_balance(user)
alt Saldo Insuficiente
Credit-->>View: Error: Sin créditos
View-->>UI: Mostrar modal "Comprar Créditos"
else Saldo Suficiente
Credit-->>View: OK
View->>AI: evaluate(question, answer)
AI->>OpenAI: Completion Request (Prompt)
OpenAI-->>AI: JSON Feedback
AI->>View: Resultado Evaluación
View->>Credit: deduct_credits(user, amount)
View->>UI: Mostrar Feedback y Nota
end
2. Importación de Preguntas
Proceso para cargar nuevas preguntas al sistema desde un archivo JSON.
stateDiagram-v2
[*] --> UploadJSON
UploadJSON --> ValidateSchema
state ValidateSchema {
[*] --> CheckFormat
CheckFormat --> CheckRequiredFields
}
ValidateSchema --> ParseQuestions: Schema Valid
ValidateSchema --> ErrorReport: Schema Invalid
ParseQuestions --> SaveToDB
SaveToDB --> [*]: Success
ErrorReport --> [*]: Show Errors