Skip to content

Ndegwadavid/hovar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Hova - Cross-functional Navigation & Taxi Platform πŸš–πŸ—ΊοΈ

Hova is a modern, scalable cross-functional navigation application designed to help users easily hail taxis, find optimal routes, and track real-time locations. Drawing inspiration from popular ride-hailing apps like Uber, Hova offers a sleek and seamless experience with additional features that cater to both drivers and passengers.


Inspiration 🌟

The vision behind Hova is to create an all-in-one navigation platform that not only helps users get from point A to point B but also integrates real-time ride-hailing services, advanced geolocation tracking, and dynamic route optimization.

Our goal is to build a smarter, faster, and more reliable navigation and transportation solution, leveraging modern technologies and real-time APIs to provide users with an efficient and enjoyable experience.

Hova's core values:

  • Convenience: Simple and intuitive design for both drivers and passengers.
  • Reliability: Accurate location tracking and timely ride matching.
  • Security: End-to-end encryption and secure payment systems.

Navigation Gif
Example of Navigation Flow in Hova (demo gif)


Projected Hova System Structure πŸ“

Before we begin building Hova, here is an overview of the projected system structure and the components that will interact within the platform.

Key Components:

  • Frontend (Web App): Provides the user interface for both drivers and passengers. Built with ReactJS and handles all user interactions, such as registration, ride requests, and location tracking.
  • Backend (Server): Powered by Django and handles all business logic, user management, ride matching, payment processing, and database management.
  • Database: PostgreSQL for storing user, driver, and ride data. Scalable with the potential to grow as the platform expands.
  • Location Tracking & Navigation: Google Maps API for routing, location tracking, and real-time navigation. Additional third-party services may be integrated for route optimization.
  • Payment Gateway: Stripe or PayPal will handle secure transactions for ride payments.
  • Real-Time Communication: Socket.io/WebSockets will be used for live location tracking, notifications, and communication between drivers and passengers.
  • Push Notifications: Firebase will handle push notifications to alert users of ride status, promotions, etc.

Diagram of System Structure:

System Architecture Diagram
Projected architecture for Hova's backend, frontend, and communication systems.


Tech Stack πŸ› οΈ

Web Application:

  • Frontend: ReactJS, Redux
  • Backend: Django, Python
  • Database: PostgreSQL
  • APIs: Google Maps API, Firebase, Payment Gateway (Stripe/PayPal)
  • Authentication: JWT Authentication
  • Real-Time Location Tracking: Socket.io
  • Cloud Infrastructure: AWS, Docker
  • Testing: Jest, Cypress

Table: Web Tech Stack Overview

Component Technology Purpose
Frontend ReactJS, Redux User Interface and State Management
Backend Django, Python Backend Logic & Database Handling
Database PostgreSQL Store User and Ride Data
Authentication JWT, Firebase Secure User Authentication
Geolocation & Maps Google Maps API Navigation and Map Rendering
Payment Processing Stripe/PayPal Handle Payments and Transactions
Real-time Location Socket.io, WebSockets Real-time Ride Tracking & Notifications
Cloud Infrastructure AWS, Docker Scalable Hosting & Containerization

Mobile App πŸš²πŸ“±

The Hova Mobile App is designed to provide a seamless ride-hailing experience directly from your smartphone. While the web application will serve as the primary interface for users accessing the platform on their desktops or laptops, the mobile app will be built for iOS and Android users, providing them with on-the-go access to the platform’s services.

Mobile App Features:

  • Driver & Passenger Registration: Users can easily create an account or log in using their credentials.
  • Ride Booking: Passengers can book rides, track drivers, and receive notifications when a driver is nearby.
  • Real-time GPS Navigation: Passengers and drivers receive real-time updates and navigation using Google Maps API.
  • In-App Payments: Secure transactions using integrated payment systems like Stripe or PayPal.
  • Push Notifications: Users receive notifications for ride updates, arrival times, and promotions.
  • Rating & Reviews: Passengers can rate drivers after each ride, ensuring quality service on both ends.
  • Real-time Location Tracking: Passengers can track their ride in real-time on the map.

Expected Tech Stack for Mobile App:

The mobile app will be built using a cross-platform framework to support both iOS and Android devices. We are using React Native for its ability to provide native-like performance while maintaining a shared codebase.

  • Framework: React Native
  • Mobile Navigation: React Navigation
  • State Management: Redux (for consistent state across the app)
  • API Integration: Axios (to communicate with the Django backend)
  • Geolocation & Maps: Google Maps API, React Native Maps
  • Push Notifications: Firebase Cloud Messaging (FCM)
  • Payment Integration: Stripe API, PayPal API
  • Authentication: Firebase Authentication
  • Real-time Communication: Socket.io (for real-time updates)

