A comprehensive ride-hailing platform that connects riders with drivers, featuring real-time location tracking, ride management, and secure authentication.
- 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.)
- Driver registration and verification
- Real-time ride requests
- Navigation integration
- Earnings tracking
- Status management (Online/Offline)
- Trip history
- Performance analytics
- Revenue reports
- 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
- 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
├── 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
- Complete JWT-based authentication flow
- Email password login and register
- Phone number verification
- Session management
- Ride creation and assignment
- Real-time location updates
- Fare calculation
- Route optimization
- Driver matching algorithm
- Multiple payment method support
- Secure payment processing
- Automatic fare calculation
- Real-time location tracking
- Geofencing
- Address autocomplete
- Distance calculation
- ETA prediction
- Push notifications
- Basic profile (name, email, phone)
- Authentication details
- Payment information
- Ride history
- Preferences
- Ratings
- Profile information
- Vehicle details
- Documents and verification
- Current status
- Ride details
- Route information
- Payment status
- Timestamps
- User and captain references
- Transaction details
- Payment method
- Status tracking
- Refund information
- JWT token rotation
- Request validation
- Data encryption
- Secure password policies
- Navigate to frontend directory:
cd uber_frontend- Install dependencies:
npm install- Run development server:
npm run dev- Build for production:
npm run build- Navigate to backend directory:
cd uber_backend- Install dependencies:
npm install- Create
.envfile with following variables:
PORT=3000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
- Run development server:
npm run dev- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request