Skip to content

Repository files navigation

LifeRide πŸš‘

FastAPI Go React Redux Toolkit PostgreSQL PostGIS Docker Nginx License: MIT

LifeRide Banner

Every Second Counts. Every Life Matters.

LifeRide is a cutting-edge emergency medical transportation platform connecting patients with ambulances in real-time.
Explore the API Β»

Quick Start Β· Features Β· Report Bug Β· Request Feature Β· Devlogs

Maintenance License Issues

SonarCloud Analysis

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Code Smells Coverage

πŸ₯ About LifeRide

LifeRide Banner

LifeRide is revolutionizing emergency medical transportation by leveraging modern technology to save lives. Our platform seamlessly connects patients with the nearest available ambulances through an intuitive interface, providing real-time tracking, transparent pricing, and reliable service when it matters most.

Why LifeRide?

  • ⏱️ Reduced Response Time: Algorithmic matching of patients with the closest available ambulances
  • πŸ“ Precision Location: Accurate GPS tracking for both patients and drivers
  • πŸ’° Transparent Pricing: Clear cost estimates before booking
  • πŸ”„ Real-time Updates: Live tracking and status notifications
  • πŸ’² Price Bidding System: Negotiate fares directly with drivers for non-emergency transport
  • ⭐ Quality Assurance: Post-service rating system for continuous improvement

Key Metrics

Adaptive

Search Radius

24/7

Service Availability

100%

Secure Transactions

Bidding

Fare Negotiation

πŸ“‹ Table of Contents

πŸ‘₯ Team

Core Developers

Role Name GitHub
Team Leader Imdad Rakib GitHub
Developer SA-K1B GitHub
Developer IAmAreza GitHub

Project Mentor

  • Shakil Shahan - GitHub

πŸš€ Project Overview

LifeRide is a comprehensive web-based platform designed to revolutionize emergency medical transportation by connecting users with nearby ambulance drivers in real-time. The system leverages Google Maps API integration and real-time notifications to provide a seamless experience during medical emergencies when every second counts.

Key Goals

  • Reduce ambulance response time in emergencies
  • Provide transparent pricing and ETA information
  • Create a reliable platform for medical transport
  • Enable real-time tracking and communication

🌐 Live Demo

Experience LifeRide in action by visiting our live demo:

Live Demo

Login Credentials

Role Email Password
Driver reza123@gmail.com 123456
User imdadraqib@gmail.com 123456

Explore the platform's features and see how it simplifies emergency medical transportation in real-time.

✨ Key Features

For Users πŸ‘€

  • Intuitive Profile Management: Create and manage your personal profile
  • Location-Based Services: View nearby available ambulances on a map
  • Route Planning: Add precise start and end locations for your journey
  • Transparent Information: View ETA and approximate price before booking
  • Seamless Booking: Request an ambulance with a single click
  • Quality Control: Rate drivers and provide feedback after service completion

For Drivers πŸš—

  • Professional Profiles: Create and manage driver profiles with vehicle details
  • Availability Management: Toggle availability status to control incoming requests
  • Request Handling: Accept or reject ride requests based on availability
  • Trip Control: Start, track, and end rides through an intuitive interface
  • Payment System: Manage payments and view earnings history

πŸ— System Architecture

Architecture Diagram

Architecture Diagram

Services Overview

Our platform uses a microservices architecture with the following key components:

Service Description
Location Service Tracks and manages real-time driver locations
Ambulance Finder Service Identifies available ambulances within proximity
Auth Service Handles user authentication and token validation
Trip Service Manages trip creation, updates, and completion
WebSocket Service Facilitates real-time communication between users and drivers

System Flow Diagram

System Flow Diagram

Operational Flow Explained

  1. User Request Initiation πŸ“±

    • User specifies start and end locations through the app interface
  2. Proximity-Based Ambulance Search πŸ”

    • The Ambulance Finder Service locates available drivers within a 2km radius
  3. Driver Notification System πŸ“£

    • Available drivers receive notifications and can accept or decline
  4. Trip Commencement 🚦

    • Upon acceptance, real-time tracking is activated via Google Maps API
  5. Real-Time Updates πŸ“Š

    • Users receive continuous updates on driver location, ETA, and trip status
  6. Service Completion and Feedback πŸ’―

    • Post-trip payment processing and driver rating system activation

πŸ“Š Database Design

The ER diagram illustrates our relational database structure, showing the relationships between users, drivers, trips, and other key entities.

ER Diagram

Deployment

All of our services are deployed on Render. We maintained standard CI/CD flow for deployment

CI/CD

πŸ“˜ API Documentation

We maintain comprehensive API documentation to facilitate integration and development.

Swagger

πŸ’» Tech Stack

Backend

  • FastAPI: High-performance Python framework for building APIs
  • Go: Used for performance-critical microservices
  • WebSockets: For real-time bidirectional communication

Frontend

  • React: JavaScript library for building user interfaces
  • Redux: State management for the application
  • Google Maps API: For mapping, routing, and location services

Infrastructure

  • PostgreSQL: Relational database for storing application data
  • Nginx: Load balancer for distributing traffic
  • Docker: Containerization for consistent development and deployment
  • CI/CD: Automated testing and deployment pipelines

πŸ› οΈ Development Logs

Stay updated with our progress and insights by visiting our development logs:

DevLogs

🏁 Getting Started

Follow these steps to set up the development environment:

# Clone the repository
git clone https://github.com/your-organization/liferide.git

# Navigate to project directory
cd liferide

# Install dependencies
# For frontend
cd frontend && docker compose up --build frontend

# For backend services
# Follow instructions in respective service directories

πŸ“ Development Guidelines

This project is structured as a monorepo containing multiple microservices. For detailed setup instructions:

  1. Navigate to the specific service directory
  2. Follow the README instructions within each service folder
  3. Adhere to the coding standards and contribution guidelines

πŸ§ͺ Testing

We enforce rigorous testing standards for all components:

# Create coverage reports directory
mkdir -p <service-name>/coverage-reports

# Run tests using Docker
cd <service-name>
docker compose -f docker-compose.dev.yml up --build <service-name>-test

# Example for auth service
cd auth-service
docker compose -f docker-compose.dev.yml up --build auth-service-test

πŸ“š Resources

🀝 Contributing

We welcome contributions from the community! Please review our Contributing Guidelines before submitting pull requests.

πŸ“„ License

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


Made with ❀️ by the LifeRide Team

Releases

Packages

Contributors

Languages