Skip to content

Latest commit

 

History

History
154 lines (116 loc) · 4.74 KB

README.md

File metadata and controls

154 lines (116 loc) · 4.74 KB

TravelCrafter 🌐

Overview

Welcome to TravelCrafter! This project offers fundamental features allowing users to register, create property listings, and rate other's listings. The application employs Mapbox to showcase precise locations, MongoDB for efficient data storage, and Cloudinary as the designated cloud service for storing images.

Features 🚀

  1. User Authentication

    • Users can sign up and log in to the platform.
    • Sessions are managed with the help of signed cookies.
  2. Listing Creation

    • Registered users can create listings for properties they want to rent or share.
    • Each listing includes essential details like property description, amenities, and location.
  3. Listing Rating

    • Users can rate and review listings based on their experiences.
    • Ratings contribute to the overall reputation of the listing.
  4. Mapbox Integration

    • Utilizes Mapbox to display the precise location of each listing on an interactive map.
    • Enhances user experience by providing visual context to the property's surroundings.
  5. Image Storage on Cloudinary

    • Images associated with listings are securely stored on Cloudinary.
    • Cloudinary serves as a reliable cloud service for managing and delivering images.
  6. MVC Framework

    • The project follows the Model-View-Controller (MVC) architectural pattern for organized and scalable development.

Technologies Used 🛠️

  • Frontend

    • HTML, CSS, JavaScript
    • Mapbox for map integration
  • Backend

    • Node.js with Express.js framework
    • MongoDB Atlas for online data storage
    • Passport library for authentication
    • Cloudinary for image storage
TravelCrafter.mp4

📂 File Structure

├── .vscode
├── controllers
│ ├── listings.js
│ ├── reviews.js
│ └── users.js
├── init
│ ├── data.js
│ └── index.js
├── models
│ ├── listing.js
│ ├── review.js
│ └── user.js
├── public
│ ├── assets
│ ├── css
│ ├── js
├── routes
│ ├── listing.js
│ ├── review.js
│ └── user.js
└── utils
│ ├── ExpressError.js
│ └── wrapAsync.js
├── views
│ ├── errors
│ │ └── error.ejs
│ ├── includes
│ │ ├── flash.ejs
│ │ ├── footer.ejs
│ │ └── navbar.ejs
│ ├── layouts
│ │ └── boilerplate.ejs
│ ├── listings
│ │ ├── edit.ejs
│ │ ├── index.ejs
│ │ ├── new.ejs
│ │ ├── searchCountry.ejs
│ │ ├── show.ejs
│ │ └── showCategory.ejs
│ ├── users
│ │ ├── login.ejs
│ │ └── signup.ejs
├── env.example
├── app.js
├── cloudConfig.js
├── LICENSE
├── middleware.js
├── package-lock.json
├── package.json
├── schema.js
└── test.js

Installation 🛠️

  1. Clone the repository:

    git clone https://github.com/NikhilKalloli/TravelCrafter.git
    
  2. Navigate to the project directory:

    cd TravelCrafter
    
  3. Install dependencies:

    npm install
    
  4. Set up environment variables:

  • Create a .env file based on the provided .env.example
  • Configure your MongoDB connection string, Mapbox API key, and Cloudinary credentials.
  1. Start the application:
    node app.js
    

Contributing

Contributions are welcome! If you have any improvements or new features to suggest, please create a pull request.

Enjoy playing the with the code! If you have any questions or issues, feel free to open an issue.

License 📑

This project is licensed under the MIT License. Feel free to use and modify the code for your own projects.

Acknowledgments 🙌

Special thanks to Mapbox, MongoDB Atlas, Cloudinary, Passport library, and the open-source community for providing valuable tools and resources that made this project possible.

Connect with Me

Twitter LinkedIn

Feedback

If you have any feedback, please reach out to me at [email protected]