NikhilKalloli / TravelCrafter

Register, create property listings, rate other's listings and much more. The below link is a free instance. Hence it needs some time to spin up:)

Home Page:https://travelcrafter.onrender.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 nikhilkalloli0097@gmail.com

About

Register, create property listings, rate other's listings and much more. The below link is a free instance. Hence it needs some time to spin up:)

https://travelcrafter.onrender.com

License:MIT License


Languages

Language:JavaScript 56.3%Language:EJS 26.9%Language:CSS 16.8%