Appearance
StudentHub Frontend
🎯 Descripción del Proyecto
StudentHub Frontend es una aplicación construida en React con TypeScript, diseñada para proporcionar una interfaz amigable, eficiente y bien estructurada para la gestión de estudiantes dentro del ecosistema StudentHub.
Con un enfoque en la experiencia de usuario y la modularidad, este frontend permite visualizar, agregar, editar y gestionar datos de estudiantes, autenticarse mediante cookies y JWT, así como trabajar con archivos alojados en Google Drive.
✨ Características Principales
- Autenticación y Protección de Rutas: Uso de Context API y cookies para mantener sesiones seguras con tokens JWT.
- Formulario Completo de Estudiantes: Formulario con múltiples secciones (datos personales, contacto, documentación), validación y envío.
- Carga de Archivos: Subida de imágenes y documentos hacia Google Drive desde el formulario.
- Componentes Reutilizables:
FormInput: Input genérico con soporte para texto, select, fecha y archivos.FormSection: Estructura modular para secciones del formulario.Sidebar,Layout,ProtectedRoute, etc.
- Hooks Personalizados:
useAddStudent,useStudents,useAuth, etc.
- Navegación Dinámica: Gestión de rutas con
React Router. - Estilos en SCSS: Estilos globales y por componente (
variables.module.scss,layout.module.scss, etc.). - Consumo de API Backend: Uso de
fetchpara comunicarse con el backend de StudentHub. - Gestión de Estado: Basado en Context API y hooks controlados por formulario.
⚙️ Tecnologías Utilizadas
- Librerías principales:
ReactTypeScriptReact Router DOMLuxonpara fechasclassnamespara estilos condicionales
- Estilos:
SCSSmodular
- Autenticación:
- Cookies + JWT
- Manejo de archivos:
- Inputs tipo
fileconectados con Google Drive vía backend
- Inputs tipo
- Desarrollo:
Vitepara bundling y servidor local rápidoESLint,Prettierpara calidad de códigoVitePresspara documentación técnica
🧩 Estructura del Proyecto
src/
├── assets/ # Estilos globales y variables SCSS
├── components/ # Componentes reutilizables
│ ├── common/
│ ├── layout/
│ └── forms/
├── config/ # Configuración (Vite, endpoints)
├── features/ # Módulos individuales (login, dashboard, etc.)
├── hooks/ # Hooks personalizados
├── interface/ # Tipado global y por módulo
├── pages/ # Páginas principales
├── routes/ # Definición de rutas con protección
├── types/ # Tipos genéricos (auth, tokens, cookies)
├── utils/ # Funciones utilitarias (fechas, cookies, validaciones)
├── App.tsx # Componente principal
└── main.tsx # Punto de entrada
🚀 Instalación y Uso Local
- Clonar el repositorio
bash
git clone <URL_DEL_REPOSITORIO>
cd studenthub/frontend
- Instalar dependencias
bash
npm install
- Configurar variables de entorno
Crea un archivo .env en la raíz del frontend con las siguientes variables (ajusta la URL del backend si es necesario):
bash
VITE_BACKEND_URL=http://localhost:3000/api
- Iniciar servidor de desarrollo
bash
npm run dev
Esto abrirá la aplicación en http://localhost:5173 (puerto por defecto de Vite).
🧪 Pruebas
Actualmente el frontend no incluye un sistema de testing, pero se recomienda agregar soporte con herramientas como:
Vitest+React Testing Librarypara componentes.Cypresspara pruebas end-to-end.
🗂️ Funcionalidades Clave
- Login con autenticación segura
- Protección de rutas con tokens
- Formulario de ingreso de estudiantes con todos los campos
- Visualización detallada de perfiles
- Carga y vista previa de imágenes/documentos
- Organización visual clara con
GridyFormSection
🌐 Despliegue
El proyecto puede desplegarse en servidores como Netlify, Vercel, o entornos tradicionales como cPanel configurando correctamente el build.
Crear versión de producción
bash
npm run build
Esto genera los archivos en la carpeta dist.
📦 Compilación con Vite
bash
npm run dev # Desarrollo local
npm run build # Build de producción
Este frontend se comunica con la API REST de StudentHub para todas sus operaciones. Asegúrate de tener el backend en funcionamiento para interactuar con las funcionalidades protegidas.