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.