Skip to content

ReactGPT/MiTutor-frontend

Repository files navigation

🎓 Mi Tutor - Frontend

Mi Tutor Logo

Sistema de Gestión de Tutorías Universitarias

TypeScript React Vite TailwindCSS Redux


📋 Tabla de Contenidos


📖 Acerca del Proyecto

Mi Tutor es un sistema integral de apoyo a la gestión del proceso de tutoría universitaria, diseñado para facilitar el registro, seguimiento y evaluación de las tutorías académicas.

El frontend proporciona una interfaz moderna, intuitiva y responsiva que permite:

  • 👨‍🎓 Estudiantes: Agendar citas con tutores, hacer seguimiento a su progreso académico y acceder a recursos de apoyo
  • 👨‍🏫 Tutores: Gestionar horarios, registrar sesiones de tutoría, dar seguimiento a estudiantes asignados
  • 👔 Administradores: Configurar modelos de tutoría, gestionar usuarios, generar reportes e indicadores

🎯 Objetivo

Fortalecer el acompañamiento y bienestar del estudiante mediante una solución flexible y adaptable que puede ser utilizada por cualquier universidad para optimizar su proceso de tutorías.


✨ Características Principales

🔐 Autenticación y Seguridad

  • Autenticación mediante Google OAuth 2.0
  • Gestión de roles y permisos (Estudiante, Tutor, Administrador)
  • Rutas protegidas según rol de usuario

📅 Gestión de Citas

  • Calendario interactivo para visualización de citas
  • Sistema de agendamiento de tutorías
  • Notificaciones y recordatorios
  • Historial de sesiones realizadas

📊 Dashboard y Reportes

  • Visualización de métricas e indicadores clave
  • Gráficos interactivos con Recharts
  • Exportación de datos a Excel y PDF
  • Reportes personalizados según rol

👥 Gestión de Usuarios

  • Perfiles de estudiantes y tutores
  • Asignación de tutores a estudiantes
  • Seguimiento individualizado
  • Gestión de grupos y cohortes

🎨 Interfaz de Usuario

  • Diseño moderno con Tailwind CSS y Ant Design
  • Totalmente responsivo (Mobile-first)
  • Modo oscuro/claro
  • Componentes reutilizables con Flowbite React

📈 Análisis y Seguimiento

  • Indicadores de desempeño académico
  • Seguimiento de asistencia
  • Evaluación de satisfacción
  • Alertas tempranas

📸 Capturas de Pantalla

Dashboard Principal

Dashboard

Calendario de Tutorías

Calendario

Gestión de Solicitudes de Estudiantes

Estudiantes

Reportes y Análisis

Reportes


🛠️ Tecnologías

Core

Estado y Datos

UI y Estilos

Visualización de Datos

Utilidades

Testing

Autenticación


🚀 Comenzando

Prerequisitos

Asegúrate de tener instalado:

  • Node.js >= 18.x
  • npm >= 9.x o yarn >= 1.22.x
# Verificar versiones
node --version
npm --version

Instalación

  1. Clona el repositorio
git clone https://github.com/ReactGPT/MiTutor-frontend. git
cd MiTutor-frontend
  1. Instala las dependencias
npm install
# o
yarn install
  1. Configura las variables de entorno

Crea un archivo .env en la raíz del proyecto:

cp .env.example .env

Edita el archivo .env con tus configuraciones (ver sección Variables de Entorno)

  1. Inicia el servidor de desarrollo
npm run dev
# o
yarn dev
  1. Abre tu navegador

Navega a http://localhost:5173


📁 Estructura del Proyecto

MiTutor-frontend/
├── public/                 # Archivos estáticos
│   ├── favicon.ico
│   └── logo.png
├── src/
│   ├── assets/            # Recursos (imágenes, fuentes, etc.)
│   ├── components/        # Componentes reutilizables
│   │   ├── common/       # Componentes comunes (Botones, Inputs, etc.)
│   │   ├── layouts/      # Componentes de layout
│   │   └── features/     # Componentes específicos de funcionalidades
│   ├── context/          # Context API de React
│   ├── data/             # Datos mock y constantes
│   ├── layouts/          # Layouts principales de la aplicación
│   ├── login/            # Componentes de autenticación
│   ├── pages/            # Páginas/Vistas de la aplicación
│   │   ├── Dashboard/
│   │   ├── Estudiantes/
│   │   ├── Tutores/
│   │   ├── Citas/
│   │   └── Reportes/
│   ├── store/            # Redux store y slices
│   │   ├── slices/
│   │   └── store.ts
│   ├── utils/            # Funciones de utilidad
│   │   ├── api.ts       # Configuración de Axios
│   │   ├── helpers.ts   # Funciones helper
│   │   └── validators.ts
│   ├── App.tsx           # Componente principal
│   ├── main.tsx          # Punto de entrada
│   ├── config.ts         # Configuraciones globales
│   └── index.css         # Estilos globales
├── .env                   # Variables de entorno (no versionado)
├── .env.example          # Ejemplo de variables de entorno
├── .eslintrc.cjs         # Configuración de ESLint
├── .gitignore            # Archivos ignorados por Git
├── index.html            # HTML principal
├── package.json          # Dependencias y scripts
├── postcss.config.js     # Configuración de PostCSS
├── tailwind.config.js    # Configuración de Tailwind
├── tsconfig.json         # Configuración de TypeScript
├── vite. config.ts        # Configuración de Vite
├── vitest.config.ts      # Configuración de Vitest
└── README.md             # Este archivo

🏗️ Arquitectura

Patrón de Diseño

El proyecto sigue una arquitectura basada en:

  • Component-Based Architecture: Componentes modulares y reutilizables
  • Container/Presenter Pattern: Separación de lógica y presentación
  • Feature-Based Organization: Organización por características funcionales
  • Redux Toolkit: Gestión de estado predecible

Flujo de Datos

Usuario → Componente → Action → Reducer → Store → Componente → UI
                          ↓
                        API Call (Axios)
                          ↓
                       Backend

Gestión de Estado

  • Estado Global: Redux Toolkit para autenticación, usuario, configuraciones
  • Estado Local: React Hooks (useState, useReducer) para estado de componentes
  • Estado del Servidor: Axios + React Query para caché y sincronización

Routing

/                          → Página de inicio/login
/dashboard                 → Dashboard principal
/estudiantes               → Listado de estudiantes
/estudiantes/:id           → Perfil de estudiante
/tutores                   → Listado de tutores
/tutores/:id               → Perfil de tutor
/citas                     → Calendario y gestión de citas
/citas/nueva               → Crear nueva cita
/reportes                  → Reportes y análisis
/configuracion             → Configuración del sistema
/perfil                    → Perfil del usuario actual

Hecho con ❤️ por el equipo

About

Frontend for MiTutor

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 10

Languages