VacationVibe : aplicación de reserva de alquileres vacacionales
VacationVibe es una aplicación de reserva completa que permite a los usuarios reservar alquileres vacacionales, brindando una experiencia perfecta para reservar alojamiento. La aplicación permite a los usuarios crear listados para sus propias propiedades, brindando a los propietarios la oportunidad de mostrar sus alquileres a huéspedes potenciales. Con VacationVibe , los usuarios pueden buscar fácilmente propiedades disponibles, ver detalles de la propiedad, hacer reservas y administrar sus reservas.
Para experimentar VacationVibe de primera mano, visite nuestro sitio web para una demostración en vivo:
Visite el sitio web para una demostración en vivo
Características clave
- Sistema de reservas: los usuarios pueden buscar fácilmente propiedades disponibles y realizar reservas.
- Creación de listados: los propietarios pueden crear y administrar sus listados.
- Panel de control: los propietarios tienen acceso a un panel de control donde pueden administrar sus anuncios y ver las solicitudes de reserva.
- Cuentas de usuario: los usuarios pueden crear cuentas para guardar sus propiedades favoritas y gestionar sus reservas.
Pila de tecnología
La aplicación fue desarrollada utilizando las siguientes tecnologías:
- MongoDB: una base de datos NoSQL utilizada para almacenar datos de propiedades y usuarios.
- Express.js: un marco del lado del servidor para crear API RESTful y manejar la lógica del lado del servidor.
- React: una biblioteca de JavaScript para crear interfaces de usuario.
- Tailwind CSS: un marco CSS de utilidad que se utiliza para diseñar la interfaz.
- Node.js: un entorno de ejecución de JavaScript utilizado para ejecutar el código del lado del servidor.
- Vercel: una plataforma en la nube para alojamiento e implementación de sitios estáticos, utilizada para implementar la interfaz de la aplicación.
- AWS S3: Amazon Simple Storage Service (S3) para almacenamiento de archivos, que permite a los usuarios cargar y recuperar imágenes de propiedades. Permite el almacenamiento de archivos seguro y escalable, lo que garantiza un sistema confiable y eficiente para el manejo de imágenes de propiedades.
Empezando
Para ejecutar la aplicación VacationVibe localmente, siga estos pasos:
- Clona el repositorio:
git clone https://github.com/junaidsaleem10144/VacationVibe.git
- Navegue al directorio del proyecto:
cd VacationVibe
- Instale las dependencias:
- Backend: navegue a la carpeta
api
y ejecute npm install
- Frontend: navegue a la carpeta
client
y ejecute npm install
- Cree un archivo
.env
en la carpeta api
y proporcione las variables de entorno necesarias. Puede consultar el archivo .env.example
para conocer las variables requeridas. - Inicie los servidores de desarrollo:
- Backend: en la carpeta
api
, ejecute npm run dev
- Frontend: en la carpeta
client
, ejecute npm run start
Ahora puede acceder a la aplicación VacationVibe abriendo su navegador y visitando http://localhost:4000
.
Estructura de carpetas
El proyecto sigue una estructura de carpetas específica:
-
api/
: contiene el código de backend, incluida la configuración del servidor, las rutas y los modelos. -
client/
: Contiene el código de interfaz, incluidos los componentes, estilos y activos de React.
Expresiones de gratitud
Nos gustaría expresar nuestro agradecimiento a los siguientes recursos y bibliotecas que han sido fundamentales en el desarrollo de VacationVibe :
backend
- bcryptjs: Biblioteca para hash y comparación de contraseñas.
- cookie-parser: Middleware para analizar cookies en Express.
- cors: Middleware para habilitar el intercambio de recursos entre orígenes (CORS).
- dotenv: Módulo para cargar variables de entorno desde un archivo .env.
- jsonwebtoken: Biblioteca para generar y verificar JSON Web Tokens (JWT).
- mongoose: biblioteca de modelado de datos de objetos (ODM) para MongoDB.
- multer: Middleware para manejar la carga de archivos en Express.
- @aws-sdk/client-s3: una biblioteca cliente para interactuar con Amazon S3 para almacenar archivos.
- image-downloader: Biblioteca para descargar imágenes desde URL.
- mime-types: Biblioteca para trabajar con tipos MIME.
- express: marco web para Node.js.
Dependencias de desarrollo (Backend):
- nodemon: Utilidad que reinicia automáticamente el servidor Node.js cuando se detectan cambios en los archivos.
Interfaz
- axios: Biblioteca para realizar solicitudes HTTP.
- date-fns: Biblioteca para manipular y formatear fechas.
- reaccionar-router-dom: Biblioteca para manejar el enrutamiento en aplicaciones React.
- reaccionar: biblioteca de JavaScript para crear interfaces de usuario.
- reaccionar-dom: Paquete para renderizar componentes de React.
Dependencias de desarrollo (Frontend):
- @types/react: definiciones de tipos para React.
- @types/react-dom: definiciones de tipos para React DOM.
- @vitejs/plugin-react: complemento de Vite para compatibilidad con React.
- autoprefixer: complemento PostCSS para agregar prefijos de proveedores a CSS.
- postcss: herramienta de postprocesador CSS.
- tailwindcss: marco CSS de utilidad.
- vite: herramienta de creación para el desarrollo web moderno.
¡Gracias por elegir VacationVibe ! Si tiene alguna pregunta o comentario, no dude en comunicarse.
Contribuyendo
¡Las contribuciones a la aplicación VacationVibe son bienvenidas! Si encuentra algún problema o desea agregar nuevas funciones, no dude en abrir una solicitud de extracción.
Licencia
Este proyecto está bajo la licencia MIT.