Skip to content

Umesh042005/RydZO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

<<<<<<< HEAD

RydZO

RydZo is a person-to-person bike rental platform designed to connect bike owners with customers in a secure and trusted environment. It solves the chaos of unverified rentals by introducing strong identity verification, digital agreements, and a seamless booking flow.

RYDZO - Bike Rental Platform

Project Overview

RYDZO is a secure and reliable bike rental aggregator platform designed to connect bike owners with customers. It facilitates seamless booking, identity verification, and secure rental agreements.

This project is built as a college-level submission, focusing on a clean architecture, role-based access control, and essential features for a rental marketplace.


🚀 Key Features

Backend (Node.js + Express + MongoDB)

  • Authentication: Secure JWT-based auth with Role-Based Access Control (RBAC).
  • User Roles: Separate flows for Customer, Owner, and Admin.
  • Verification System: Mandatory document uploads (Driving License, Aadhaar, etc.) with Admin approval.
  • Bike Listings: Owners can list bikes with photos and documents (RC, Insurance).
  • Booking Management: Complete rental lifecycle (Pending -> Confirmed -> Ongoing -> Completed).
  • Digital Agreement: Mandatory rental agreement acceptance before booking confirmation.
  • Ride Status: Simple status tracking for active rentals.

Frontend (React + Tailwind CSS)

  • Modern UI: Clean and responsive design using a Purple/Orange color scheme.
  • Dashboard: Role-specific dashboards for Customers, Owners, and Admins.
  • Browse Bikes: Search and filter available bikes.
  • Booking Flow: Easy-to-use booking interface with date/time selection.
  • Profile Management: Profile updates and document status tracking.

🛠️ Technology Stack

  • Frontend: React.js, Tailwind CSS, React Router, React Icons
  • Backend: Node.js, Express.js
  • Database: MongoDB (Mongoose ODM)
  • Authentication: JSON Web Tokens (JWT)
  • Image Storage: Cloudinary (for profile and bike images)

📂 Project Structure

RydZo/
├── backend/
│   ├── models/            # Database schemas (User, Bike, Booking, Agreement)
│   ├── routes/            # API endpoints
│   ├── controllers/       # Business logic
│   ├── middleware/        # Auth and validation middleware
│   └── server.js          # Entry point
│
├── frontend/
│   ├── src/
│   │   ├── components/    # Reusable UI components
│   │   ├── pages/         # Application pages
│   │   ├── context/       # State management (Auth)
│   │   └── App.jsx        # Main React component
│   └── package.json
│
└── README.md              # Project documentation

🚀 Getting Started

Prerequisites

  • Node.js (v14 or higher)
  • MongoDB (Local or Atlas)
  • Cloudinary Account (for image uploads)

Installation

  1. Clone the repository:

    git clone <repository_url>
    cd RydZo
  2. Install Backend Dependencies:

    cd backend
    npm install
  3. Install Frontend Dependencies:

    cd ../frontend
    npm install
  4. Environment Setup:

    • Create a .env file in the backend folder.
    • Add the following variables:
      PORT=5000
      MONGODB_URI=your_mongodb_connection_string
      JWT_SECRET=your_jwt_secret
      CLOUDINARY_CLOUD_NAME=your_cloud_name
      CLOUDINARY_API_KEY=your_api_key
      CLOUDINARY_API_SECRET=your_api_secret
    • Create a .env file in the frontend folder.
      REACT_APP_API_URL=http://localhost:5000
  5. Run the Application:

    • Backend: cd backend && npm run dev
    • Frontend: cd frontend && npm start

📝 Usage Guide

  1. Register: Create an account as a "Customer" or "Owner".
  2. Verify: Upload required documents in the Profile section. These must be approved by an Admin.
  3. Owner: List a bike once verified.
  4. Customer: Browse bikes and make a booking request.
  5. Booking Flow:
    • Customer sends request.
    • Owner accepts request.
    • Customer accepts Digital Agreement.
    • Owner hands over bike (starts ride).
    • Owner receives bike back (ends ride).

🔒 Security & Best Practices

  • Data Privacy: Passwords are hashed using bcrypt.
  • Authorization: Protected routes ensure users access only permitted features.
  • Validation: Input validation for all forms and API requests.

📄 License

This project is created for educational purposes.

ad56538 (Initial commit: RydZo full-stack project)

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages