Wheely
Este es mi proyecto final y primer proyecto Full Stack, realizado en el Bootcamp de Skylab. La idea nace de una necesidad real en las autoescuelas de agilizar la tarea de reservas de prácticas en la que tanto alumno como profesor pueden hacer la gestión 100% online además de un seguimiento del alumno, control de créditos disponibles, etc.
Características
- Estudiantes, profesores y personal de administración disponen de cuentas con funcionalidades diferentes.
- Estudiante:
- Puede consultar y modificar sus datos personales y créditos disponibles.
- Puede reservar prácticas seleccionando cualquier profesor, día y hora.
- Puede cancelar una reserva con 24 horas de antelación.
- Tanto profesor como alumno, reciben un correo de confirmación en cada reserva o cancelación de práctica.
- Puede consultar las reservas pendientes y las prácticas realizadas.
- Puede sopesar su progresión con las valoraciones de los profesores.
- Cuenta para pruebas: ana@ana.com // contraseña: 123.
- Profesor:
- Puede consultar y modificar sus datos personales.
- Puede consultar y filtrar sus reservas.
- Al terminar la práctica, el profesor emite una evaluación del alumno.
- Puede consultar pero no modificar su horario de trabajo.
- Cuenta para pruebas: toni@toni.com // contraseña: 123.
- Administrador:
- Puede añadir, modificar, consultar y eliminar cualquier usuario.
- Puede añadir créditos a los alumnos.
- Puede gestionar y editar el horario laboral de cada profesor.
- Puede acceder a todas las reservas realizadas.
- Puede ver la progresión de todos los alumnos. Cuenta para pruebas: admin@admin.com // contraseña: 123.
Qué he aprendido
- A desarrollar un back-end con Node Express.
- A agrupar todas las rutas en un router.
- A vincular una base de datos con MongoDB y esquematizarla con Mongoose.
- A utilizar React Hooks en el front-end.
- A realizar TDD tests en el back-end con Mocha Chai y en el front-end con Jest.
- A enviar correos utilizando la librería Nodemailer.
- A manejar reservas, cancelaciones y calendarios en tiempo real con Moment.
- A emular un servicio de pago con créditos.
- A mostrar un menú de hamburguesa en dispositivos móviles.
- A conectar el front-end con el back-end desplegados en producción.
- A redactar documentación técnica y funcional.
- A cumplir con el contrato, fechas de entrega (2 semanas y media), manejar expectativas, control del estrés y priorización.
- A exponer el proyecto en público.
Tecnologías
- Front-end: React Hooks (JavaScript), CSS-SASS, Mocha Chai
- Back-end: Node con Express, MongoDB, test con Jest