Development of a College bus tracking App
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 |
+--------------------------+
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 |
+--------------------------+