Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Full Stack Uber-Clone Application

A comprehensive ride-hailing platform that connects riders with drivers, featuring real-time location tracking, ride management, and secure authentication.

Core Features

For Riders

  • User registration and authentication
  • Real-time ride booking
  • Live driver tracking
  • Ride history
  • Multiple payment methods integration
  • Rate and review drivers
  • Save favorite locations
  • Fare estimation
  • Multiple ride types (Economy, Premium, etc.)

For Drivers (Captains)

  • Driver registration and verification
  • Real-time ride requests
  • Navigation integration
  • Earnings tracking
  • Status management (Online/Offline)
  • Trip history
  • Performance analytics
  • Revenue reports

Technical Architecture

Frontend Technology Stack (uber_frontend)

  • Core Framework: React 18.3
  • Build Tool: Vite 6.0
  • State Management: Redux Toolkit
  • Maps Integration: Google Maps API
  • Real-time Communication: Socket.io-client
  • Styling:
    • Tailwind CSS
    • CSS Modules
    • Material-UI components
  • Form Handling: React Hook Form
  • API Communication: Axios
  • Authentication: JWT with HTTP-only cookies
  • Testing: Jest & React Testing Library

Backend Technology Stack (uber_backend)

  • Runtime: Node.js 18+
  • Framework: Express.js 4.21
  • Database: MongoDB with Mongoose 8.8
  • Real-time Server: Socket.io
  • Authentication:
    • JWT (jsonwebtoken)
    • Passport.js
  • Security:
    • bcrypt for password hashing
    • helmet for HTTP headers
    • rate-limiting
    • CORS protection
  • Validation: Joi/Yup
  • File Upload: Multer
  • Payment Processing: Stripe API
  • Email Service: NodeMailer
  • Testing: Jest with Supertest

System Architecture

├── Frontend (React)
│   ├── Public Routes
│   │   ├── Landing Page
│   │   ├── Login/Register
│   │   └── Fare Estimation
│   └── Protected Routes
│       ├── User Dashboard
│       ├── Booking Interface
│       ├── Ride Tracking
│       └── Payment Management
│
├── Backend (Express.js)
│   ├── API Gateway
│   ├── Authentication Service
│   ├── Ride Management Service
│   ├── Payment Service
│   ├── Location Service
│   └── Notification Service
│
└── External Services
    ├── MongoDB Database
    ├── Redis Cache
    ├── Socket.io Server
    ├── Payment Gateway
    └── Maps Service

API Services

Authentication Service

  • Complete JWT-based authentication flow
  • Email password login and register
  • Phone number verification
  • Session management

Ride Management Service

  • Ride creation and assignment
  • Real-time location updates
  • Fare calculation
  • Route optimization
  • Driver matching algorithm

Payment Service

  • Multiple payment method support
  • Secure payment processing
  • Automatic fare calculation

Location Service

  • Real-time location tracking
  • Geofencing
  • Address autocomplete
  • Distance calculation
  • ETA prediction

Notification Service

  • Push notifications

Database Schema

User Collection

  • Basic profile (name, email, phone)
  • Authentication details
  • Payment information
  • Ride history
  • Preferences
  • Ratings

Captain Collection

  • Profile information
  • Vehicle details
  • Documents and verification
  • Current status

Ride Collection

  • Ride details
  • Route information
  • Payment status
  • Timestamps
  • User and captain references

Payment Collection

  • Transaction details
  • Payment method
  • Status tracking
  • Refund information

Security Implementations

  • JWT token rotation
  • Request validation
  • Data encryption
  • Secure password policies

Development Setup

Frontend Installation Steps

  1. Navigate to frontend directory:
cd uber_frontend
  1. Install dependencies:
npm install
  1. Run development server:
npm run dev
  1. Build for production:
npm run build

Backend Installation Steps

  1. Navigate to backend directory:
cd uber_backend
  1. Install dependencies:
npm install
  1. Create .env file with following variables:
PORT=3000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
  1. Run development server:
npm run dev

Contributing Guidelines

  1. Fork the repository
  2. Create your feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

About

The Full Stack Uber project is a comprehensive ride-hailing application with distinct frontend and backend components.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages