Saltar a contenido

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.