Table: Mobile Tech Stack Overview

Component Technology Purpose
Framework React Native Cross-platform mobile app development
Navigation React Navigation Mobile app routing and navigation
State Management Redux Global state management across app
Geolocation React Native Maps, Google Maps API Display maps and provide navigation
Payment Gateway Stripe, PayPal In-app secure payment processing
Push Notifications Firebase Cloud Messaging (FCM) Alerts and notifications for users
Authentication Firebase Auth Secure user authentication
Real-time Tracking Socket.io Real-time location updates

Features ✨

1. Authentication

Secure user login and registration using JWT authentication. Drivers and passengers can register, sign in, and access their profiles seamlessly.

Example Code (ReactJS for login):

// React - Handling User Login
const handleLogin = async (email, password) => {
  try {
    const response = await axios.post('/api/auth/login', { email, password });
    localStorage.setItem('token', response.data.token); // Store JWT
  } catch (error) {
    console.error("Login failed:", error);
  }
};

2. Real-time Location Tracking πŸ›°οΈ

Hova supports real-time location tracking, ensuring users and drivers are always updated with the current location, estimated time of arrival (ETA), and route progress. It also features:

  • Real-time vehicle tracking
  • Live map updates
  • Instant notifications for both riders and drivers

Location Update Flow:

  • WebSockets/Socket.io: Provides continuous and low-latency communication between the client and server, ensuring live updates for location.

Real-time Location Tracking Gif
Tracking the vehicle in real-time on Hova


3. Google Navigation APIs πŸ“

Hova leverages Google Maps API for:

  • Route optimization: Provides the most efficient routes considering traffic, distance, and ETA.
  • Traffic data integration: Avoids traffic jams and reroutes drivers accordingly.
  • Address auto-completion: Easily search for pickup/drop-off locations.

Sample Code (Backend - Python):

# Backend - Using Google Maps API for routing
import googlemaps

def get_route(start_location, end_location):
    gmaps = googlemaps.Client(key='GOOGLE_API_KEY')
    directions = gmaps.directions(start_location, end_location, mode="driving", avoid="ferries")
    return directions

4. Dynamic Ride Pricing πŸ’Έ

Hova uses dynamic pricing based on distance, traffic conditions, and demand. The Fare Calculation Model is designed to ensure fairness for both drivers and passengers.

Ride Distance (km) Base Fare ($) Price per km ($) Estimated Fare ($)
1 - 5 3.00 1.50 6.50
5 - 15 5.00 1.20 18.40
15 - 30 7.00 1.00 27.00

5. Driver Ratings & Reviews 🌟

Passengers can rate drivers after each ride, helping maintain quality and trust within the community. Ratings are calculated based on:

  • Driver professionalism
  • Vehicle cleanliness
  • Timeliness

6. Push Notifications πŸ””

Instant notifications are delivered to users for important events, such as:

  • Ride confirmations
  • Vehicle arrival updates
  • Ride status updates

Hova uses Firebase Cloud Messaging to push notifications.


Getting Started πŸš€

To set up Hova locally, follow these steps:

Clone the repository:

git clone https://github.com/Ndegwadavid/hova.git
cd hova

Backend Setup (Django):

  1. Navigate to the backend folder and install dependencies:
cd backend
pip install -r requirements.txt
  1. Run database migrations:
python manage.py migrate
  1. Start the Django development server:
python manage.py runserver

Frontend Setup (React):

  1. Navigate to the frontend folder and install dependencies:
cd frontend
npm install
  1. Start the React development server:
npm start

Now, access Hova at http://localhost:3000 (frontend) and http://localhost:8000 (backend).


Contribution 🀝

We are always open to new ideas and contributions to make Hova better! Here's how you can contribute:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-name).
  3. Implement your feature or fix.
  4. Commit your changes (git commit -am 'Add feature').
  5. Push your changes to your fork (git push origin feature-name).
  6. Create a pull request to the main branch of this repository.

We encourage you to follow our Contribution Guidelines.


Creators & Authors πŸ‘¨β€πŸ’»

David Njoroge
Founder & Lead Developer
LinkedIn
GitHub

Feel free to reach out for any questions, collaboration, or feedback at:
πŸ“§ Email 1: [email protected]
πŸ“§ Email 2: [email protected]


License πŸ“œ

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


Thank you for exploring Hova! We hope you enjoy navigating with us πŸš—πŸ’¨

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published