Proyecto de Airbnb en NestJS
Este proyecto consiste en desarrollar una plataforma similar a Airbnb usando NestJS. La plataforma permitirá gestionar dos tipos principales de usuarios: compradores (usuarios estándar) y vendedores (usuarios que pueden publicar apartamentos para alquilar).
- Todos los usuarios comienzan siendo compradores.
- Un usuario puede ampliar su cuenta para ser vendedor desde el registro o más adelante.
- Los usuarios pueden ver los apartamentos disponibles.
- Se mostrarán primero los apartamentos más cercanos y con mejor valoración.
Orden: valoración (60%) y ubicación (40%). - La lista será paginada y podrá filtrarse por nombre, fecha y tipo de apartamento.
- Información completa del apartamento (fotos, descripción, ubicación, disponibilidad, etc.).
- Sección de reseñas paginadas de los usuarios.
- Opción para enviar solicitud de reserva especificando fechas de entrada y salida (solo si el apartamento está disponible).
(Si está habilitada, la reserva puede realizarse automáticamente.)
- Cada usuario tendrá su propio perfil con:
- Foto
- Nombre
- Edad
- Número de apartamentos alquilados
- Número de valoraciones recibidas
- Los usuarios tienen un área para ver los apartamentos que han solicitado o reservado.
- Si una solicitud es aceptada por el vendedor:
- El usuario recibe una notificación.
- La solicitud permanece en esta sección.
- Si una solicitud es rechazada:
- El usuario recibe una notificación.
- La solicitud se elimina automáticamente de esta sección.
- Cuando la solicitud es aceptada y llega la fecha de salida:
- El usuario recibe una notificación para valorar el apartamento.
- Cada usuario tendrá su apartado de notificaciones donde podrá consultar:
- Solicitudes aceptadas o rechazadas
- Reseñas respondidas por el vendedor
- Aviso para valorar la estancia una vez finalizada
- El sistema usará autenticación mediante tokens Bearer para la identificación segura del usuario.
- Acceso para añadir nuevos apartamentos, incluyendo:
- Fotos
- Nombre
- Descripción
- Dirección
- Disponibilidad
- Reserva automática
- Visualización y gestión del estado de las solicitudes recibidas (aceptar o rechazar).
- Capacidad para responder públicamente a las reseñas que dejan los usuarios sobre sus apartamentos.
- Se deberán seedear datos iniciales:
- Usuarios
- Apartamentos
- Valoraciones
- Solicitudes
- Facilita el desarrollo y las pruebas.
- Todo el backend deberá documentarse mediante Swagger para facilitar el uso e integración de las APIs.