Saltar a contenido

Evaluación del proyecto

La evaluación del proyecto se basará en criterios que reflejen tanto el cumplimiento de los requisitos técnicos como la calidad del trabajo en equipo y la documentación. Se valorará la implementación funcional de las tecnologías del stack MERN, el uso de buenas prácticas de desarrollo y la capacidad del equipo para organizarse y entregar un proyecto completo y bien documentado. Además, se tendrán en cuenta la originalidad de la idea y las soluciones técnicas empleadas, así como la forma en que cada miembro contribuye al éxito del equipo.

Aspectos evaluables

Funcionalidad

Backend:

  • Implementación de al menos 5 endpoints funcionales (GET, POST, PUT/PATCH, DELETE).
  • Gestión adecuada de errores en las rutas (códigos de estado, mensajes claros).
  • Protección de al menos un endpoint mediante autenticación.

Base de datos:

  • Modelado correcto de datos con Mongoose, incluyendo validaciones básicas.
  • Uso de un script de seeding para poblar la base de datos con datos iniciales.

Frontend:

  • Creación de una SPA (Single Page Application) con navegación fluida utilizando React Router.
  • Implementación de validaciones en formularios (por ejemplo, formato de email, campos obligatorios).
  • Protección de al menos una ruta en el frontend para usuarios autenticados.
  • Uso de al menos tres tipos de eventos (onClick, onChange, onSubmit, etc.) en diferentes componentes.
  • Respuesta dinámica del frontend basada en los eventos capturados.
  • Manejo correcto de los estados del frontend.

Interacción entre frontend y backend:

  • Llamadas API funcionales entre el frontend y el backend utilizando axios.
  • Gestionar el estado del frontend con la librería Zustand.

Seguridad:

  • Protección de rutas sensibles en el backend.
  • Implementación de medidas básicas de seguridad, como hash de contraseñas y tokens JWT.

Documentación

Wiki del repositorio:

  • Proceso de aprendizaje: Documentaciṕon generada en el aprendizaje de cada una de las tecnologías del stack MERN, incluyendo recursos utilizados, retos superados y lecciones aprendidas.
  • Retos: Documentación de los retos planteados durante el aprendizaje.
  • Scrum:

    • Páginas dedicadas a roles, reuniones (Daily Standups, revisiones de Sprint, retrospectivas) y progreso en Sprints.
    • Registro claro de las decisiones tomadas y tareas completadas en cada Sprint.
  • Documentación final del proyecto: La documentación del proyecto debe seguir el guió proporcionado en la unidad didáctica de React.

JSDoc:

  • Documentación completa de las funciones del código, tanto en el backend como en el frontend.
  • Inclusión de descripciones claras, parámetros, valores devueltos y ejemplos de uso.

Documentación de la API (endpoints):

  • Registro detallado de cada endpoint del backend, incluyendo:

    • Método HTTP utilizado (GET, POST, etc.).
    • URL del endpoint.
    • Descripción de la funcionalidad.
    • Parámetros requeridos (headers, body, query, etc.).
    • Ejemplos de respuestas (éxito y error) con códigos de estado HTTP.

Otras áreas clave:

  • Configuraciones iniciales: Documentación sobre cómo configurar y ejecutar el proyecto en un entorno local.
  • Dependencias: Lista y propósito de las librerías utilizadas en el proyecto.
  • Guía de usuario: Instrucciones para navegar y usar la aplicación desarrollada.

Organización y metodología

  • Uso efectivo de Scrum, incluyendo roles claros, planificación de Sprints y registro de progreso.
  • Gestión eficiente de tareas en GitHub Projects, reflejando el estado actual del proyecto y responsabilidades de los miembros.
  • Cumplimiento de plazos establecidos.

Complejidad y profundidad técnica

  • Complejidad de las funcionalidades implementadas.
  • Uso de patrones de diseño o buenas prácticas que demuestren un nivel avanzado de desarrollo.
  • Integración adecuada de librerías externas y justificación de su uso.

Completitud del proyecto

  • Nivel de finalización del proyecto según los requisitos establecidos.
  • Funcionamiento de todas las funcionalidades principales sin errores.
  • Entrega de todos los elementos solicitados, incluyendo documentación y código funcional.

