Wanderlust is a dynamic web application designed to help users explore and share exciting travel destinations. Users can browse, review, and share their own experiences at different locations, creating a community-driven travel platform.
- User Authentication: Secure login and registration using Passport.js.
- Listings: Users can browse through various travel listings and share their own.
- Reviews: Leave reviews for different listings, rate them, and share feedback with other users.
- Responsive Design: Optimized for both desktop and mobile devices.
- Flash Messages: Display success and error messages for user actions.
-
Clone the repository:
git clone https://github.com/luckygoswami/Wanderlust.git
-
Navigate to the project directory:
cd Wanderlust
-
Install dependencies:
npm install
-
Set up the
.env
file in the root directory:ATLASDB_URL=<your database url> CLOUD_NAME=<your cloud name> CLOUD_API_KEY=<your cloud api key> CLOUD_API_SECRET=<your cloud api secret code> SECRET=<your secret key>
-
Start the MongoDB server:
mongod
-
Run the server:
npm .\app.js
-
Access the app by visiting
http://localhost:8080
.
- Listings: Browse and add new travel listings by navigating to the Listings section.
- Reviews: View reviews for a listing or add your own review if you have visited the destination.
- Authentication: Log in to access user-specific features like adding new listings and leaving reviews.
- Responsive Interface: Enjoy a mobile-first design, ensuring a smooth experience on all devices.
- Backend: Node.js, Express, MongoDB
- Frontend: EJS, Bootstrap, CSS
- Authentication: Passport.js
- Storage: MongoDB with Mongoose
- Session Management: express-session, connect-mongo
- Error Handling: Custom error classes and flash messages
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a feature branch (
git checkout -b feature/new-feature
). - Commit your changes (
git commit -m "Add some feature"
). - Push to the branch (
git push origin feature/new-feature
). - Create a new Pull Request.
If you have any questions or suggestions, feel free to open an issue on GitHub or contact me directly via GitHub Issues.