Requisitos del proyecto
El proyecto tiene como objetivo el desarrollo de una aplicación fullstack JavaScript utilizando el stack MERN (MongoDB, Express, React y Node.js). La evaluación se centrará en la correcta implementación de funcionalidades, la documentación, la organización del equipo y el cumplimiento de las buenas prácticas.
Cada equipo deberá idear y desarrollar una aplicación que cumpla los requisitos técnicos y metodológicos que se detallan a continuación.
Requisitos técnicos
Backend (Node.js y Express):
- Implementar al menos 5 endpoints funcionales que incluyan operaciones de tipo:
- GET: Recuperar información de la base de datos.
- POST: Crear nuevos registros.
- PUT/PATCH: Actualizar datos existentes.
- DELETE: Eliminar registros.
- Gestionar errores en las rutas, devolviendo respuestas claras y adecuadas (códigos de estado, mensajes de error, etc.).
- Implementar al menos una operación protegida mediante autenticación.
Base de datos (MongoDB):
- Usar Mongoose para modelar los datos con esquemas claros y validaciones básicas.
- Poblar la base de datos con datos iniciales mediante un script de seeding.
Frontend (React):
- Crear una aplicación SPA (Single Page Application) con navegación fluida mediante React Router.
- Proteger al menos una ruta del frontend, accesible únicamente para usuarios autenticados.
- Implementar validaciones en los formularios del frontend (por ejemplo, formato de email, campos obligatorios, etc.).
- Usar una variación de eventos (onClick, onChange, onSubmit, etc.) en diferentes componentes.
Interacción entre frontend y backend:
- Configurar el flujo completo de datos mediante llamadas API (axios) entre el frontend y el backend.
- Gestionar el estado del frontend con la librería Zustand.
Seguridad:
- Proteger las rutas del backend que manejan información sensible.
- Implementar medidas básicas de seguridad en la gestión de usuarios (hash de contraseñas, tokens JWT, etc.).
Requisitos metodológicos
Organización y gestión:
- Usar Scrum como marco de trabajo, documentando los roles, las reuniones y el progreso en la Wiki del repositorio.
- Gestionar las tareas mediante GitHub Projects, reflejando claramente el estado y la asignación de responsabilidades.
Documentación:
-
Documentar el proyecto en la Wiki del repositorio, incluyendo:
- Resumen del proyecto y su objetivo.
- Detalles técnicos de la arquitectura y las decisiones tomadas.
- Lecciones aprendidas y mejoras futuras.
-
Utilizar JSDoc para documentar las funciones del código, generando una documentación técnica completa.