Innovación y creatividad

  • Originalidad y utilidad de la idea del proyecto.
  • Inclusión de características únicas que aporten valor añadido al proyecto final.

Rúbricas de evaluación

Criterio: 7g) Se han programado aplicaciones web asíncronas de forma que funcionen en diferentes navegadores.

Indicador (Puntos) Excelente Muy bueno Bueno Aceptable Insatisfactorio
Innovación y creatividad (10 pt) El proyecto incluye características innovadoras que añaden valor, como funcionalidades únicas o integraciones complejas. (10 pt) El proyecto es original y útil, pero podría incluir más características diferenciadoras. (7.5 pt) El proyecto cumple los requisitos mínimos, pero con poca originalidad o valor añadido. (5 pt) El proyecto tiene un enfoque limitado, con escasa originalidad. (2.5 pt) No se evidencia innovación ni valor añadido. (0 pt)

Criterio: 7a) Se han evaluado las ventajas e inconvenientes de utilizar mecanismos de comunicación asíncrona entre cliente y servidor web.

Indicador (Puntos) Excelente Muy bueno Bueno Aceptable Insatisfactorio
Gestión de peticiones y respuestas (10 pt) Todas las peticiones API funcionan correctamente, con manejo exhaustivo de errores y compatibilidad comprobada. (10 pt) La mayoría de las peticiones API funcionan correctamente, con manejo adecuado de errores. (7.5 pt) Las peticiones API funcionan en su mayoría, pero con errores menores o compatibilidad limitada. (5 pt) Solo algunas peticiones funcionan correctamente; el manejo de errores o compatibilidad es limitado. (2.5 pt) No se han implementado peticiones API funcionales. (0 pt)

Criterio: 7c) Se han utilizado los objetos relacionados con la comunicación asíncrona.

Indicador (Puntos) Excelente Muy bueno Bueno Aceptable Insatisfactorio
Implementación de métodos HTTP (10 pt) Todos los métodos HTTP requeridos (GET, POST, PUT, DELETE) están implementados y son funcionales. (10 pt) La mayoría de los métodos HTTP funcionan correctamente, con áreas de mejora en algunos. (7.5 pt) Solo algunos métodos HTTP funcionan correctamente o faltan varios. (5 pt) Implementación incompleta y con problemas significativos en los métodos HTTP. (2.5 pt) No se han implementado métodos HTTP funcionales. (0 pt)

Criterio: 7f) Se han utilizado distintos formatos en el envío y recepción de información.

Indicador (Puntos) Excelente Muy bueno Bueno Aceptable Insatisfactorio
Formato de datos (10 pt) Uso correcto y consistente de JSON en todas las operaciones de envío y recepción de datos. (10 pt) Uso de JSON en la mayoría de las operaciones, con ligeras inconsistencias. (7.5 pt) Uso básico de JSON, pero con problemas menores en la consistencia o manejo. (5 pt) Uso inconsistente o incorrecto de JSON en las operaciones. (2.5 pt) No se ha utilizado JSON correctamente. (0 pt)

Criterio: 7h) Se han clasificado y analizado librerías que faciliten la incorporación de las tecnologías de actualización dinámica a la programación de páginas web.

Indicador (Puntos) Excelente Muy bueno Bueno Aceptable Insatisfactorio
Uso e integración de librerías (10 pt) Se han integrado correctamente Zustand y Axios, junto con al menos una librería adicional que aporte valor significativo al proyecto, justificando su elección y uso. (10 pt) Se han integrado correctamente Zustand y Axios, con una integración óptima y funcional. (7.5 pt) Se han integrado Zustand y Axios, pero con deficiencias en la implementación o la documentación de su uso. (5 pt) Se ha integrado solo una de las librerías requeridas, o su implementación presenta problemas significativos. (2.5 pt) No se han integrado Zustand ni Axios, o su uso no es funcional. (0 pt)

Criterio: 5b) Se han identificado las características del lenguaje de programación relativas a la gestión de los eventos.

