Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 75 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,89 @@
# 🎓 Sistema de Acompañamiento Tutorial (SAT) - UPIICSA
<div style="text-align: center;">
<h1>Sistema de Acompañamiento Tutorial 🎓</h1>

Este es el repositorio de código fuente para el **Sistema de Acompañamiento Tutorial (SAT)**, un prototipo de solución digital multiplataforma (Web y Móvil) para la gestión del **Programa Institucional de Tutorías (PIT)** en la UPIICSA del IPN.
<p>
<strong>Centralización, Trazabilidad y Gestión Digital para Tutorías de Recuperación en UPIICSA</strong>
</p>

## 📖 Documentación Completa del Proyecto
<a href="https://github.com/betilloxann/proyecto_tutorias/actions">
<img src="https://img.shields.io/github/actions/workflow/status/betilloxann/proyecto_tutorias/flutter_ci.yml?label=Build&style=for-the-badge&logo=github" alt="CI Status"/>
</a>
<a href="https://github.com/betilloxann/proyecto_tutorias/releases">
<img src="https://img.shields.io/github/v/release/betilloxann/proyecto_tutorias?style=for-the-badge&label=Versión&color=blue" alt="Latest Release"/>
</a>
<a href="https://proyecto-tutorias.vercel.app/">
<img src="https://img.shields.io/badge/Demo_Web-Vercel-000000?style=for-the-badge&logo=vercel&logoColor=white" alt="Vercel Deploy"/>
</a>
<br/>
<br/>

Toda la información detallada sobre la visión general, el stack tecnológico, los módulos principales y la hoja de ruta del desarrollo se encuentra en nuestro sitio de documentación oficial, generado con MkDocs.
<img src="assets/images/hero_mockup.png" width="100%" alt="Vista General del Sistema SAT" />

