El proyecto HotelHub es un proyecto de programación enfocado a la creación de una página web que sirva como dashboard de gestión y administración de los recursos del Hotel Miranda (ver: Hotel Miranda), utilizando React y otras herramientas como Redux, React-Router y Styled Components entre otras, y Jest/Cypress para realizar el apartado de testing.
El objetivo del proyecto es demostrar los conocimientos sobre la biblioteca React en conjunto con Redux a la hora de construir una aplicacion web compleja desde cero, sabiendo implementar en la misma formas alternativas y extendidas para darle estilo (Styled Components), enrutar (React-Router), testear (Cypress) o realizar cualquier modificación como, por ejemplo, migrar toda la aplicación a Typescript, demostrando así tambien los conocimientos aprendidos sobre este superconjunto de Javascript.
Los requisitos a seguir para cumplir los objetivos del proyecto son los siguientes, en orden de realización:
- Crear una aplicación React con sus componentes.
- Aprender a enrutar la aplicación con características más avanzadas.
- Utilizar de forma complementaria Redux y useContext (ver: useContext), y comprender cuándo nos puede ayudar tener el estado de la aplicación de manera centralizada y por qué utilizar esta estrategia.
- Entender la metodología de Testing con Jest y Cypress, aprendiendo cómo se tiene que organizar el código en un entorno profesional (para ver prueba unitarias de testing, ir a Proyecto Unit Testing).
- Adquirir habilidad afrontando las dificultades de pasar una aplicación JavaScript a TypeScript.
- Desarrollar una API REST que sirva como puente entre esta aplicación y la futura base de datos en MongoDB (ver: Proyecto APIMiranda).
- Realizar la conexión: Aplicacion - API - Base de Datos.
A parte de los requisitos que pedía el proyecto, se han añadido otras funcionalidades al proyecto tales como:
- Se crea Modo Oscuro de la aplicación utilizando useContext.
- Se añaden efectos personalizados al hover específico de cada componente.
- Se modifica el código de color general de la aplicación.