Wanderlust is a meticulously crafted full-stack web application that emulates the core functionalities of popular rental platforms like Airbnb. This project serves as a comprehensive demonstration of my skills in building robust, user-friendly web experiences from the ground up, showcasing proficiency in both front-end and back-end development.
Wanderlust provides a complete set of features for managing rental listings and user interactions:
- Comprehensive Listing Management:
- View Listings: Browse through a diverse collection of rental properties.
- Create New Listings: Users can easily add their own properties with detailed information.
- Edit Listings: Owners have the ability to modify their property details.
- Delete Listings: Owners can remove their properties from the platform.
- User Authentication & Authorization:
- Sign Up: New users can register for an account.
- Login: Registered users can securely access their profiles.
- Logout: Users can safely end their session.
- Interactive Reviews: Users can leave and view reviews for different listings, enhancing community engagement.
- Responsive Design: Ensures a seamless user experience across various devices (desktops, tablets, and mobile phones).
Wanderlust is built using a modern full-stack technology stack:
- HTML5: Structuring the core web content.
- CSS3: Styling and layout, including responsive design principles for optimal viewing across devices.
- JavaScript: Enhancing interactivity and dynamic content.
- Node.js: JavaScript runtime environment for efficient, scalable server-side logic.
- Express.js: A fast, unopinionated, minimalist web framework for Node.js, used for building robust APIs.
- Express Sessions: Middleware for handling secure user sessions.
- MVC (Model-View-Controller): Architectural pattern used for organizing code, promoting separation of concerns and maintainability.
- MongoDB: A flexible and scalable NoSQL database for efficient data storage.
- Mongoose: An ODM (Object Data Modeling) library for MongoDB and Node.js, simplifying data interactions and schema definition.
- NPM (Node Package Manager): Used for managing project dependencies and running scripts.
Developing Wanderlust was an invaluable learning experience that significantly deepened my understanding of:
- Full-stack development workflows: Connecting frontend and backend components seamlessly.
- Database management: Designing schemas, performing CRUD (Create, Read, Update, Delete) operations, and ensuring data integrity with MongoDB and Mongoose.
- API design and implementation: Building RESTful APIs with Node.js and Express.js.
- Authentication and authorization: Implementing secure user login and session management.
- MVC architecture: Organizing complex applications into manageable and scalable components.
- Error handling and middleware: Building robust and resilient web applications.
Follow these steps to get Wanderlust up and running on your local machine for development and testing:
-
Clone the repository:
git clone [Your GitHub Repo Link] cd wanderlustReplace
[Your GitHub Repo Link]with the actual HTTPS or SSH link to your GitHub repository. -
Install dependencies:
npm install
-
Set up environment variables: Create a
.envfile in the root directory of the project and add your MongoDB URI:DB_URL=your_mongodb_connection_stringReplace
your_mongodb_connection_stringwith your actual MongoDB connection URI (e.g., from MongoDB Atlas or a local instance). -
Start the server:
npm start
-
Visit the application: Open your web browser and go to
http://localhost:3000(or the port specified in your.envfile orapp.js).
You can sign up with your own credentials or use the following sample credentials to explore the application's features:
- Email:
sample@example.com - Password:
password123
Feel free to explore the code, provide feedback, or suggest improvements!