Updated Document
Updated Document
Submitted By
A.Y. 2025-26
1
School of Computer Science & Engineering
RECOMMENDATION
This is to certify that the work embodied in this Project entitled “Road accident reporting system”
being submitted by “Ronita kumari(23205011007), Chanchal kumari(230205011026), Sapna
gupta(230205011026)” in partial fulfillment of the requirement for the award of Bachelor in
Computer Application to School of Computer Science & Engineering, Sandip University,
Madhubani during the academic year 2025-26 is a record of bonafide piece of work, carried out
by him under my supervision and guidance.
Forwarded by
2
School of Computer Science & Engineering
CERTIFICATE
The Project entitled “Road accident reporting system” being submitted by “Ronita kumari
(23205011007), Chanchal kumari (230205011026), Sapna gupta (230205011026)” has been
examined by us and is here by approved for the award of degree Bachelor in Computer
Application in School of Computer Science & Engineering, for which it has been submitted. It
is understood that by this approval the undersigned do not necessarily endorse or approve any
statement made, opinion expressed or conclusion drawn therein but approve the dissertation only
for the purpose for which it has been submitted.
3
School of Computer Science & Engineering
DECLARATION
I hereby declare that the work, which is being presented in the dissertation, entitled “Road
accident reporting system”, partial fulfillment of the requirements for the award of degree of
Bachelor in Computer Application submitted in the School of Computer Science &
Engineering (Sandip University, Madhubani) is an authentic record of my own work carried
under the guidance of “Prof. Ratneshwar Kumar Singh”. I have not submitted the matter embodied
in this report for award of any other degree.
4
ACKNOWLEDGEMENT
I take the opportunity to express my cordial gratitude to “Prof Pranav Bhaskar”, Assistant
Professor in the School of Computer Science & Engineering, Sandip University, Madhubani
for the valuable guidance and inspiration throughout the dissertation work. I feel thankful for
his innovative ideas, which led to successful completion of this work.
I give special thanks to Dr. Brajesh Kumar, Associate Dean, School of Computer Science &
Engineering, Sandip University, Madhubani to always being willing to help find solutions to any
problems I had with my work.
I would also like to thanks Mr. Mandan Mishra, HOD, Computer Application, Sandip
University, Madhubani for providing additional guidance and insight into my research work.
Lastly but not least I must express my heartfelt thanks to my parent, family members and friends
who gave me the moral support without which it was impossible to complete my project work.
With this note I thank everyone for the support.
“Ronita kumari
Chanchal kumari
Sapna gupta”
5
INDEX
02 Abstract 1
03 Chapter 1: Introduction
Background 2-7
Impotence and relevance
04 Chapter 2: Literature Review
Research papers
Summary of existing work 8 - 14
Comparative analysis
Identification of research gap
ii
08 Chapter 6: Implementation
Tools and technologies used
Hardware and software requirements
Dataset description
32 - 63
Coding approach / modules
Screenshots of implementation
iii
LIST OF FIGURES
02 Architecture Diagram 24
03 Flowchart 25
04 Login screen 60
05 Registration screen 61
09 Notification screen 63
10 Performance graph 66
iv
Abstract
Road accidents are a major public safety concern across the world and result in a large number
of injuries and fatalities every year. One of the biggest challenges in accident situations is the
delay in reporting the incident and providing immediate medical assistance to victims. In many
cases, accident victims do not receive timely help because the accident location is not reported
quickly or accurately to emergency services. With the advancement of mobile technology and
internet connectivity, it has become possible to develop smart systems that can improve accident
reporting and emergency response.
The Road Accident Reporting System is a mobile-based application designed to enable users
to report accidents quickly and efficiently using their smartphones. The application allows users
to submit accident reports by capturing important information such as the accident location
through GPS, images of the accident scene, and a brief description of the incident. This
information is then transmitted to a centralized cloud database where it can be accessed by
emergency authorities such as police, ambulance services, and nearby hospitals.
The system is developed using Flutter, an open-source framework for building cross-platform
mobile applications, and Firebase, a cloud-based backend platform that provides services such
as authentication, real-time database storage, and cloud messaging. These technologies allow the
system to store accident reports securely and send real-time notifications to emergency responders.
One of the major advantages of this system is that it reduces the time required to inform authorities
about accidents. By automatically capturing GPS location data and storing accident information
in the cloud, the system ensures that emergency responders receive accurate and timely
information. This can significantly improve response times and help save lives.
Additionally, the system creates a centralized database of accident reports that can be used for
analysis and research. Authorities can study accident patterns, identify high-risk areas, and develop
better road safety policies based on the collected data.
Chapter 1: Introduction
1
i. Background of the Project
Road accidents have become a major global issue, causing a significant number of injuries and
fatalities every year. With the rapid increase in the number of vehicles, poor road conditions, lack
of traffic awareness, and violation of traffic rules, accidents are becoming more frequent.
According to various reports, a large percentage of accident victims lose their lives due to delays in
receiving timely medical assistance.
One of the main challenges in accident situations is the delay in reporting the incident to
emergency services. In many cases, victims are unable to contact authorities due to severe injuries,
while bystanders may not know how to report the accident properly or provide accurate location
details. Traditional methods of reporting accidents, such as phone calls to emergency helplines, are
often inefficient and time-consuming. These methods rely heavily on manual communication,
which can lead to confusion, incorrect information, and delayed response.
With the advancement of mobile technology, GPS, and internet connectivity, it has become
possible to develop smart solutions that can improve accident reporting systems. Smartphones are
now widely used and come equipped with features such as location tracking, cameras, and internet
access, which can be utilized to create efficient reporting systems.
The Road Accident Reporting System is developed as a solution to these problems. It uses a
mobile application to allow users to report accidents instantly by capturing important details such
as GPS location, images, and descriptions. This information is sent to a centralized cloud database,
where it can be accessed by emergency services like police, ambulance, and hospitals.
The background of this project highlights the need for a modern, technology-driven solution to
reduce delays in accident reporting and improve emergency response time. By integrating mobile
applications with cloud computing and GPS technology, the system aims to enhance road safety
and save lives.
2
ii. Importance and Relevance of the Project
The Road Accident Reporting System is highly important and relevant in today’s world due to
the increasing number of road accidents and the need for faster emergency response systems. Road
safety has become a major concern, especially in developing countries where traffic density is high
and awareness of road rules is limited.
One of the primary reasons for the importance of this project is the ability to reduce the delay in
accident reporting. In many accident cases, victims do not receive immediate help due to a lack
of communication with emergency services. This system allows users to report accidents instantly,
ensuring that authorities are informed without delay.
Another important aspect is accurate location tracking. The use of GPS technology helps in
identifying the exact location of the accident, which eliminates confusion and helps emergency
responders reach the site quickly.
The project also plays a crucial role in saving lives. Faster reporting and response can significantly
reduce the number of fatalities and serious injuries caused by road accidents.
Additionally, the system helps in creating a centralized database of accident records. This data
can be used by authorities to analyze accident patterns, identify high-risk areas, and implement
better road safety measures.
The project is highly relevant in the modern digital era where smartphones and internet
connectivity are widely available. The use of mobile applications for solving real-world problems
has become very common, making this system practical and easy to implement.
3
The integration of technologies like Flutter, Firebase, GPS, and cloud computing makes the
system efficient and scalable. It aligns with the concept of smart cities and digital
transformation, where technology is used to improve public services and safety.
Moreover, the project is relevant for government authorities, traffic management departments,
hospitals, and emergency services, as it provides a reliable system for receiving real-time
accident information.
One of the most critical problems in accident scenarios is the delay in reporting the incident to
emergency services. In many cases, accident victims are unable to inform authorities due to severe
injuries, unconsciousness, or panic. Even when bystanders are present, they may not know how to
report the accident properly or may provide incorrect location details. This delay in communication
often results in late arrival of ambulance and police services, which can increase the severity of
injuries and even lead to loss of lives.
Traditional accident reporting systems mainly depend on manual methods, such as phone calls to
emergency helplines or police stations. These methods are often inefficient because they require
the caller to describe the accident location accurately, which can be difficult in unfamiliar areas.
Miscommunication and lack of precise information can further delay the response time of
emergency services.
Another major issue is the lack of a centralized system for storing and analyzing accident data.
Accident records are often maintained manually or in isolated systems, making it difficult for
authorities to identify accident-prone areas or analyze patterns. Without proper data analysis, it
becomes challenging to take preventive measures and improve road safety.
4
Therefore, there is a need for a modern, technology-based solution that can simplify accident
reporting, provide accurate location information, and ensure quick communication with emergency
services. The Road Accident Reporting System aims to address these challenges by providing a
mobile-based platform that enables real-time accident reporting, GPS-based location tracking, and
centralized data management.
The main objective of the Road Accident Reporting System is to develop a smart and efficient
mobile application that enables users to report road accidents quickly and accurately. The system
aims to improve emergency response time and enhance road safety using modern technologies.
Primary Objectives
Secondary Objectives
Technical Objectives
5
To implement the system using Flutter framework
To use Firebase services for authentication, storage, and database
To integrate GPS and location services
To ensure data security and reliability
Analytical Objectives
Current Scope
6
System Coverage
Limitations of Scope
7
Chapter 2: Literature Review
Research paper
The literature review provides an overview of existing research and technologies related to accident
detection, reporting systems, and emergency response solutions. Various researchers have
proposed systems using mobile applications, GPS, IoT, and artificial intelligence to improve road
safety and reduce response time.
A study proposed a mobile-based accident detection system that uses smartphones to detect accidents
and notify emergency contacts. The system automatically sends location coordinates and Google
Maps links to responders, helping them reach the accident site quickly. This approach reduces
delays in emergency communication and improves coordination among authorities.
Recent research suggests the use of machine learning algorithms along with GPS and accelerometer
sensors for detecting accidents. The system analyzes sensor data to identify crash conditions and
sends alerts to emergency services. The study highlights that machine learning improves accuracy
and reduces false alarms in accident detection systems.
8
This research focuses on using smartphone sensors such as accelerometers to detect accidents and
provide real-time location tracking. The system automatically informs emergency responders and
allows them to track the victim’s location. It significantly increases survival chances by reducing
response time.
A recent study introduced an AI-based system that integrates sensors, GPS, and cloud platforms
like Firebase to detect crashes and send instant notifications. The system provides real-time data
transmission and ensures low-latency communication, which is crucial for emergency response.
This research presents a system that integrates multiple modules such as user, ambulance, hospital,
and police. It uses GPS and sensors to detect accidents and ensures coordination between different
emergency services. The study shows that such systems can significantly reduce response time and
improve rescue operations.
In this study, IoT devices such as ESP32, tilt sensors, and accelerometers are used for detecting
accidents. The system uses Firebase for real-time communication and location tracking. It enables
authorities to monitor accidents and respond quickly, improving overall road safety.
9
This research combines IoT devices and mobile applications to automate accident detection and
emergency communication. The system eliminates dependency on manual reporting and ensures
automatic alerts with location data. It is considered a scalable and cost-effective solution for
modern road safety systems.
This study proposes a system that uses GPS and GSM technologies to detect accidents and send
alerts to nearby hospitals and police stations. The system provides location-based notifications and
helps emergency responders reach the accident site efficiently.
Modern research explores the use of computer vision and surveillance cameras to detect accidents
automatically. These systems analyze video data using AI algorithms and send alerts to authorities.
Such systems are highly useful in smart cities for real-time monitoring and accident prevention.
Another study proposes detecting accidents using CCTV cameras and machine learning
algorithms. The system uses vehicle tracking and collision detection techniques to identify
accidents and notify emergency services with location and time details.
10
Summary of Existing Work
The review of existing research and systems shows that several approaches have been developed to
improve accident detection and reporting. Most of the existing systems focus on using modern
technologies such as mobile applications, GPS, IoT devices, and artificial intelligence to reduce
response time and improve emergency services.
Many traditional systems rely on manual reporting methods, such as phone calls to police or
ambulance services. These methods are often slow and inefficient because they depend on the
ability of a person to communicate accurate information about the accident location and situation.
As a result, delays in emergency response are common.
Some advanced systems use sensor-based accident detection, where devices such as
accelerometers and gyroscopes detect sudden impacts and automatically trigger alerts. While these
systems reduce the need for manual reporting, they may sometimes produce false alarms due to
sudden braking or device movement.
Other studies focus on IoT-based systems, where sensors installed in vehicles detect accidents and
send alerts to emergency services using cloud platforms. These systems are efficient but require
additional hardware, making them costly and less accessible for common users.
Recent research also explores AI and computer vision-based systems, which use cameras and
machine learning algorithms to detect accidents automatically. These systems are mainly used in
smart city environments but require advanced infrastructure and high computational resources.
Overall, the existing work shows significant progress in accident detection and reporting
technologies. However, many systems face challenges such as high cost, dependency on hardware,
false alerts, and lack of user-friendly interfaces.
11
The proposed Road Accident Reporting System aims to address these limitations by providing a
simple, cost-effective, and mobile-based solution that combines GPS location tracking, image
uploading, and real-time communication using cloud technology.
Comparative Analysis
A comparative analysis is performed to evaluate the differences between the existing accident
reporting systems and the proposed Road Accident Reporting System. This helps in
understanding how the proposed system improves efficiency, accuracy, and usability.
Comparison Table
High (manual
User Involvement Simple and automated
communication)
Manual or scattered
Data Storage Centralized cloud database
records
12
Analysis of Comparison
From the above comparison, it is clear that the existing system has several limitations, such as slow
response time, lack of accurate location information, and absence of centralized data management.
These issues reduce the effectiveness of emergency response and increase the risk to accident
victims.
On the other hand, the proposed Road Accident Reporting System provides a modern, efficient,
and technology-driven solution. It uses GPS for accurate location tracking, cloud storage for
managing data, and real-time notifications to inform emergency services instantly.
The system also improves user experience by providing a simple interface for reporting accidents
and allows uploading images for better understanding of the situation. Additionally, the centralized
database helps authorities analyze accident patterns and take preventive measures
One major gap identified is the lack of a simple and user-friendly system. Many existing
solutions are complex and require technical knowledge or additional hardware devices such as
sensors and IoT modules. This makes them less accessible to the general public, especially in rural
or less- developed areas.
13
Another important gap is the dependence on specialized hardware in IoT-based systems. These
systems require installation of sensors in vehicles, which increases cost and limits scalability. As a
result, they are not widely adopted by common users.
Some systems focus on automatic accident detection using sensors or AI, but they often suffer
from false alarms due to sudden braking, device movement, or environmental factors. This
reduces the reliability of such systems.
Additionally, many existing systems lack real-time communication and integration with
emergency services. Even if an accident is detected or reported, the information may not reach
authorities immediately, leading to delays in response.
Another gap is the absence of a centralized and structured database in many traditional
systems. Without proper data storage and management, it becomes difficult for authorities to
analyze accident patterns and take preventive measures.
Furthermore, several applications do not support image uploading and detailed reporting, which
are essential for understanding the severity of accidents before reaching the site.
14
Chapter 3: System Analysis
The existing system for reporting road accidents primarily relies on traditional and manual methods,
which are often inefficient and time-consuming. These approaches depend heavily on human
involvement and lack the support of modern technology, leading to delays in emergency response.
The most common method of accident reporting is through phone calls to emergency helplines or
police stations. In this approach:
Limitations:
Delay in communication
Difficulty in explaining exact location
Possibility of incorrect or incomplete information
In many cases, accidents are reported directly to nearby police stations. The police then verify the
situation and take further action.
15
Limitations:
Time-consuming process
Depends on physical presence
No real-time data sharing
Limitations:
No centralized database
Difficult to access or analyze data
High chances of data loss or errors
Some systems use simple mobile communication like SMS or phone-based alerts.
Limitations:
Some advanced systems use sensors and IoT devices to detect accidents automatically.
Limitations:
In smart cities, CCTV cameras are used to monitor roads and detect accidents.
Limitations:
17
3.2 Limitations of Existing System
The existing accident reporting systems face several technical and practical limitations that affect
their efficiency, reliability, and usability in real-world situations.
1. Technical Limitations
Most traditional systems do not use GPS technology, resulting in inaccurate location information.
Emergency responders often depend on verbal descriptions, which can be misleading.
Existing systems do not support real-time data transmission, leading to delays in communication
between users and emergency services.
c) No Centralized Database
Accident data is often stored in manual records or isolated systems, making it difficult to access,
manage, or analyze information effectively.
18
d) Limited Use of Modern Technologies
Many systems do not utilize modern technologies such as cloud computing, mobile applications,
or AI, reducing their efficiency and scalability.
Some modern systems rely on IoT devices and sensors, which require additional hardware
installation. This increases complexity and cost.
2. Practical Limitations
The system relies heavily on manual reporting, which can lead to delays, especially when victims
are injured or unconscious.
Many people are unaware of how to report accidents or hesitate to take action, reducing the
effectiveness of the system.
c) Communication Barriers
In emergency situations, people may fail to provide clear and accurate information, leading to
confusion and delays.
19
d) Time-Consuming Process
Manual reporting methods take more time, which can delay emergency response and increase the
risk to victims.
e) Limited Accessibility
In remote or rural areas, access to emergency services may be limited, making it difficult to report
accidents quickly.
Advanced systems such as IoT or camera-based monitoring require high investment and
infrastructure, making them less practical for widespread use.
The proposed system, Road Accident Reporting System, is a mobile-based application designed
to overcome the limitations of existing accident reporting methods. It provides a fast, efficient,
and technology-driven solution for reporting accidents and improving emergency response.
The system allows users to report accidents instantly using a smartphone. It captures important
details such as GPS location, images, and accident description, and sends this information to a
centralized cloud database. Emergency services such as police, ambulance, and hospitals can
access this data in real time and respond quickly.
20
Key Features of Proposed System
21
6. User Authentication
7. User-Friendly Interface
22
Chapter 4: SYSTEM DESIGN
System design is the process of defining the architecture, components, modules, and data flow of the
system. It provides a clear structure of how the system will function and interact with users and
external services.
The system architecture describes how different components of the system interact with each other.
➤ Architecture Description
23
➤ Architecture Diagram
24
4.3 Flowchart
25
1. User Authentication Module
5. Notification Module
6. Database Module
26
CHAPTER 5: METHODOLOGY
The methodology defines the structured process followed to design, develop, and implement the Road
Accident Reporting System. It ensures that the system is developed in a systematic, efficient, and
reliable manner.
1. Requirement Analysis
2. System Design
3. Development
27
4. Integration
5. Testing
6. Deployment
1. Start
2. User opens the application
3. If user is not registered → Register
4. Else → Login
5. Display dashboard
6. User selects “Report Accident”
7. Input accident details
8. Capture GPS location
9. Upload image (optional)
10. Validate input data
11. Store data in database (Firebase)
12. Send notification to emergency services
28
13. Display confirmation message
14. End
2. Cloud Computing
4. Image Processing
5. Real-Time Notification
29
6. Data Validation Techniques
Input validation
Authentication validation
Let:
U = Set of users
R = Set of accident reports
L = Location data (latitude, longitude)
D = Database
N = Notification system
Function Representation:
f(U)=Rf(U) = Rf(U)=R R=(D,L,I)R = (D, L, I)R=(D,L,I)
Where:
D = Description
L = Location
I = Image
Meaning:
30
User input generates report
Report stored in database
Notification sent
31
CHAPTER 6: IMPLEMENTATION
The implementation phase involves converting the system design into a working application. In
this project, the Road Accident Reporting System is developed as a mobile application using
modern technologies such as Flutter and Firebase. This phase focuses on coding, integration of
modules, and deployment of the system.
The system is implemented as a mobile-based application that allows users to report accidents in
real time. The application interacts with Firebase cloud services for authentication, database
management, and storage. GPS technology is used to capture the exact location of the accident.
Frontend
Flutter framework
Dart programming language
Backend
Firebase Authentication
Firebase Firestore Database
Firebase Storage
Firebase Cloud Messaging (FCM)
32
Other Technologies
33
[Link] Software Description
2 Programming Language Dart
3 Framework Flutter SDK
Android
4 IDE Studio / VS
Code
The Road Accident Reporting System does not rely on a pre-existing dataset but generates
and stores data dynamically based on user input. The dataset is created in real time and stored
in a cloud database using Firebase.
1. User Data
User ID
Name
Email
Phone number
34
2. Accident Report Data
Report ID
Accident description
Type of accident (minor/major)
Date and time
3. Location Data
Latitude
Longitude
Address (optional)
4. Image Data
5. Notification Data
Alert messages
Timestamp
Receiver details
Data Storage
Stored in Firebase Firestore Database
Images stored in Firebase Storage
Data is organized in collections like:
o Users
o Reports
o Notifications
Data Characteristics
Real-time data
Structured format (JSON-like)
Secure and scalable
Easily retrievable
35
6.6 Code Implementation (Overview)
1. Update [Link]
YAML
name: accident_reporting_app
description: Road Accident Reporting System
dependencies:
flutter:
sdk: flutter
firebase_core: ^2.24.0
firebase_auth: ^4.14.0
cloud_firestore: ^4.13.0
firebase_storage: ^11.5.0
geolocator: ^9.0.2
image_picker: ^1.0.4
provider: ^6.2.0
intl: ^0.19.0
flutter_local_notifications: ^14.1.1
google_maps_flutter: ^2.5.0
uuid: ^4.0.0
dev_dependencies:
flutter_test:
sdk: flutter
36
import 'package:cloud_firestore/cloud_firestore.dart';
[Link]
lib/models/accident_report.dart:
Dart
class AccidentReport {
final String id;
final String userId;
final String userName;
final String userPhone;
final double latitude;
final double longitude;
final String location;
final DateTime reportedAt;
final String severity; // Low, Medium, High, Critical
final int vehicleCount;
final int injuredPeople;
final String description;
final List<String> imageUrls;
final String status; // Pending, Reported, Resolved
final String? policeReportNumber;
AccidentReport({ requir
ed [Link], required
[Link], required
[Link], required
[Link],
required [Link],
required [Link],
37
required [Link],
required [Link],
required [Link],
required [Link],
required [Link],
required [Link],
required [Link],
required [Link],
[Link],
});
38
userId: map['userId'] ?? '',
userName: map['userName'] ?? '',
userPhone: map['userPhone'] ?? '',
latitude: map['latitude']?.toDouble() ?? 0.0,
longitude: map['longitude']?.toDouble() ?? 0.0,
location: map['location'] ?? '',
reportedAt: (map['reportedAt'] as Timestamp).toDate(),
severity: map['severity'] ?? 'Medium',
vehicleCount: map['vehicleCount'] ?? 0,
injuredPeople: map['injuredPeople'] ?? 0,
description: map['description'] ?? '',
imageUrls: List<String>.from(map['imageUrls'] ?? []),
status: map['status'] ?? 'Pending',
policeReportNumber: map['policeReportNumber'],
);
}
}
lib/models/user_model.dart:
Dart
class UserModel
{ final String id;
final String name;
final String email;
final String phone;
final String bloodType;
final String emergencyContact;
final DateTime createdAt;
UserModel({ require
d [Link], required
[Link], required
[Link], required
[Link],
required [Link],
39
required [Link],
required [Link],
});
[Link]
lib/services/firebase_service.dart:
Dart
40
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_storage/firebase_storage.dart';
import '../models/accident_report.dart';
import '../models/user_model.dart';
class FirebaseService {
final FirebaseAuth _auth = [Link];
final FirebaseFirestore _firestore = [Link];
final FirebaseStorage _storage = [Link];
// Authentication
Future<UserCredential> signUp(String email, String password) async
{ return await _auth.createUserWithEmailAndPassword(
email: email,
password: password,
);
}
// User Profile
Future<void> createUserProfile(UserModel user) async {
await _firestore.collection('users').doc([Link]).set([Link]());
}
41
Future<UserModel?> getUserProfile(String userId) async {
final doc = await _firestore.collection('users').doc(userId).get();
return [Link] ? [Link]([Link]()!) : null;
}
// Accident Reports
Future<void> saveAccidentReport(AccidentReport report) async {
await _firestore
.collection('accident_reports')
.doc([Link])
.set([Link]());
}
Stream<List<AccidentReport>> getAllAccidentReports() {
return _firestore
.collection('accident_reports')
.orderBy('reportedAt', descending: true)
.snapshots()
.map((snapshot) {
return [Link]
42
.map((doc) => [Link]([Link]()))
.toList();
});
}
// Image Upload
Future<String> uploadAccidentImage(String reportId, String imagePath) async {
final ref =
_storage.ref('accident_reports/$reportId/${[Link]().millisecondsSinceEpoch}.jpg');
await [Link](File(imagePath) as dynamic);
return await [Link]();
}
// Current User
User? getCurrentUser() {
return _auth.currentUser;
}
}
lib/services/location_service.dart:
Dart
import 'package:geolocator/[Link]';
import 'package:geocoding/[Link]';
class LocationService {
Future<Position> getCurrentLocation() async {
bool serviceEnabled;
43
LocationPermission permission;
Future<String> getAddressFromCoordinates(
double latitude,
double longitude,
) async
{ try {
List<Placemark> placemarks =
await placemarkFromCoordinates(latitude, longitude);
if ([Link]) {
Placemark place = placemarks[0];
return '${[Link]}, ${[Link]}, ${[Link]}';
}
return '$latitude, $longitude';
44
} catch (e) {
return '$latitude, $longitude';
}
}
}
lib/services/camera_service.dart:
Dart
import 'package:image_picker/image_picker.dart';
class CameraService {
final ImagePicker _imagePicker = ImagePicker();
45
[Link] App
lib/[Link]:
Dart
import 'package:flutter/[Link]';
import 'package:firebase_core/firebase_core.dart';
import 'package:provider/[Link]';
import 'firebase_options.dart';
import 'screens/splash_screen.dart';
import 'screens/home_screen.dart';
await [Link](
options: [Link],
);
runApp(const MyApp());
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Accident Reporting System',
theme:
ThemeData( primarySwatch:
[Link], useMaterial3: true,
),
46
home: const SplashScreen(),
);
}
}
[Link] Screens
lib/screens/report_accident_screen.dart:
Dart
import 'package:flutter/[Link]';
import 'package:uuid/[Link]';
import 'package:image_picker/image_picker.dart';
import '../models/accident_report.dart';
import
'../services/firebase_service.dart';
import
'../services/location_service.dart';
import '../services/camera_service.dart';
@override
State<ReportAccidentScreen> createState() => _ReportAccidentScreenState();
}
47
final TextEditingController _descriptionController = TextEditingController();
@override
void initState() {
[Link]();
_getCurrentLocation();
}
setState(() {
_latitude = [Link];
_longitude = [Link];
_address = address;
});
} catch (e) {
[Link](context).showSnackBar( Sna
ckBar(content: Text('Location Error: $e')),
);
}
48
}
try {
final user = _firebaseService.getCurrentUser();
if (user == null) throw Exception('User not authenticated');
// Upload images
for (XFile image in _selectedImages) {
final url = await
_firebaseService.uploadAccidentImage( reportId,
[Link],
);
49
[Link](url);
}
// Create report
final report = AccidentReport(
id: reportId,
userId: [Link],
userName: _nameController.text,
userPhone: _phoneController.text,
latitude: _latitude!,
longitude: _longitude!,
location: _address ?? 'Unknown
Location', reportedAt: [Link](),
severity: _selectedSeverity,
vehicleCount: _vehicleCount,
injuredPeople: _injuredCount,
description: _descriptionController.text,
imageUrls: imageUrls,
status: 'Pending',
);
await _firebaseService.saveAccidentReport(report);
[Link](context).showSnackBar( c
onst SnackBar(
content: Text('Report submitted successfully!'),
backgroundColor: [Link],
),
);
[Link](context);
} catch (e) {
[Link](context).showSnackBar( S
nackBar(content: Text('Error: $e')),
50
);
} finally {
setState(() => _isLoading = false);
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Report Accident'),
elevation: 0,
),
body: SingleChildScrollView(
child: Padding(
padding: const [Link](16.0),
child: Form(
key:
_formKey,
child: Column(
children: [
// Location
Info Card(
child: Padding(
padding: const [Link](12.0),
child: Column(
crossAxisAlignment: [Link],
children: [
const Text(
'Accident Location',
style: TextStyle(
fontWeight: [Link],
fontSize: 16,
),
51
),
52
const SizedBox(height: 8),
Text(
_address ?? 'Getting location...',
style: const TextStyle(fontSize: 14),
),
],
),
),
),
// User Information
TextFormField(
controller: _nameController,
decoration: InputDecoration(
labelText: 'Your Name',
border: OutlineInputBorder(
borderRadius: [Link](8),
),
prefixIcon: const Icon([Link]),
),
validator: (value) =>
value?.isEmpty ?? true ? 'Name is required' : null,
),
const SizedBox(height: 12),
TextFormField(
controller: _phoneController,
decoration: InputDecoration(
labelText: 'Phone Number',
border: OutlineInputBorder(
borderRadius: [Link](8),
),
prefixIcon: const Icon([Link]),
53
),
keyboardType: [Link],
validator: (value) =>
value?.isEmpty ?? true ? 'Phone is required' : null,
),
const SizedBox(height: 16),
54
// Severity Level
Text(
55
'Accident Severity',
style: [Link](context).[Link],
),
const SizedBox(height: 8),
DropdownButton<String>( valu
e: _selectedSeverity,
isExpanded: true,
items: ['Low', 'Medium', 'High', 'Critical']
.map((severity) => DropdownMenuItem(
value: severity,
child: Text(severity),
))
.toList(),
onChanged: (value) {
setState(() => _selectedSeverity = value!);
},
),
const SizedBox(height: 16),
// Vehicle Count
Text(
'Vehicles Involved: $_vehicleCount',
style: [Link](context).[Link],
),
Slider(
value: _vehicleCount.toDouble(),
min: 1,
max: 10,
divisions: 9,
onChanged: (value) {
setState(() => _vehicleCount = [Link]());
},
),
const SizedBox(height: 16),
56
// Injured Count
Text(
'People Injured: $_injuredCount',
style: [Link](context).[Link],
),
Slider(
value: _injuredCount.toDouble(),
min: 0,
max: 20,
divisions: 20,
onChanged: (value) {
setState(() => _injuredCount = [Link]());
},
),
const SizedBox(height: 16),
// Description
TextFormField(
controller: _descriptionController,
decoration:
InputDecoration( labelText:
'Description of Accident', border:
OutlineInputBorder(
borderRadius: [Link](8),
),
hintText: 'Describe what happened...',
),
maxLines: 4,
validator: (value) => value?.isEmpty ?? true
? 'Description is required'
: null,
),
const SizedBox(height: 16),
57
// Image Upload
[Link]( onPres
sed: _pickImages,
icon: const
Icon(Icons.camera_alt), label:
const Text('Upload Photos'), style:
[Link](
minimumSize: const Size([Link], 48),
),
),
if (_selectedImages.isNotEmpty)
Padding(
padding: const [Link](top: 12),
child: Text(
'Photos selected: ${_selectedImages.length}',
style: const TextStyle(color: [Link]),
),
),
const SizedBox(height: 24),
// Submit Button
ElevatedButton(
onPressed: _isLoading ? null :
_submitReport, style:
[Link]( minimumSize:
const Size([Link], 50),
backgroundColor: [Link],
),
child: _isLoading
? const SizedBox(
height: 20,
width: 20,
child: CircularProgressIndicator(
strokeWidth: 2,
58
valueColor:
AlwaysStoppedAnimation<Color>([Link]),
59
),
)
: const Text(
'SUBMIT REPORT',
style: TextStyle(fontSize: 16),
),
),
],
),
),
),
),
);
}
@override
void dispose()
{
_nameController.dispose();
_phoneController.dispose();
_descriptionController.dispose();
[Link]();
}
}
lib/screens/home_screen.dart:
Dart
import 'package:flutter/[Link]';
import '../services/firebase_service.dart';
import 'report_accident_screen.dart';
import 'my_reports_screen.dart';
60
@override
61
State<HomeScreen> createState() => _HomeScreenState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Accident Reporting'),
elevation: 0,
actions: [
IconButton(
icon: const Icon([Link]),
onPressed: () async {
await _firebaseService.logout();
[Link](context, '/login');
},
),
],
),
body: Center(
child: Column(
mainAxisAlignment: [Link],
children: [
const Icon([Link], size: 80, color: [Link]),
const SizedBox(height: 24),
const Text(
'Road Accident Reporting',
style: TextStyle(fontSize: 24, fontWeight: [Link]),
),
const SizedBox(height: 32),
[Link](
62
onPressed: () {
[Link]( contex
t, MaterialPageRoute(
builder: (context) => const ReportAccidentScreen(),
),
);
},
icon: const Icon(Icons.add_circle_outline, size: 28),
label: const Text('Report New Accident'),
style:
[Link]( background
Color: [Link], minimumSize: const
Size(280, 56), textStyle: const
TextStyle(fontSize: 16),
),
),
const SizedBox(height: 16),
[Link]( onPr
essed: () {
[Link]( contex
t, MaterialPageRoute(
builder: (context) => const MyReportsScreen(),
),
);
},
icon: const Icon([Link]),
label: const Text('My Reports'),
style:
[Link]( minim
umSize: const Size(280, 56),
),
),
],
),
63
),
);
}
}
[Link] Permissions
Update android/app/src/main/[Link]:
XML
<uses-permission android:name="[Link].ACCESS_FINE_LOCATION" />
<uses-permission android:name="[Link].ACCESS_COARSE_LOCATION" />
<uses-permission android:name="[Link]" />
<uses-permission android:name="[Link].READ_EXTERNAL_STORAGE" />
<uses-permission android:name="[Link].WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="[Link]" />
bash
flutter clean
flutter pub get
flutterfire configure --project=your-project-id
flutter run
64
6.6 Screenshot of implementation
1. Login Screen
65
2. Registration Screen
66
4. Accident Reporting Screen
67
5. GPS / Map Screen
6. Notification Screen
68
CHAPTER 7: RESULTS AND DISCUSSION
The output of the Road Accident Reporting System is generated in real time based on user input.
The system successfully performs the following operations:
Sample Output
Performance Metrics
Metric Description
69
Proposed
Metric Existing System
System
Low
Response Time High (Slow)
(Fast)
Accuracy Low High
Data Handling 4 9
User Ease 5 9
Performance Graph
Explanation
The graph shows that the proposed system performs significantly better than the existing system in
terms of response time, accuracy, reliability, and usability. The use of GPS and cloud technology
improves overall system efficiency.
70
71
CHAPTER 8: ADVANTAGES AND LIMITATIONS
This chapter discusses the benefits and drawbacks of the proposed Road Accident Reporting
System. It highlights how the system improves existing methods while also identifying its
limitations.
The Road Accident Reporting System offers several advantages over traditional accident reporting
methods.
3. Real-Time Notification
72
Stores all reports in cloud database (Firebase)
Easy to access and manage data
5. User-Friendly Interface
7. Cost-Effective Solution
1. Internet Dependency
4. Limited Integration
5. Device Dependency
74
8.4 Drawbacks / Constraints
75
Chapter 9: Conclusion
The Road Accident Reporting System has been successfully designed and implemented as a mobile-
based application aimed at improving accident reporting and emergency response. This project
addresses the major challenges faced in traditional accident reporting systems, such as delays,
inaccurate location information, and lack of centralized data management.
In this project, a comprehensive system was developed using modern technologies such as Flutter,
Firebase, and GPS services. The system allows users to report accidents in real time by providing
details such as accident description, images, and location data.
The system was successfully implemented and tested, demonstrating its ability to provide fast and
reliable accident reporting.
The objectives defined at the beginning of the project were successfully achieved:
76
Real-Time Accident Reporting
The system allows users to report accidents instantly through the mobile application
Improved Communication
User-Friendly Interface
The system performs reliably with fast response time and accurate data handling
The proposed Road Accident Reporting System provides a smart, efficient, and cost-effective
solution for accident reporting. It reduces delays, improves accuracy, and enhances emergency
response.
77
Although the system has some limitations such as dependency on internet connectivity and manual
reporting, it still represents a significant improvement over traditional methods.
The results and discussion section presents the outcomes of the implemented system and analyzes
its performance, effectiveness, and usability in real-world scenarios.
using Flutter, which allows developers to build cross-platform mobile applications with high
performance and attractive user interfaces.
The mobile application includes several key modules such as user registration, login
authentication, accident reporting, image uploading, and location tracking. These modules work
together to provide a smooth and user-friendly experience.
The backend of the system is powered by Firebase, which provides several cloud-based services
including authentication, cloud storage, and Fire store database. Firebase Authentication ensures
secure login and registration for users. The Fire store database stores accident reports, user
details, and notification data.
The system also integrates GPS services to capture the exact location of the accident. When a
user reports an accident, the application automatically retrieves the latitude and longitude
coordinates of the location. This information is stored in the database along with the accident
report.
Additionally, the system includes a notification mechanism that sends alerts to emergency
services such as police stations, hospitals, and ambulance services. This ensures that authorities
receive accident reports in real time and can respond quickly.
Overall, the system design ensures efficient data flow, secure data storage, and fast
communication between users and emergency responders.
78
CHAPTER 10: FUTURE SCOPE
The Road Accident Reporting System provides a strong foundation for improving accident
reporting and emergency response. However, with advancements in technology, the system can be
further enhanced to make it more intelligent, automated, and efficient.
➤ 2. AI-Based Analysis
➤ 3. Offline Functionality
79
➤ 4. Improved GPS Accuracy
➤ 5. Enhanced Security
➤ 3. Multi-Language Support
80
➤ 4. Live Traffic Monitoring
➤ 3. Predictive Analytics
81
➤ 4. Blockchain for Data Security
Technology Stack
The Road Accident Reporting System uses several modern technologies to build a reliable and
efficient mobile application. These technologies help ensure smooth performance, secure data
storage, and real-time communication between users and emergency services.
One of the main technologies used in this project is Flutter. Flutter is an open-source mobile
application development framework created by Google. It allows developers to build high-
performance applications for Android and iOS using a single codebase. Flutter uses the Dart
programming language and provides a rich set of widgets that make it easy to design attractive
and responsive user interfaces.
Another important technology used in this project is Firebase. Firebase is a cloud-based platform
developed by Google that provides backend services for mobile and web applications. It offers
several features such as Firebase Authentication, Cloud Fire store database, Cloud Storage, and
Firebase Cloud Messaging.
82
REFERENCES
[1]
World Health Organization, "Global Status Report on Road Safety 2023," Geneva, 2023.
[2]
Ministry of Road Transport and Highways (MoRTH), "Road Accidents in India Annual Report
2022,"
[3]I. Sommerville, Software Engineering, 10th ed. ed., Boston: Pearson, 2016.
[4]
R. S. Pressman and B. R. Maxim, Software Engineering: A Practitioner’s Approach, New York,
NY:
McGraw-Hill, 2015.
[5]
S. Kumar and A. Singh, "Accident Detection and Smart Rescue System using Android
Smartphone,"
International Journal of Engineering Research and Technology (IJERT), vol. 7, no. 4, pp. 1-5,
2018.
[6]
M. e. al., "IoT-Based Accident Detection and Tracking System," International Research Journal
of
Engineering and Technology (IRJET), vol. 11, no. 4, pp. 79-83, 2024.
[7]
A. Sharma and R. Gupta, "Android Application for Real-Time Accident Detection and
Notification,"
International Journal of Computer Applications, vol. 182, no. 12, pp. 10-15, 2021.
[8]
Google Developers, "Flutter Documentation," 2026. [Online]. Available: [Link]
[Accessed 2026].
[9]
G. Firebase, "Firebase Documentation," [Online]. Available: [Link]
[Accessed 2026].
[10
G. M. Platform, "Maps SDK Documentation," [Online]. Available:
][Link] [Accessed 2026].
83