**[🌐 VISITAR LA DOCUMENTACIÓN COMPLETA AQUÍ 🌐](https://betilloxann.github.io/proyecto_tutorias/)**
<br/>
<br/>

<a href="https://github.com/betilloxann/proyecto_tutorias/releases/latest/download/app-release.apk">
<img src="https://img.shields.io/badge/📲_Descargar_APK_Android-3DDC84?style=for-the-badge&logo=android&logoColor=white" height="45" />
</a>
&nbsp;&nbsp;
<a href="https://betilloxann.github.io/proyecto_tutorias/">
<img src="https://img.shields.io/badge/📚_Leer_Documentación-MKDocs-526CFE?style=for-the-badge&logo=materialformkdocs&logoColor=white" height="45" />
</a>
</div>

<br/>

---

## Acerca del Proyecto

El **Sistema de Acompañamiento Tutorial (SAT)** es una solución multiplataforma (Móvil y Web) desarrollada para optimizar el **Programa Institucional de Tutorías (PIT)**.

El sistema resuelve la problemática de la dispersión de información mediante un expediente digital centralizado, permitiendo:
* **Alumnos:** Subir evidencias fotográficas y consultar su estatus en tiempo real.
* **Tutores/Jefes:** Validar documentos y asignar calificaciones digitalmente.
* **Coordinación:** Generar reportes consolidados para Gestión Escolar.

---

### Enlaces Rápidos
## Galería del Proyecto
<img src="assets/images/hero_mockup.png" width="100%" alt="Vista General del Sistema DIMA" />

| Sección | Descripción |
---

## Stack Tecnológico

Este proyecto implementa una arquitectura moderna y escalable:

| Categoría | Tecnologías |
| :--- | :--- |
| **Stack Tecnológico** | Tecnologías clave utilizadas (Flutter, Firebase, Firestore). |
| **Módulos Principales** | Detalles de las funcionalidades de la App Móvil (Estudiantes) y el Módulo Web (Tutores). |
| **Roadmap** | Progreso actual y planificación de fases futuras. |
| **Frontend Móvil** | ![Flutter](https://img.shields.io/badge/Flutter-%2302569B.svg?style=flat&logo=Flutter&logoColor=white) **3.35.5** |
| **Backend (BaaS)** | ![Firebase](https://img.shields.io/badge/firebase-%23039BE5.svg?style=flat&logo=firebase) (Auth, Firestore, Storage) |
| **CI/CD** | ![GitHub Actions](https://img.shields.io/badge/github%20actions-%232671E5.svg?style=flat&logo=githubactions&logoColor=white) & ![Vercel](https://img.shields.io/badge/vercel-%23000000.svg?style=flat&logo=vercel&logoColor=white) |
| **Documentación** | ![MkDocs](https://img.shields.io/badge/mkdocs-%23526CFE.svg?style=flat&logo=materialformkdocs&logoColor=white) |

---

### Desarrollo y Colaboración
## Instalación Local

Si deseas clonar y ejecutar el proyecto en tu entorno de desarrollo:

* **Stack Principal:** Dart / Flutter
* **Gestión:** Git / GitHub
* **Equipo:** Hernández Alberto y Ruiz Abdiel.
1. **Prerrequisitos:** Flutter SDK 3.35.5, Java 11.
2. **Clonar:**
```bash
git clone https://github.com/betilloXann/proyecto_tutorias.git
cd proyecto_tutorias
```
3. **Configuración:**
* Necesitas el archivo `google-services.json` (Android) y `GoogleService-Info.plist` (iOS).
* Colócalos en sus carpetas respectivas (`android/app/` y `ios/Runner/`).
4. **Ejecutar:**
```bash
flutter pub get
flutter run
```
---

_La Técnica al Servicio de la Patria_
<div style="text-align: center;">
<p>Desarrollado con ❤️ por el equipo de Ingeniería Informática - UPIICSA IPN</p>
</div>
Binary file added assets/images/hero_mockup.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
70 changes: 70 additions & 0 deletions docs/arquitectura.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Arquitectura de Procesos (Workflow)

El sistema automatiza el ciclo de vida completo de la tutoría de recuperación, transformando un proceso manual fragmentado en un **flujo de trabajo digital continuo**.

## Flujo de Trabajo y Automatización
El siguiente diagrama de actividades modela la naturaleza dinámica del sistema, delimitando las responsabilidades mediante carriles (*swimlanes*) para cada actor: **Gestión Escolar**, **Sistema Automatizado**, **Jefe de Academia** y **Alumno**.

### Puntos Clave del Proceso:
* **Inicialización Automática:** El sistema crea los expedientes digitales en estado "Pendiente" tras la importación masiva.
* **Notificaciones en Tiempo Real:** Se eliminan los avisos manuales; el sistema alerta al alumno inmediatamente después de la asignación.
* **Bucle de Corrección:** Si una evidencia es rechazada por ilegible, el flujo regresa al alumno para su corrección, garantizando que solo se procesen expedientes completos.
* **Cierre Seguro:** Al dictaminar la calificación (Acreditado/No Acreditado), el sistema bloquea el registro para preservar la inmutabilidad del dato.

```mermaid
flowchart TD
%% Definición de Carriles usando Subgrafos
subgraph Gestion["Gestión Tutorías"]
Inicio((Inicio))
Importar[Importar Lista Alumnos]
Reporte[Generar Reporte Final]
Fin((Fin del Ciclo))
end

subgraph Sistema["Sistema Automatizado"]
CrearExp[Crear Expedientes 'Pendientes']
UpdateEnCurso[Update: EN CURSO]
Notif1[Notificar Asignación]
RegistrarCalif[Registrar Calificación y Bloquear]
end

subgraph Jefe["Jefe de Academia"]
Asignar[Asignar Tutor y Horario]
Decision{¿Evidencia Legible?}
Validar[Validar y Calificar]
Rechazar[Rechazar Evidencia]
DecisionCalif{¿Calif >= 6?}
DictAcred[Dictaminar: ACREDITADO]
DictNoAcred[Dictaminar: NO ACREDITADO]
end

subgraph Alumno["Alumno"]
Subir[Subir Evidencia / Acta]
Corregir[Corregir Evidencia]
end

%% Conexiones del Flujo
Inicio --> Importar
Importar --> CrearExp
CrearExp --> Asignar
Asignar --> UpdateEnCurso
UpdateEnCurso --> Notif1
Notif1 --> Subir
Subir --> Decision

Decision -- No --> Rechazar
Rechazar --> Corregir
Corregir --> Subir

Decision -- Si --> Validar
Validar --> DecisionCalif

DecisionCalif -- Si --> DictAcred
DecisionCalif -- No --> DictNoAcred

DictAcred --> RegistrarCalif
DictNoAcred --> RegistrarCalif

RegistrarCalif --> Reporte
Reporte --> Fin
```
50 changes: 50 additions & 0 deletions docs/base_datos.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Arquitectura de Datos y Modelo E-R

El diseño de la base de datos constituye un elemento fundamental para garantizar la **integridad, organización y trazabilidad** de la información del Programa de Tutorías.

## Modelo Entidad-Relación
Para asegurar un almacenamiento estructurado, se ha diseñado un modelo relacional que evita la duplicidad de datos y asegura la consistencia referencial.

Las principales características del modelo son:
1. **Centralización:** Todas las entidades giran en torno al `Dictamen`, que actúa como el expediente digital único del alumno.
2. **Trazabilidad:** La entidad `Historial` registra los cambios de estado, permitiendo auditorías futuras.
3. **Integridad:** Las relaciones (Foreign Keys) aseguran que no existan "asignaciones huérfanas" o evidencias sin un dictamen asociado.

A continuación, se presenta el esquema lógico de las tablas y sus relaciones:

```mermaid
erDiagram
ALUMNOS ||--|| DICTAMEN : tiene
DICTAMEN ||--|{ EVIDENCIAS : contiene
DICTAMEN ||--|{ HISTORIAL : registra
DICTAMEN ||--|| CALIFICACIONES : obtiene
DICTAMEN ||--|| ASIGNACIONES : recibe
ASIGNACIONES }|--|| PROFESORES : asignado_a

ALUMNOS {
string boleta PK
string nombre
string correo
string carrera
}

DICTAMEN {
int id_dictamen PK
string periodo
string estado_proceso
string materia
}

EVIDENCIAS {
int id_evidencia PK
string tipo
string url_archivo
datetime fecha_subida
}

PROFESORES {
int id_profesor PK
string nombre
string academia
}
```
88 changes: 88 additions & 0 deletions docs/casos_uso.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Actores y Casos de Uso

## Actores del Sistema

### 1. Coordinador de Tutorías (Administrador)
* **Rol:** Máxima autoridad del sistema.
* **Responsabilidades:** Inicializa el ciclo escolar, importa masivamente los alumnos dictaminados y genera los reportes finales consolidados para Gestión Escolar.

### 2. Jefe de Academia (Operativo)
* **Rol:** Gestor principal de la asignación académica.
* **Responsabilidades:** Administra su catálogo de profesores, asigna tutores a los alumnos, valida las evidencias mensuales y registra la calificación final.

### 3. Alumno Dictaminado (Usuario Final)
* **Rol:** Usuario transitorio bajo esquema de autogestión.
* **Responsabilidades:** Consulta su asignación, sube evidencias de asistencia (bitácoras) y entrega digitalmente su acta de calificación.

---

## Casos de Uso Principales

El sistema se divide en tres módulos lógicos de interacción:

### Módulo Administrativo
* **CU1: Gestionar Catálogo de Profesores**
* *Actor:* Jefe de Academia.
* *Acción:* Altas, bajas y cambios de profesores disponibles.
* **CU2: Importar Alumnos Dictaminados**
* *Actor:* Coordinador.
* *Acción:* Carga masiva (Excel) que crea expedientes en estado `PENDIENTE_ASIGNACION`.

### Módulo de Operación (Core)
* **CU3: Formalizar Tutoría (Asignación)**
* *Actor:* Jefe de Academia.
* *Acción:* Vincula Alumno + Tutor + Horario. El estado cambia a `EN_CURSO`.
* **CU4: Reportar Avance Mensual**
* *Actor:* Alumno.
* *Flujo:* Sube evidencia -> Jefe revisa.
* *Alternativa:* Si el Jefe rechaza, el alumno recibe notificación para corregir.
* **CU5: Validar Cierre de Tutoría**
* *Actor:* Jefe de Academia.
* *Acción:* Valida el acta final subida por el alumno y registra la calificación (6-10 o NA). Estado final: `ACREDITADO` o `NO_ACREDITADO`.

### Módulo de Reportes
* **CU6: Generar Reporte Final**
* *Actor:* Coordinador.
* *Acción:* Descarga del listado oficial filtrado por estatus para entrega a SAES.

---

## Diagramas de Casos de Uso

```mermaid
graph LR
%% Actores
Coord[Coordinador de Tutorías]
Jefe[Jefe de Academia]
Alumno[Alumno Dictaminado]

%% Subgrafos (Módulos)
subgraph "Módulo Administrativo"
CU1(CU1: Gestionar Catálogo Profesores)
CU2(CU2: Importar Alumnos)
end

subgraph "Módulo Operación"
CU3(CU3: Formalizar Tutoría)
CU4(CU4: Reportar Avance Mensual)
CU5(CU5: Validar Cierre)
end

subgraph "Módulo Reportes"
CU6(CU6: Generar Reporte Final)
end

%% Relaciones
Coord --> CU2
Coord --> CU6

Jefe --> CU1
Jefe --> CU3
Jefe --> CU5

Alumno --> CU4

%% Interacciones secundarias
CU4 -.->|Solicita validación| Jefe
CU5 -.->|Entrega Acta| Alumno
```
Loading