Skip to content

Pelino-Courses/module-1-safeboda-phase-1-Elizabeth474

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SafeBoda Rwanda - Digitizing urban mobility

Project Description

SafeBoda Rwanda is a web application aimed at improving urban mobility in Rwanda. The application addresses key challenges such as unreliable transport access, lack of driver accountability, and inefficient ride coordination. By digitizing the ride request process, SafeBoda aims to offer a safer, more organized, and user-friendly experience for both riders and drivers.

Problems to solve

For Passengers:

  • Health and safety risks due to unlicensed drivers and untrained drivers.
  • Inconsistent fare negotiation.
  • Lack of trip tracking.
  • Poor Punctuality and Unreliable Schedules.
  • Limited payment options.

For drivers:

  • Difficulty in building reputation and trust
  • Lack of job security and consistent income
  • High Operational Costs and Unpredictable Expenses
  • No digital presence or customer management tools

Our Vision

To create a safer, more reliable, and formalized moto-taxi ecosystem that benefits both riders and drivers, while contributing to improved urban mobility in Rwanda.

User Roles

Passenger

Needs and expectations:

  • Safety through licensed and verified drivers.
  • Punctuality and reliablity
  • Multiple payment options (cash, mobile money, card)
  • Transparent and predictable pricing
  • Driver ratings and reviews
  • Real-time trip tracking for safety

Driver

Requirements and motivation

  • Safety and security while working

  • Trip and Customer Management Tools

  • Consistent Income

  • Verified platform to build reputation

  • Access to financial services and insurance

    Feature 1: User Authentication

User Story (Passenger): "As a Passenger, I want to create an account using my phone number and email so that I can book safe and reliable moto or taxis."

User Story (Driver): "As a Driver, I want to register with my driver's license, vehicle registration details, and national identification so that I can be verified and start accepting rides."

Feature 2: Ride Request

User Story (Passenger): "As a Passenger, I want to request a ride by entering my pickup and destination locations so that I can get matched with nearby available drivers."

User Story (Driver): "As a Driver, I want to see nearby ride requests and accept them based on my location and preferences so that I can maximize my earnings."

Feature 3: Real-time Map View

User Story (Passenger): "As a Passenger, I want to see my driver's real-time location and estimated arrival time on a map so that I can plan accordingly."

User Story (Driver): "As a Driver, I want turn-by-turn navigation to the pickup location and destination so that I can provide efficient service."

Feature 4: Trip History

User Story (Passenger): "As a Passenger, I want to view my past trips with details like date, route, and fare so that I can track my transportation expenses."

User Story (Driver): "As a Driver, I want to see my earnings history and completed trips so that I can do my management effectively."

Feature 5: Driver ratings

User Story (Passenger): "As a Passenger, I want to rate my driver and provide feedback after each ride so that I can help maintain service quality."

User Story (Driver): "As a Driver, I want to be rated by passengers and build a reputation so that I can attract more customers."

Architecture Diagram (Mermaid Syntax)

flowchart LR %% Frontend A[React (Frontend Client)]

%% Backend
subgraph Backend["Django (Backend Server / API)"]
    D[Django REST API]
    E[Authentication]
    F[Ride Management]
    G[Payment Processing]
end

%% Database
subgraph Database["PostgreSQL Database"]
    H[PostgreSQL]
    I[User Data]
    J[Trip Records]
    K[Payment Records]
end

%% Connections
A -->|HTTP / REST Requests| D
D --> E
D --> F
D --> G

E -->|SQL / ORM| I
F -->|SQL / ORM| J
G -->|SQL / ORM| K

I -->|Query Results| E
J -->|Query Results| F
K -->|Query Results| G

D -->|JSON Responses| A

Project structure

At this step we are going to configure frontend and backend related files. First we will create the folders (backend and frontend) separately.

Backend setup

  1. Navigate to backend directory cd backend

  2. Create and activate virtual environment python -m venv Myvenv Myvenv\Scripts\activate

  3. Install Python dependencies pip install django djangorestframework psycopg2 pip freeze > requirements.txt

Frontend Setup

  1. Navigate to frontend directory cd frontend

  2. Initialize React + TypeScript project npm create vite@latest . -- --template react-ts

About

module-1-safeboda-phase-1-Elizabeth474 created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published