/hotelApp

Primary LanguageJavaScript

Proyecto

El presente proyecto es un Trabajo Práctico Final Integrador de Conocimientos para la materia Programación en Ambiente Web de la Universidad Nacional de Luján.
Se hará uso de estrategias como Mobile First, Mashups, CSS Reset, y Accesibilidad Web entre otros.
Mas información en Documentacion/TP_Integrador_PAW.pdf .

Propuesta

La idea del proyecto es el desarrollo de una página web para la administración de un hotel, permitiendo un ABM de reservas, habitaciones, servicios, fotos y usuarios (de backend).
También se permitirá integrar proveedores de servicios cercanos al hotel (gastronomía, atracciones, supermercados) que pagando un abono mensual, tendrán el derecho a ser listados en primer orden y sobresalir visualmente en el mapa de servicios.
Por el lado del usuario final, éste podrá ver información del hotel, habitaciones, servicios, fotos, ubicación, lugares de interes cercano y podrá contactarse con ellos mediante un formulario.
En Documentacion/Diagrama_Hotel.pdf encontrará un sencillo diagrama de clases del proyecto.
En Documentacion/Wireframes.pdf encontrará los wireframes del proyecto.

Autor

Tecnologías

Backend

Frontend

SEO

Desarrollo

  • Git - Control de Versiones.
  • VS Code - Editor de Código.
  • Docker - Contenedores. (Pg y PgAdmin)

Instalación de Depedencias

$ npm install

Iniciar Contenedores Docker

$ docker-compose up

Limpiar schema y Base de Datos

$ npm run typeorm:drop

Generación de Base de Datos y Seeds de prueba

$ npm run migrations:run
$ npm run seeds:run

Iniciar la App

$ npm run start

Abrir Navegador

http://localhost:3000

Abrir backend en el Navegador

nick: admin-hotelpato | pass: admin123
http://localhost:3000/backend/login

Documentación y prueba de la API

http://localhost:3000/api/docs

Notas

  • Antes de iniciar la app, completar el archivo .env con los datos solicitados.
  • Las credenciales del usuario y hotel de prueba están en swagger(http://localhost:3000/api/docs/#/Auth/AuthController_login), sección Auth.
  • Al crear un nuevo Hotel, se asigna una uri(nombre_uri) para despues llamarla por URL, la cual sera con trim(), lowerCase() y sin espacios.
  • Al crear un nuevo Hotel, se crea un usuario por defecto con las siguientes credenciales que luego se pueden modificar:
    • nombre: admin-{{nombre_uri}}
    • apellido: admin-{{nombre_uri}}
    • email: admin-{{nombre_uri}}@mail.com
    • nick: admin-{{nombre_uri}}
    • password: admin123
  • Al recibir un Contacto, se envía un email con la copia del mensaje al cliente, y un email a todos los usuarios del hotel en cuestión asi como al email definido para el hotel.

Oportunidad de Mejoras

  • Las tablas deben tener filtros de busqueda y/o un input de busqueda.
  • Las tablas se deben poder ordenar al hacer click sobre el nombre de la columna.
  • Reemplazar ciertos select por checkbox.
  • Agregar animaciones en slides de fotos.
  • Comprimir y/o limitar el tamaño y peso de una imagen al subirla al server.

Última actualización: 26/06/2022