Giter Site home page Giter Site logo

omkar231098 / dream_go Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 18.03 MB

DreamGo: Your ultimate vacation rental destination. Find your dream getaway with ease - from cozy cabins to luxurious villas. Book securely and start making memories today!

Home Page: https://dreamgo-green.vercel.app

HTML 0.50% CSS 4.28% JavaScript 77.82% SCSS 17.40%
expressjs imagekit mongoose nodejs reactjs

dream_go's Introduction

DreamGO

DreamGo: Your ultimate vacation rental destination. Find your dream getaway with ease - from cozy cabins to luxurious villas. Book securely and start making memories today!

Logo

Table of Contents

Features

  • Easy Booking: Effortlessly book your desired vacation rental with simple and intuitive booking process.
  • Wide Variety of Categories: Explore diverse categories of accommodations, from cozy cottages and beachfront villas to urban apartments and countryside retreats.
  • Secure Payment: Ensure peace of mind with secure online payment options for hassle-free transactions.
  • Customizable Search: Filter accommodations based on location, price range, amenities, and more to find the perfect getaway.
  • User Wishlists: Create personalized wishlists to save favorite properties for future reference and easy booking.
  • Listing Management: Allow users to publish their own properties for rent, managing details, availability, and pricing.
  • User Ratings and Reviews: Enable users to rate and review accommodations to help others make informed decisions.
  • Responsive Design: Enjoy seamless user experience across devices with a mobile-friendly and responsive website design.

Tech Stack

  • React: JavaScript library for building user interfaces
  • Node.js: JavaScript runtime
  • Express.js: Web application framework for Node.js
  • MongoDB: NoSQL database for storing user data
  • imagekit.io: Image optimization and delivery service
  • JWT: JSON Web Tokens for secure user authentication

Getting Started

  1. Clone the repository:

    git clone https://github.com/omkar231098/dream_go.git
    
    cd dream_go
  2. Install dependencies:

    npm install
  3. Set up environment variables: Create a .env file in the root directory and add the following:

    PORT=8500
    MONGO_URL="mongodb_database_url"
    JWT_SECRET=mysecretkey
    publicKey="imagekit.io_public_key"
    privateKey="imagekit.io_private_key"
    urlEndpoint="imagekit.io_url_endpoint"
  4. Run the application:

    npm start

    The API server will be running at http://localhost:8500.

API Routes

Authentication Routes

  • User Registration

    • Route: POST /auth/register
    • Description: Register a new user.
  • User Login

    • Route: POST /auth/login
    • Description: Authenticate user login.

Booking Routes

  • Create Booking

    • Route: POST /bookings/create
    • Description: Create a new booking.
  • Delete Booking

    • Route: DELETE /bookings/delete/:id
    • Description: Delete a booking.

Listing Routes

  • Create Listing

    • Route: POST /listings/create
    • Description: Create a new property listing.
  • Get Listings by Category

    • Route: GET /listings
    • Query Parameter: category
    • Description: Retrieve property listings by category.
  • Search Listings

    • Route: GET /listings/search/:search
    • Parameter: search
    • Description: Search property listings by keyword.
  • Get Listing Details

    • Route: GET /listings/:listingId
    • Description: Retrieve details of a specific property listing.
  • Delete Listing

    • Route: DELETE /listings/:listingId
    • Description: Delete a property listing.

User Routes

  • Get User Trips

    • Route: GET /users/:userId/trips
    • Description: Retrieve trips associated with a user.
  • Add/Remove Listing to/from Wishlist

    • Route: PATCH /users/:userId/:listingId
    • Description: Add or remove a listing from a user's wishlist.
  • Get User Properties

    • Route: GET /users/:userId/properties
    • Description: Retrieve properties listed by a user.
  • Get User Reservations

    • Route: GET /users/:userId/reservations
    • Description: Retrieve reservations made by a user.

Review Routes

  • Create Review

    • Route: POST /reviews/create/:listingId
    • Description: Create a new review for a listing.
  • Get All Reviews

    • Route: GET /reviews
    • Description: Retrieve all reviews.
  • Get Reviews by Listing ID

    • Route: GET /reviews/listing/:listingId
    • Description: Retrieve reviews for a specific listing.

Logger

Overview

The logger middleware is responsible for logging various events and errors that occur during the execution of DreamGO. It helps in debugging, monitoring, and understanding the application's behavior.

Usage

The logger middleware is integrated using the following steps:

  1. Installation:
    npm install --save winston
    

Rate Limiter

DreamGO uses a rate limiter to control the number of requests a user can make within a specific time frame. This helps prevent abuse and ensures fair usage of the application.

Validator

Input validation is essential for ensuring that user-submitted data is accurate and secure. DreamGO employs a validator to check and sanitize user input.

Screenshots

1. HomePage

homepage

2. RegisterPage

register

3. LoginPage

login

4. ReservationListPage

reservation

5. WishListPage

wishlist

6. PropertyListPage

property

7. BecomeHostPage

becomehostpage

8. ReservationPage

ReservationPage

9. ReviewSection

review

10. PaymentPage

payment

Deployed Link

The Dream GO Frontend is deployed at https://dreamgo-green.vercel.app/

API Documentation

For detailed API documentation, view the Swagger documentation:

Contribution

We welcome contributions! If you have suggestions or improvements for the error handling process, please follow the Contributing Guidelines.

License

This project is licensed under the MIT License. See the LICENSE file for details.

dream_go's People

Contributors

omkar231098 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.