Indicador (Puntos) Excelente Muy bueno Bueno Aceptable Insatisfactorio
Variedad de eventos (10 pt) Implementación correcta de al menos tres tipos de eventos (onClick, onChange, onSubmit) en diferentes componentes. (10 pt) La mayoría de los eventos requeridos están implementados y funcionales. (7.5 pt) Implementación básica de eventos, pero faltan algunos o presentan problemas menores. (5 pt) Implementación limitada y con problemas significativos en los eventos. (2.5 pt) No se han implementado eventos funcionales. (0 pt)

Criterio: 6h) Se han independizado las tres facetas (contenido, aspecto y comportamiento), en aplicaciones web.

Indicador (Puntos) Excelente Muy bueno Bueno Aceptable Insatisfactorio
Separación y maquetación (10 pt) HTML, CSS y JavaScript están claramente separados, con una maquetación consistente y responsive. (10 pt) La separación de responsabilidades es adecuada y la maquetación es funcional, aunque con pequeños detalles a mejorar. (7.5 pt) La separación de responsabilidades es básica, o con problemas menores de organización o coherencia en la maquetación. (5 pt) Separación limitada entre HTML, CSS y JavaScript, o inconsistencias significativas en la maquetación. (2.5 pt) No se ha respetado la separación de responsabilidades ni hay coherencia en la maquetación. (0 pt)

Criterio: 3c) Se han escrito sentencias que utilicen los objetos predefinidos del lenguaje para cambiar el aspecto del navegador y el documento que contiene.

Indicador (Puntos) Excelente Muy bueno Bueno Aceptable Insatisfactorio
Manipulación del DOM y apariencia (10 pt) Se han implementado cambios dinámicos avanzados en el DOM para modificar el aspecto y comportamiento del documento (estilos, clases, elementos) de manera eficiente y sin errores. (10 pt) Cambios dinámicos en el DOM correctamente implementados, aunque con ligeras inconsistencias o áreas de mejora. (7.5 pt) Cambios básicos en el DOM, funcionales pero con limitaciones en complejidad o problemas menores de ejecución. (5 pt) Cambios limitados en el DOM con errores significativos o implementación incompleta. (2.5 pt) No se han realizado cambios dinámicos en el DOM. (0 pt)

Criterio: 6f) Se han identificado las diferencias que presenta el modelo en diferentes navegadores.

Indicador (Puntos) Excelente Muy bueno Bueno Aceptable Insatisfactorio
Compatibilidad y funcionalidad en navegadores (10 pt) La aplicación funciona perfectamente en al menos tres navegadores principales (Chrome, Firefox, Edge), sin errores visuales ni funcionales. (10 pt) La aplicación funciona correctamente en dos navegadores principales, con ligeros errores visuales o funcionales en uno de ellos. (7.5 pt) La aplicación es funcional en al menos un navegador principal, pero presenta errores notables en otros. (5 pt) La aplicación tiene problemas significativos de funcionalidad o apariencia en la mayoría de los navegadores probados. (2.5 pt) La aplicación no es funcional en los navegadores evaluados. (0 pt)

Criterio: 7i) Se han creado y documentado programas que utilicen comunicación asíncrona.

Indicador (Puntos) Excelente Muy bueno Bueno Aceptable Insatisfactorio
Documentación del proyecto (10 pt) La documentación en la Wiki y JSDoc es completa, incluye procesos, retos, API, aprendizajes y configuraciones iniciales. (10 pt) La documentación está bien estructurada y cubre la mayoría de los aspectos solicitados. (7.5 pt) La documentación cubre aspectos básicos, pero faltan detalles o partes importantes. (5 pt) La documentación es incompleta o mal estructurada. (2.5 pt) No se ha realizado documentación o es insuficiente. (0 pt)

Nota: Propiedad intelectual

Este proyecto se basa en la investigación y el conocimiento adquirido por los estudiantes como parte de su formación en desarrollo web. Se espera que todos los contenidos sean originales y reflejen el esfuerzo y la comprensión personal de los estudiantes.

Cualquier referencia o cita a fuentes externas, ya sea en formato impreso o digital, debe ser debidamente atribuida y citada siguiendo las normas de citación académica correspondientes. El plagio, que incluye la copia no atribuida de contenido de fuentes externas, está estrictamente prohibido y será sancionado de acuerdo con las políticas académicas del centro educativo.