Development of a College bus tracking App

Job ID: 39619861

Budget: ₹600 – ₹1,500 INR

College Bus Tracking App – Full System Architecture
OBJECTIVES
Enable real-time bus tracking for students and teachers.

Simplify route management for drivers.

Ensure role-based access and control with scalable college/domain setup.

Enable secure and verified user registration using college email domains.

Allow push notifications between users (e.g., students notifying drivers).

Support automated or manual approval based on email domain logic.

REQUIREMENTS
Tech Stack
Frontend: Flutter (Android & iOS)

Backend: Firebase

Firebase Authentication

Firestore Database

Firebase Cloud Functions

Firebase Cloud Messaging (FCM)

Maps: Google Maps API

Location: Flutter geolocator or location plugin

User Roles
Admin (manually created)

Bus Coordinator

Driver

Teacher

Student

FUNCTIONALITIES (Per Role)
Student
Register with college email (auto-approve with OTP) or await teacher approval

Track assigned bus via Google Maps

Notify driver ("Wait for me" button)

Receive real-time notifications

Teacher
Register with college email (auto-approved) or get approval from Admin/Coordinator

Track buses

Approve students (if needed)

Driver
Register → needs approval from Bus Coordinator

Set bus number, start point, end point, and stop points

Share real-time location while driving

Receive notifications from users

Bus Coordinator
Register and auto-create college if domain is valid

Approve drivers

Manage college info (name + domain)

Auto-approved if email domain matches .ac.in, else admin approval

Admin
View and manage all users

Approve coordinators (if needed)

Monitor college & route setup

USER REGISTRATION FLOW

+---------------------+
| User selects role |
+---------------------+
|
v
+---------------------+
| Enters email, name, |
| college, password |
+---------------------+
|
v
+--------------------------+
| Extract domain from email|
+--------------------------+
|
+-----+-----+
| Domain in allowedDomains?
| (Firestore -> /colleges/)
+-----+-----+
|Yes | No
v v
+-------------------+ +----------------------+
| Send OTP to email | | needsManualApproval = true
+-------------------+ | await approver role |
| +----------------------+
v
+------------------------+
| Verify OTP -> approved |
+------------------------+

PROJECT FOLDER STRUCTURE (Flutter)
/lib
├── main.dart
├── /auth
│ ├── login_screen.dart
│ ├── register_screen.dart
│ └── otp_verification.dart
├── /screens
│ ├── /student
│ │ └── student_dashboard.dart
│ ├── /teacher
│ │ └── teacher_dashboard.dart
│ ├── /driver
│ │ └── driver_dashboard.dart
│ ├── /coordinator
│ │ └── coordinator_dashboard.dart
│ └── /admin
│ └── admin_dashboard.dart
├── /services
│ ├── auth_service.dart
│ ├── firestore_service.dart
│ ├── location_service.dart
│ └── notification_service.dart
├── /models
│ ├── user_model.dart
│ ├── bus_model.dart
│ └── college_model.dart
├── /utils
│ └── constants.dart
├── /widgets
│ └── custom_input_field.dart
└── /helpers
└── role_checker.dart
SYSTEM FLOW DIAGRAM (ASCII)

+-----------------------+
| Flutter App (Client)|
+-----------+-----------+
|
v
+-----------------------+
| Firebase Auth |
+-----------+-----------+
|
v
+-----------------------+
| Firestore DB |
+-----------+-----------+
| +----------------------+
| | /users |
| | /colleges |
| | /buses |
| | /bus_locations |
| | /notifications |
+------------->----------------------+
|
v
+--------------------------+
| Firebase Cloud Functions |
| - Email Domain Checker |
| - OTP Handler |
| - Auto Approval Handler |
+--------------------------+

|
v
+--------------------------+
| Firebase Cloud Messaging |
+--------------------------+