Saltar a contenido

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