Wanderlust is an Airbnb-style website that allows users to discover new places, create listings, and share their travel experiences. The platform is designed with a user-friendly interface to make exploration and sharing seamless.
- Explore Destinations: Users can browse through various destinations with an intuitive and user-friendly interface.
- Create Listings: Users can list their own spaces, providing details and photos to attract fellow wanderers.
- Reviews: Leave and read reviews to make informed travel decisions based on the experiences of others.
- Account Management: Sign up for an account to unlock personalized features and manage your listings and bookings with ease.
- Error Handling: Implemented comprehensive error handling to enhance user experience and application stability.
- Authentication & Authorization: Used Passport.js for secure user authentication and authorization.
- Data Validation: Utilized Joi for robust validation of user inputs.
- SQL Relationships: Managed complex data relationships using SQL for a reliable backend.
- Modular Routing & Dynamic Views: Developed with Express Router and EJS templates to create modular routes and dynamic views.
- User-friendly Authentication: Employed cookies, sessions, and Flash messages for a smooth authentication process and user notifications.
- MVC Architecture: Adopted the Model-View-Controller architecture for organized and scalable code.
- Location-Based Features: Integrated a Map API to provide location-based services and enhance user experience.
- Frontend: HTML, CSS, JavaScript
- Backend: Node.js, Express.js
- Database: MongoDB
- Authentication: Passport.js
- Validation: Joi
- Architecture: MVC
- APIs: RESTful APIs, Map API
-
Clone the repository:
git clone https://github.com/ramyasravanthi/Wanderlust.git
-
Navigate to the project directory:
cd Wanderlust -
Install dependencies:
npm install
-
Set up environment variables: Create a
.envfile in the root directory and add the following variables:PORT=3000 DATABASE_URL=your-mongodb-url SESSION_SECRET=your-session-secret MAP_API_KEY=your-map-api-key -
Run the application:
npm start
- Explore Destinations: Browse the home page to see various listings.
- Create an Account: Sign up or log in to access personalized features.
- Create a Listing: List your space by providing the required details.
- Reviews: Leave reviews for places you've visited and read others' reviews to make informed decisions.
- Account Management: Manage your listings, bookings, and reviews from your account dashboard.
- Fork the repository
- Create a new branch (
git checkout -b feature-branch) - Commit your changes (
git commit -m 'Add some feature') - Push to the branch (
git push origin feature-branch) - Create a new Pull Request
- Special thanks to the developers and contributors of Passport.js, Joi, and other libraries used in this project.
- Inspired by the Airbnb platform and community.