0% found this document useful (0 votes)
19 views69 pages

HMSdocumentationbyshubham

The document is a project report for the Emergency Mechanical Support (EMS) system developed by students Arshad Shahenshah Inamdar and Aniket Sambhaji Ghorpade at Sadguru Gadge Maharaj College, Karad, in partial fulfillment of their B.Sc Computer Science degree. The EMS system aims to provide rapid mechanical assistance through an automated platform that enhances service efficiency and customer experience. The report includes sections on system analysis, design, requirements, and a feasibility study, detailing the project's objectives and proposed improvements over existing systems.

Uploaded by

arshadinamdar188
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views69 pages

HMSdocumentationbyshubham

The document is a project report for the Emergency Mechanical Support (EMS) system developed by students Arshad Shahenshah Inamdar and Aniket Sambhaji Ghorpade at Sadguru Gadge Maharaj College, Karad, in partial fulfillment of their B.Sc Computer Science degree. The EMS system aims to provide rapid mechanical assistance through an automated platform that enhances service efficiency and customer experience. The report includes sections on system analysis, design, requirements, and a feasibility study, detailing the project's objectives and proposed improvements over existing systems.

Uploaded by

arshadinamdar188
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 69

SADGURU GADGE MAHARAJ COLLEGE, KARAD.

Project Report on
Emergency Mechanical Support

Submitted to

SHIVAJI UNIVERSITY, KOLHAPUR


THROUGH

DEPARTMENT OF BCS

SADGURU GADGE MAHARAJ COLLEGE, KARAD

(AN EMPOWERED AUTONOMUS COLLEGE)

IN PARTIAL FULFILMENT OF THE DEGREE

B.Sc Computer Science (Entire) Part – III Semester – VI


Submitted By

Name : Arshad Shahenshah Inamdar

Name : Aniket Sambhaji Ghorpade


Under The Guidence
Mrs. PAWAR.S.S
Academic Year - 2024-2025

pg. 1
RAYAT SHIKSHAN SANSTHA’S

Sadguru Gadge Maharaj College, Karad.

certificate

This is certify that,

1) Name : Aniket Sambhaji Ghorpade

2) Name : Arshad Shahenshah Inamdar

Have satisfactorily completed the Major Project


entitled as “Emergency Mechanical Support” in the partial
fulfilment of B.C.S. during the academic year 2024-2025.

Place : Karad

Date:

Project Guide Examiner Head of Department

pg. 2
ACKNOWLEDGEMENT

We express our sincere thanks to Hon.principle


Dr.M.M.Rajmane of S.G.M.College, Karad for providing us required
university rule and regulation to complete this project work in
time.

We are also thankful to Mr.Patil A.B. (HOD of BCS) and our


Guide Mrs.Pawar S.S mam who encourage, advice and suggest us
to successful complete our project. We are thankful to our librarian
and there staff for providing us all library facilities time to time. We
would like to thank to other teaching and nonteaching staff
member of BCS Department.

At last but not least ,we are very much thankful to our
parent and friend for co-operation to successfully complete this
project in time.

Name : Aniket Sambhaji Ghorpade

Name : Arshad Shahenshah Inamdar

Place : Karad

Date:

pg. 3
Declaration

We hereby declare that, The industrial project entitled


“Emergency Mechanical Support” has not formed earlier the basic for the
award of degree of this or any other university or examination body.

Further we declared that we have not violated any of the provisions


undercopyright act.

Place : Karad
Date :

Name Exam Seat No. Sign

Name : Aniket Ghorpade

Name : Arshad Inamdar

pg. 4
INDEX

SR. NO. NAME PAGE NO.

1 Introduction To System

2 Introduction To Project

1.1 About Project

1.2 Objective Of System

1.3 Scope Of System

3 Investigation Phase

3.1 Existing System

3.2 Proposed System

4 Requirement Analysis

4.1 Software Requirement

4.2 Hardware Requirement

4.3 Technology Used

pg. 5
5 System Analysis And Design
5.1) System Analysis

5.2) Feasibility Study

5.3) Dataflow Diagram

5.4) Entity Relationship diagram

5.5) Database Structure

6 User Interface Screens

6.1 Form Design

6.2 Coding

6.3 Reports

7 User Manual

8 Future Enhancement

9 Limitations Of System

pg. 6
10 Conclusion

11 Bibliography

pg. 7
Chapter : 1
Introduction to
System

 What is System :-

In today's fast-paced world, unexpected mechanical failures can cause significant


inconvenience and even pose safety risks. Emergency Mechanical Support (EMS) is a
service designed to provide immediate assistance to individuals and businesses facing
mechanical issues, whether it’s a vehicle breakdown, industrial machine failure, or home
appliance malfunction.

The EMS system aims to offer rapid response, professional troubleshooting, and on-
the-spot repair services to minimize downtime and ensure efficiency. By integrating
technology such as a mobile application, GPS tracking, and a network of certified
mechanics, the system ensures that help reaches the affected individuals or businesses as
quickly as possible.

This project will focus on developing a reliable and accessible emergency support system,
ensuring 24/7 availability, real-time service tracking, and customer-friendly
assistance. The goal is to enhance mechanical repair services through technology and
improve response times for emergencies.

pg. 8
Chapter 2
Introduction to
Project

 Introduction to Project :-

2.1) About Project:-

The mechanical support industry is rapidly evolving, and technology plays a crucial role in
enhancing customer experience, operational efficiency, and service reliability. Our project,
Emergency Mechanical Support (EMS), aims to revolutionize emergency repair services by
implementing a comprehensive, automated, and user-friendly system. This platform will
streamline service requests, technician dispatching, real-time tracking, and secure payment
handling, all while ensuring data integrity and security.

With an intuitive interface and seamless integration of various service management modules,
our project eliminates the inefficiencies of traditional manual systems. By leveraging cutting-
edge technology, we aim to reduce delays, optimize workflows, and improve decision-
making for administrators. The incorporation of real-time service tracking, automated
technician assignment, and advanced reporting features will enable emergency mechanical
support providers to function more effectively, ultimately enhancing the quality of customer
service and response times.

pg. 9
Objectives :-

 The primary objectives of implementing the Emergency Mechanical


Support (EMS) system include:
 Rapid Roadside Repair Services: Providing quick and efficient roadside repair
services for vehicles that have broken down.
 Minimal Disruption to Drivers: Ensuring minimal inconvenience by offering on-the-
spot servicing and repairs.
 Equipped Mobile Repair System: Creating a mobile repair system with necessary
tools, parts, and diagnostic equipment for immediate assistance.
 24/7 Service Accessibility: Developing a 24/7 service model accessible through an
easy-to-use web platform for immediate support.
2.2) Scope of the System:
The scope of the Emergency Mechanical Support (EMS) system extends across
various aspects of roadside mechanical repair services, catering to the needs of
customers, administrators, and service technicians.
The system covers:

 For Customers:

 Requesting emergency mechanical support for vehicle breakdowns.


 Tracking the real-time location of the assigned repair vehicle.
 Receiving estimated arrival times and service cost breakdowns.
 Secure payment processing for services rendered.

 For Administrators:


Managing service requests, technician assignments, and dispatching.

Monitoring ongoing service calls and technician availability.

Generating reports and analytics for performance tracking.

Managing user accounts, permissions, and system settings.
 For Vendors:

 Listing products on the platform.


 Managing inventory and prices.
 Access to sales reports and analytics.

Chapter :3

Investigation Phase pg. 10


3.1) Existing System :-
The current system in place for emergency mechanical support services faces several
challenges and limitations, including inefficiencies, manual processes, and a lack of
streamlined integration. Below are some key issues observed in the existing system:
 Manual Service Handling: Vehicle breakdown requests, technician dispatching, and
service tracking rely on manual coordination, leading to delays and inefficiencies..
 Lack of Real-time Data Access: Administrators and customers do not have instant
access to technician availability, service status, and repair history, causing delays in
response time and decision-making.
3.2) Proposed System :-

The proposed system aims to overcome the shortcomings of the existing setup
by introducing a well-structured, automated, and efficient Emergency Mechanical
Support (EMS) system. The key features of the proposed system include:

 Automated Service Request Handling: The system will automate service request
registration, technician assignment, and dispatching, ensuring faster response times.

 Centralized Data Management: A robust database will store and manage service
requests, customer details, technician availability, and repair history efficiently.

 Advanced Reporting & Analytics: The system will generate detailed reports on
service requests, technician performance, and response times for better decision-
making.
 User-Friendly Interface: Intuitive navigation and a well-structured dashboard will
allow easy access to various system modules for customers, administrators, and
technicians.
 Real-time Service Tracking: Customers and administrators can track technician
locations and estimated arrival times, enhancing transparency and efficiency.

pg. 11
 Security & Access Control: Role-based access control will ensure data privacy and
system security, restricting unauthorized access.
 Scalability & Future Expansion: The system is designed to be scalable, allowing for
future enhancements, additional functionalities, and expansion to new geographical
areas.
 Integration with External Systems: The proposed solution will support
interoperability with GPS tracking systems, online payment gateways, and other
relevant platforms for better coordination.

Chapter : 4
Requirement pg. 12

Analysis
4.1) Software Requirements :-

 Operating System: Windows, Linux, or MacOS.

 Backend Development: PHP, SQL.

 Frontend Development: HTML, CSS, JavaScript.

4.2) Hardware Requirements :-

 Processor: Intel Core i5 or higher.

 RAM: Minimum 8GB.

 Storage: At least 150 MB.

 Network: Stable internet connection for cloud-based operations.

4.3) Technology Used :-

Our system is developed using PHP, a robust, scalable, and secure framework widely
used in enterprise applications. Below are the key technologies employed:

 PHP: The core framework used for backend development, ensuring high performance
and cross-platform compatibility.

 HTML, CSS, JavaScript: Used for building dynamic web pages and handling user
interface components efficiently.

 MySQL: A relational database management system (RDBMS) chosen for its


reliability, scalability, and support for structured queries.

 SMTP: Used for sending email notifications, ensuring timely communication with
customers.

 Crystal Reports: Used for generating detailed reports, providing administrators with
valuable insights and analytics.

pg. 13
 ClosedXML: Used for exporting data to Excel, enabling easy data analysis and
reporting.

pg. 14
Chapter : 5
Feasibility Study and
Design

5.1) System Analysis :


These define what the system must do:
1. Service Request Management:
 Service request registration and categorization based on vehicle issues.
 Automated alerts for technician availability and dispatching.
 Integration with GPS tracking for real-time technician updates.
2. Customer Management:
 Customer registration and profile management.
 Service history and tracking of previous repair requests.
 Personalized service recommendations based on past breakdowns.
3. Service and Payment Management:
 Service request placement and processing.
 Integration with payment gateways (e.g., PayPal) for secure transactions.
 Generating invoices for services provided.
4. Report Generation:
 PDF reports for service requests, technician performance, and customer history.
 Advanced analytics for system efficiency and response time improvements.
5. Admin and Technician Management:
 Admin and technician registration and role assignment.
 Managing technician schedules, availability, and service duties.
 Access control based on roles to ensure data security and privacy.

pg. 15
5.2) Feasibity Study :
Before implementing the proposed system, a feasibility study was conducted to assess its
viability. The study covers the following aspects:

 Technical Feasibility: The system leverages PHP, HTML, CSS, JavaScript, and
MySQL, ensuring compatibility with modern web technologies. The use of SMTP for
email notifications and PayPal for payment integration guarantees seamless functionality
and scalability.

 Economic Feasibility: By automating service request management and reducing


manual coordination, the system decreases operational costs. The integration of
online payments (PayPal) also improves financial transactions and efficiency.

 Operational Feasibility: The system is user-friendly, requiring minimal training for


staff and technicians. Its intuitive interface and well-structured modules ensure
smooth daily operations.

 Legal Feasibility: The system complies with industry regulations, ensuring secure
customer data management and transaction processing for roadside assistance
services.

 Schedule Feasibility: The project is designed with a structured timeline, ensuring


timely implementation without disrupting existing emergency repair services.

pg. 16
5.3) Data Flow Diagrams (DFD):-

1) Level 0 DFD :-

pg. 17
2) 2)Level 1 DFD :

pg. 18
5.4) Entity Relationship Diagram :-
Request to View
Request to View

Response
Response
1 M

pg. 19
5.5)Database Structure :-
1) User Table :-

2) Store Table :-

3) Feedback Table :-

pg. 20
4) Request Status Types Table :

5) Service Request Table :

pg. 21
6) Service Types Table :

7) Status History Table :

8)FeedBack Table:

pg. 22
Chapter :6

System Interface

 Form Design:-

6.1) Home Page :

pg. 23
2) Login Page :

3)Admin Home Page :

pg. 24
4)Admin Service Request Page :

5)Manage Store Page :

pg. 25
7)Feedback Page :

pg. 26
8)User Login Form:

9)User Registration Form:

pg. 27
10)User Home Page :

11) User Request Page :

pg. 28
11) Request Submitted Page :

13)Track Service Page :

14)Service Feedback Page :

pg. 29
 Coding :-

pg. 30
1)Admin Master Page :
<?php
$pageTitle = "Admin Dashboard";
require_once '../../includes/admin/header.php';

// Dashboard Statistics
$stats = [
'pending_requests' => 0,
'active_requests' => 0,
'completed_today' => 0,
'total_stores' => 0
];

// Get Pending Requests Count


$result = $conn->query("SELECT COUNT(*) as count FROM service_requests WHERE
status = 'PENDING'");
$stats['pending_requests'] = $result->fetch_assoc()['count'];

// Get Active Requests Count


$result = $conn->query("SELECT COUNT(*) as count FROM service_requests WHERE
status = 'IN_PROGRESS'");
$stats['active_requests'] = $result->fetch_assoc()['count'];

// Get Today's Completed Requests


$result = $conn->query("SELECT COUNT(*) as count FROM service_requests
WHERE status = 'COMPLETED'
AND DATE(updated_at) = CURDATE()");
$stats['completed_today'] = $result->fetch_assoc()['count'];

// Get Total Stores


$result = $conn->query("SELECT COUNT(*) as count FROM stores WHERE is_active =
1");
$stats['total_stores'] = $result->fetch_assoc()['count'];

// Get Recent Requests


$recentRequests = $conn->query("
SELECT sr.*, u.full_name as customer_name, s.name as store_name
FROM service_requests sr
LEFT JOIN users u ON sr.user_id = u.id
LEFT JOIN stores s ON sr.store_id = s.id
ORDER BY sr.created_at DESC
LIMIT 5
");
?>

<!-- Dashboard Grid -->


<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-8">
<!-- Pending Requests Card -->
<div class="bg-white rounded-lg shadow-md p-6">

pg. 31
<div class="flex items-center">
<div class="p-3 rounded-full bg-yellow-100 text-yellow-500">
<i class="fas fa-clock text-2xl"></i>
</div>
<div class="ml-4">
<p class="text-gray-500 text-sm">Pending Requests</p>
<p class="text-2xl font-semibold"><?= $stats['pending_requests'] ?></p>
</div>
</div>
</div>

<!-- Active Requests Card -->


<div class="bg-white rounded-lg shadow-md p-6">
<div class="flex items-center">
<div class="p-3 rounded-full bg-blue-100 text-blue-500">
<i class="fas fa-wrench text-2xl"></i>
</div>
<div class="ml-4">
<p class="text-gray-500 text-sm">Active Requests</p>
<p class="text-2xl font-semibold"><?= $stats['active_requests'] ?></p>
</div>
</div>
</div>

<!-- Completed Today Card -->


<div class="bg-white rounded-lg shadow-md p-6">
<div class="flex items-center">
<div class="p-3 rounded-full bg-green-100 text-green-500">
<i class="fas fa-check-circle text-2xl"></i>
</div>
<div class="ml-4">
<p class="text-gray-500 text-sm">Completed Today</p>
<p class="text-2xl font-semibold"><?= $stats['completed_today'] ?></p>
</div>
</div>
</div>

<!-- Total Stores Card -->


<div class="bg-white rounded-lg shadow-md p-6">
<div class="flex items-center">
<div class="p-3 rounded-full bg-purple-100 text-purple-500">
<i class="fas fa-store text-2xl"></i>
</div>
<div class="ml-4">
<p class="text-gray-500 text-sm">Active Stores</p>
<p class="text-2xl font-semibold"><?= $stats['total_stores'] ?></p>
</div>
</div>
</div>
</div>

pg. 32
<!-- Recent Requests Table -->
<div class="bg-white rounded-lg shadow-md">
<div class="p-6 border-b border-gray-200">
<h2 class="text-xl font-semibold text-gray-800">Recent Service Requests</h2>
</div>
<div class="overflow-x-auto">
<table class="min-w-full divide-y divide-gray-200">
<thead class="bg-gray-50">
<tr>
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase
tracking-wider">ID</th>
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase
tracking-wider">Customer</th>
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase
tracking-wider">Store</th>
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase
tracking-wider">Status</th>
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase
tracking-wider">Created</th>
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase
tracking-wider">Actions</th>
</tr>
</thead>
<tbody class="bg-white divide-y divide-gray-200">
<?php while ($request = $recentRequests->fetch_assoc()): ?>
<tr>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">
#<?= $request['id'] ?>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">
<?= htmlspecialchars($request['customer_name']) ?>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900">
<?= htmlspecialchars($request['store_name'] ?? 'Unassigned') ?>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full
<?php
switch ($request['status']) {
case 'PENDING':
echo 'bg-yellow-100 text-yellow-800';
break;
case 'IN_PROGRESS':
echo 'bg-blue-100 text-blue-800';
break;
case 'COMPLETED':
echo 'bg-green-100 text-green-800';
break;
default:

pg. 33
echo 'bg-gray-100 text-gray-800';
}
?>">
<?= $request['status'] ?>
</span>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
<?= date('M d, Y H:i', strtotime($request['created_at'])) ?>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium">
<a href="requests/view.php?id=<?= $request['id'] ?>"
class="text-blue-600 hover:text-blue-900">
View Details
</a>
</td>
</tr>
<?php endwhile; ?>
</tbody>
</table>
</div>
</div>

</div>
</main>
</div>
</div>
<script src="<?= BASE_URL ?>assets/js/admin/dashboard.js"></script>
</body>

</html>

2) Login Page :
<?php
require_once '../includes/header.php';

$errors = [];
$success = false;

if ($auth->isLoggedIn()) {
header('Location: ' . BASE_URL . 'pages/profile.php');
exit();
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$email = trim($_POST['email']);
$password = $_POST['password'];

// Validation
if (empty($email)) $errors[] = "Email is required";

pg. 34
if (empty($password)) $errors[] = "Password is required";

if (empty($errors)) {
if ($auth->login($email, $password)) {
header('Location: ' . BASE_URL . 'pages/profile.php');
exit();
} else {
$errors[] = "Invalid email or password";
}
}
}
?>

<div class="mb-16 max-w-md mx-auto bg-white rounded-lg shadow-md p-6 mt-20">


<h2 class="text-2xl font-bold mb-6">Login</h2>

<?php if (!empty($errors)): ?>


<div class="bg-red-100 border border-red-400 text-red-700 px-4 py-3 rounded mb-4">
<?php foreach ($errors as $error): ?>
<p><?= htmlspecialchars($error) ?></p>
<?php endforeach; ?>
</div>
<?php endif; ?>

<form method="POST" action="">


<div class="mb-4">
<label class="block text-gray-700 text-sm font-bold mb-2" for="email">
Email
</label>
<input class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-
700 leading-tight focus:outline-none focus:shadow-outline"
id="email" name="email" type="email" required>
</div>

<div class="mb-6">
<label class="block text-gray-700 text-sm font-bold mb-2" for="password">
Password
</label>
<input class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-
700 leading-tight focus:outline-none focus:shadow-outline"
id="password" name="password" type="password" required>
</div>

<div class="flex items-center justify-between">


<button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4
rounded focus:outline-none focus:shadow-outline"
type="submit">
Sign In
</button>
<a class="inline-block align-baseline font-bold text-sm text-blue-500 hover:text-blue-

pg. 35
800"
href="register.php">
Create an account
</a>
</div>
</form>
</div>

<?php
require_once '../includes/footer.php';
ob_end_flush();
?>

3)Register Page :

<?php
require_once '../includes/header.php';

$errors = [];
$success = false;

if ($_SERVER['REQUEST_METHOD'] === 'POST') {


$fullName = trim($_POST['full_name']);
$email = trim($_POST['email']);
$password = $_POST['password'];
$confirmPassword = $_POST['confirm_password'];
$phone = trim($_POST['phone']);

// Validation
if (empty($fullName)) $errors[] = "Full name is required";
if (empty($email)) $errors[] = "Email is required";
if (empty($password)) $errors[] = "Password is required";
if ($password !== $confirmPassword) $errors[] = "Passwords do not match";
if (empty($phone)) $errors[] = "Phone number is required";

if (empty($errors)) {
if ($auth->register($fullName, $email, $password, $phone)) {
$success = true;
} else {
$errors[] = "Registration failed. Please try again.";
}
}
}
?>

<div class="max-w-md mx-auto bg-white rounded-lg shadow-md p-6 mb-10">


<h2 class="text-2xl font-bold mb-6">Register</h2>

<?php if ($success): ?>


<div class="bg-green-100 border border-green-400 text-green-700 px-4 py-3 rounded

pg. 36
mb-4">
Registration successful! <a href="login.php" class="underline">Login here</a>
</div>
<?php endif; ?>

<?php if (!empty($errors)): ?>


<div class="bg-red-100 border border-red-400 text-red-700 px-4 py-3 rounded mb-4">
<?php foreach ($errors as $error): ?>
<p><?= htmlspecialchars($error) ?></p>
<?php endforeach; ?>
</div>
<?php endif; ?>

<form method="POST" action="">


<div class="mb-4">
<label class="block text-gray-700 text-sm font-bold mb-2" for="full_name">
Full Name
</label>
<input class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-
700 leading-tight focus:outline-none focus:shadow-outline"
id="full_name" name="full_name" type="text" required>
</div>

<div class="mb-4">
<label class="block text-gray-700 text-sm font-bold mb-2" for="email">
Email
</label>
<input class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-
700 leading-tight focus:outline-none focus:shadow-outline"
id="email" name="email" type="email" required>
</div>

<div class="mb-4">
<label class="block text-gray-700 text-sm font-bold mb-2" for="phone">
Phone Number
</label>
<input class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-
700 leading-tight focus:outline-none focus:shadow-outline"
id="phone" name="phone" type="tel" required>
</div>

<div class="mb-4">
<label class="block text-gray-700 text-sm font-bold mb-2" for="password">
Password
</label>
<input class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-
700 leading-tight focus:outline-none focus:shadow-outline"
id="password" name="password" type="password" required>
</div>

pg. 37
<div class="mb-6">
<label class="block text-gray-700 text-sm font-bold mb-2" for="confirm_password">
Confirm Password
</label>
<input class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-
700 leading-tight focus:outline-none focus:shadow-outline"
id="confirm_password" name="confirm_password" type="password" required>
</div>

<div class="flex items-center justify-between">


<button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4
rounded focus:outline-none focus:shadow-outline"
type="submit">
Register
</button>
<a class="inline-block align-baseline font-bold text-sm text-blue-500 hover:text-blue-
800"
href="login.php">
Already have an account?
</a>
</div>
</form>
</div>

<?php require_once '../includes/footer.php'; ?>

4)Order Page:
<?php
require_once '../includes/header.php';
require_once '../config/database.php';
require_once '../functions/FeedbackModel.php';
require_once '../functions/helpers.php';

// Check authentication
if (!$auth->isLoggedIn()) {
$_SESSION['redirect_after_login'] = BASE_URL . 'pages/feedback.php';
header('Location: ' . BASE_URL . 'pages/login.php');
exit();
}

pg. 38
$feedbackModel = new FeedbackModel($conn);

if ($_SERVER['REQUEST_METHOD'] === 'POST') {


$request_id = $_POST['request_id'];
$user_id = $_SESSION['user_id'];
$rating = $_POST['rating'];
$payment_method = $_POST['payment_method'];
$message = $_POST['message'];

$feedbackModel->submitFeedback($request_id, $user_id, $rating, $payment_method,


$message);
$_SESSION['success'] = "Feedback submitted successfully";
header('Location: ' . BASE_URL . 'pages/track.php');
exit();
}

$request_id = $_GET['request_id'];
?>

<div class="min-h-screen bg-gray-50 py-12">


<div class="container mx-auto px-4 sm:px-6 lg:px-8 max-w-3xl">
<!-- Back Button -->
<div class="mb-6">
<a href="<?= BASE_URL ?>pages/track.php"
class="inline-flex items-center text-gray-600 hover:text-gray-800 transition-
colors">
<svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24
24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15
19l-7-7 7-7" />
</svg>
Back to Service Tracking

pg. 39
</a>
</div>

<!-- Feedback Form Card -->


<div class="bg-white rounded-xl shadow-lg overflow-hidden">
<!-- Header -->
<div class="bg-blue-600 px-6 py-4">
<h1 class="text-2xl font-bold text-white">Service Feedback</h1>
<p class="text-blue-100 mt-1">Help us improve our service</p>
</div>

<form method="POST" action="" class="p-6 space-y-6">


<input type="hidden" name="request_id" value="<?=
htmlspecialchars($request_id) ?>">

<!-- Rating Section -->


<div class="space-y-2">
<label class="block text-gray-700 font-semibold text-sm uppercase tracking-
wide">
How would you rate our service?
</label>
<div class="flex items-center space-x-4">
<?php
$ratings = [
5 => ['Excellent', 'text-green-600'],
4 => ['Good', 'text-green-500'],
3 => ['Average', 'text-yellow-500'],
2 => ['Poor', 'text-orange-500'],
1 => ['Terrible', 'text-red-500']
];
foreach ($ratings as $value => $rating): ?>

pg. 40
<label class="flex flex-col items-center cursor-pointer group">
<input type="radio" name="rating" value="<?= $value ?>" class="hidden
peer">
<div class="p-2 rounded-lg peer-checked:bg-blue-50 group-hover:bg-
gray-50 transition-colors">
<div class="text-2xl mb-1">
<?= str_repeat('★', $value) . str_repeat('☆', 5 - $value) ?>
</div>
<span class="text-sm font-medium <?= $rating[1] ?>"><?=
$rating[0] ?></span>
</div>
</label>
<?php endforeach; ?>
</div>
</div>

<!-- Payment Method Section -->


<div class="space-y-2">
<label class="block text-gray-700 font-semibold text-sm uppercase tracking-
wide">
Payment Method Used
</label>
<div class="grid grid-cols-2 gap-4">
<label class="relative block cursor-pointer">
<input type="radio" name="payment_method" value="online"
class="hidden peer">
<div class="p-4 border rounded-lg text-center peer-checked:border-blue-
500 peer-checked:bg-blue-50 hover:bg-gray-50 transition-colors">
<svg class="w-6 h-6 mx-auto mb-2" fill="currentColor" viewBox="0 0
20 20">
<path d="M4 4a2 2 0 00-2 2v1h16V6a2 2 0 00-2-2H4z" />
<path fill-rule="evenodd" d="M18 9H2v5a2 2 0 002 2h12a2 2 0 002-
2V9zM4 13a1 1 0 011-1h1a1 1 0 110 2H5a1 1 0 01-1-1zm5-1a1 1 0 100 2h1a1 1 0 100-
2H9z" clip-rule="evenodd" />

pg. 41
</svg>
Online Payment
</div>
</label>
<label class="relative block cursor-pointer">
<input type="radio" name="payment_method" value="cash" class="hidden
peer">
<div class="p-4 border rounded-lg text-center peer-checked:border-blue-
500 peer-checked:bg-blue-50 hover:bg-gray-50 transition-colors">
<svg class="w-6 h-6 mx-auto mb-2" fill="currentColor" viewBox="0 0
20 20">
<path fill-rule="evenodd" d="M4 4a2 2 0 00-2 2v4a2 2 0 002
2V6h10a2 2 0 00-2-2H4zm2 6a2 2 0 012-2h8a2 2 0 012 2v4a2 2 0 01-2 2H8a2 2 0 01-2-2v-
4zm6 4a2 2 0 100-4 2 2 0 000 4z" clip-rule="evenodd" />
</svg>
Cash Payment
</div>
</label>
</div>
</div>

<!-- Feedback Message -->


<div class="space-y-2">
<label class="block text-gray-700 font-semibold text-sm uppercase tracking-
wide">
Additional Comments
</label>
<textarea
name="message"
rows="4"
class="w-full px-4 py-2 rounded-lg border border-gray-300 focus:ring-2
focus:ring-blue-500 focus:border-transparent resize-none transition-shadow"
placeholder="Tell us about your experience..."></textarea>

pg. 42
</div>

<!-- Submit Button -->


<div class="pt-4">
<button type="submit" class="w-full bg-blue-600 text-white py-3 px-6 rounded-
lg hover:bg-blue-700 focus:ring-4 focus:ring-blue-200 transition-colors font-semibold">
Submit Feedback
</button>
</div>
</form>
</div>
</div>
</div>

<?php
require_once '../includes/footer.php';
?>

5)Track Page :
<?php
require_once '../includes/header.php';
require_once '../functions/TrackingModel.php';
require_once '../functions/helpers.php';

// Check authentication
if (!$auth->isLoggedIn()) {
$_SESSION['redirect_after_login'] = BASE_URL . 'pages/track.php';
header('Location: ' . BASE_URL . 'pages/login.php');
exit();
}

pg. 43
$trackingModel = new TrackingModel($conn);

// Handle specific request tracking


if (isset($_GET['request_id'])) {
$request = $trackingModel->getRequestStatus($_GET['request_id']);

if (!$request || $request['user_id'] !== $_SESSION['user_id']) {


$_SESSION['error'] = "Invalid request ID";
header('Location: ' . BASE_URL . 'pages/track.php');
exit();
}

// Show single request tracking view


include '../includes/track-detail.php';
} else {
// Get user's recent requests
$requests = $trackingModel->getUserRequests($_SESSION['user_id']);
?>

<div class="container mx-auto px-4 py-8">


<div class="max-w-4xl mx-auto">
<h1 class="text-2xl font-bold mb-6">Your Service Requests</h1>

<?php if (empty($requests)): ?>


<div class="bg-gray-50 rounded-lg p-8 text-center">
<i class="fas fa-history text-gray-400 text-4xl mb-4"></i>
<p class="text-gray-600">No service requests found.</p>
<a href="<?= BASE_URL ?>pages/request.php"
class="inline-block mt-4 bg-blue-500 text-white px-6 py-2 rounded-full
hover:bg-blue-600">
Request New Service

pg. 44
</a>
</div>
<?php else: ?>
<div class="space-y-4">
<?php foreach ($requests as $request): ?>
<div class="bg-white rounded-lg shadow-md p-6 hover:shadow-lg transition-
shadow">
<div class="flex justify-between items-start">
<div>
<h3 class="font-semibold text-lg">
Request #<?= str_pad($request['id'], 6, '0', STR_PAD_LEFT) ?>
</h3>
<p class="text-gray-600 mt-1">
<?= htmlspecialchars($request['vehicle_make']) ?>
<?= htmlspecialchars($request['vehicle_model']) ?>
</p>
<p class="text-sm text-gray-500 mt-1">
<?= formatDateTime($request['created_at']) ?>
</p>
</div>
<div class="text-right">
<span class="px-4 py-2 rounded-full text-sm font-semibold inline-
block mb-2
<?= getStatusColorClass($request['status_code']) ?>">
<?= htmlspecialchars($request['status_name']) ?>
</span>
<div class="mt-2">
<a href="?request_id=<?= $request['id'] ?>"
class="text-blue-500 hover:text-blue-700 text-sm">
View Details <i class="fas fa-chevron-right ml-1"></i>
</a>

pg. 45
<a href="feedback.php?request_id=<?= $request['id'] ?>"
class="text-green-500 hover:text-green-700 text-sm ml-4">
Leave Feedback <i class="fas fa-comment-dots ml-1"></i>
</a>
</div>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>
</div>
</div>

<?php
}
require_once '../includes/footer.php';
?>

6)Store Index Page :


<?php
$pageTitle = "Manage Stores";
require_once '../../../includes/admin/header.php';
require_once '../../../functions/admin/StoreManager.php';

$storeManager = new StoreManager($conn);

// Pagination parameters
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$limit = 10;

pg. 46
// Filters
$filters = [
'region' => $_GET['region'] ?? '',
'search' => $_GET['search'] ?? '',
'is_active' => isset($_GET['is_active']) ? (int)$_GET['is_active'] : null
];

// Get stores with pagination


$stores = $storeManager->getStores($page, $limit, $filters);
$totalStores = $storeManager->getTotalStores($filters);
$totalPages = ceil($totalStores / $limit);

// Get regions for filter


$regions = $storeManager->getRegions();

// Handle store status toggle


if (isset($_POST['toggle_status']) && isset($_POST['store_id'])) {
$storeId = (int)$_POST['store_id'];
if ($storeManager->toggleStoreStatus($storeId)) {
header("Location: index.php?success=1");
exit();
}
}
?>

<div class="container mx-auto px-4 py-8">


<!-- Header with Add Store Button -->
<div class="flex justify-between items-center mb-6">
<h1 class="text-2xl font-bold text-gray-900">Manage Stores</h1>

pg. 47
<a href="edit.php"
class="bg-blue-600 text-white px-4 py-2 rounded-md hover:bg-blue-700
focus:outline-none focus:ring-2 focus:ring-blue-500">
<i class="fas fa-plus mr-2"></i> Add New Store
</a>
</div>

<!-- Filters -->


<div class="bg-white rounded-lg shadow-md p-6 mb-6">
<form method="GET" class="grid grid-cols-1 md:grid-cols-3 gap-4">
<div>
<label class="block text-sm font-medium text-gray-700 mb-2">Region</label>
<select name="region"
class="w-full rounded-md border-gray-300 shadow-sm focus:border-blue-500
focus:ring-blue-500">
<option value="">All Regions</option>
<?php foreach ($regions as $region): ?>
<option value="<?= htmlspecialchars($region['region']) ?>"
<?= $filters['region'] === $region['region'] ? 'selected' : '' ?>>
<?= htmlspecialchars($region['region']) ?>
</option>
<?php endforeach; ?>
</select>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-2">Search</label>
<input type="text" name="search" value="<?= htmlspecialchars($filters['search']) ?
>"
class="w-full rounded-md border-gray-300 shadow-sm focus:border-blue-500
focus:ring-blue-500"
placeholder="Search stores...">
</div>

pg. 48
<div class="flex items-end">
<button type="submit"
class="bg-gray-100 text-gray-700 px-4 py-2 rounded-md hover:bg-gray-200
focus:outline-none focus:ring-2 focus:ring-gray-500">
Apply Filters
</button>
</div>
</form>
</div>

<!-- Stores Table -->


<div class="bg-white rounded-lg shadow-md overflow-hidden">
<table class="min-w-full divide-y divide-gray-200">
<thead class="bg-gray-50">
<tr>
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase
tracking-wider">Store Name</th>
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase
tracking-wider">Location</th>
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase
tracking-wider">Contact</th>
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase
tracking-wider">Status</th>
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase
tracking-wider">Actions</th>
</tr>
</thead>
<tbody class="bg-white divide-y divide-gray-200">
<?php while ($store = $stores->fetch_assoc()): ?>
<tr>
<td class="px-6 py-4 whitespace-nowrap">
<div class="text-sm font-medium text-gray-900">

pg. 49
<?= htmlspecialchars($store['name']) ?>
</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="text-sm text-gray-900">
<?= htmlspecialchars($store['city']) ?>
</div>
<div class="text-sm text-gray-500">
<?= htmlspecialchars($store['region']) ?>
</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<div class="text-sm text-gray-900">
<?= htmlspecialchars($store['contact_number']) ?>
</div>
<div class="text-sm text-gray-500">
<?= htmlspecialchars($store['email']) ?>
</div>
</td>
<td class="px-6 py-4 whitespace-nowrap">
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full
<?= $store['is_active'] ? 'bg-green-100 text-green-800' : 'bg-red-100
text-red-800' ?>">
<?= $store['is_active'] ? 'Active' : 'Inactive' ?>
</span>
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium">
<a href="edit.php?id=<?= $store['id'] ?>"
class="text-blue-600 hover:text-blue-900 mr-3">Edit</a>
<form method="POST" class="inline">
<input type="hidden" name="store_id" value="<?= $store['id'] ?>">

pg. 50
<button type="submit" name="toggle_status"
class="text-<?= $store['is_active'] ? 'red' : 'green' ?>-600
hover:text-<?= $store['is_active'] ? 'red' : 'green' ?>-900">
<?= $store['is_active'] ? 'Deactivate' : 'Activate' ?>
</button>
</form>
</td>
</tr>
<?php endwhile; ?>
</tbody>
</table>

<!-- Pagination -->


<?php if ($totalPages > 1): ?>
<div class="bg-white px-4 py-3 border-t border-gray-200 sm:px-6">
<div class="flex items-center justify-between">
<div class="flex-1 flex justify-between sm:hidden">
<?php if ($page > 1): ?>
<a href="?page=<?= $page - 1 ?>&region=<?= $filters['region'] ?
>&search=<?= urlencode($filters['search']) ?>"
class="relative inline-flex items-center px-4 py-2 border border-gray-300
text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50">
Previous
</a>
<?php endif; ?>
<?php if ($page < $totalPages): ?>
<a href="?page=<?= $page + 1 ?>&region=<?= $filters['region'] ?
>&search=<?= urlencode($filters['search']) ?>"
class="ml-3 relative inline-flex items-center px-4 py-2 border border-
gray-300 text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50">
Next
</a>

pg. 51
<?php endif; ?>
</div>
</div>
</div>
<?php endif; ?>
</div>
</div>

</div>
</main>
</div>
</div>
</body>

</html>

7)Request Page :
<?php
require_once '../functions/validation.php';
require_once '../includes/header.php';
require_once '../functions/ServiceRequestModel.php';

$serviceModel = new ServiceRequestModel($conn);


$serviceTypes = $serviceModel->getServiceTypes();

if (!$auth->isLoggedIn()) {
$_SESSION['redirect_after_login'] = BASE_URL . 'pages/request.php';

pg. 52
header('Location: ' . BASE_URL . 'pages/login.php');
exit();
}

// Maharashtra major cities array


$maharashtraCities = [
'Mumbai' => ['regions' => ['South Mumbai', 'Western Suburbs', 'Eastern Suburbs']],
'Pune' => ['regions' => ['Pune City', 'Pimpri-Chinchwad', 'Kharadi']],
'Nagpur' => ['regions' => ['West Nagpur', 'East Nagpur', 'Central Nagpur']],
'Nashik' => ['regions' => ['Nashik City', 'Nashik Road', 'Deolali']],
'Aurangabad' => ['regions' => ['Aurangabad City', 'CIDCO', 'Waluj']]
];

// Add vehicle makes array


$vehicleMakes = [
'Maruti Suzuki' => ['Swift', 'Baleno', 'Brezza', 'WagonR', 'Alto'],
'Hyundai' => ['i20', 'Venue', 'Creta', 'Verna'],
'Tata' => ['Nexon', 'Harrier', 'Safari', 'Punch', 'Tiago'],
'Honda' => ['City', 'Amaze', 'WR-V', 'Jazz'],
'Mahindra' => ['XUV700', 'Thar', 'Scorpio', 'XUV300'],
'Other' => ['Other']
];

if ($_SERVER['REQUEST_METHOD'] === 'POST') {


$validator = new RequestValidator();
$errors = [];

try {
if (
$validator->validateLocationDetails($_POST) &&

pg. 53
$validator->validateVehicleDetails($_POST)
){

$zoneData = $serviceModel->determineZone($_POST['city']);

if (!$zoneData) {
throw new Exception("Invalid zone selected");
}

$requestData = [
'user_id' => $_SESSION['user_id'],
'zone_id' => $zoneData['id'],
'address' => $_POST['address'],
'city' => $_POST['city'],
'region' => $_POST['region'],
'vehicle_make' => $_POST['vehicle_make'],
'vehicle_model' => $_POST['vehicle_model'],
'issue_description' => $_POST['issue_description'],
'service_type_id' => $_POST['service_type']
];

$request_id = $serviceModel->createRequest($requestData);

if ($request_id) {
$_SESSION['request_id'] = $request_id;
$_SESSION['success_message'] = 'Service request submitted successfully!';
header('Location: ' . BASE_URL . 'pages/request-confirmation.php');
exit();
} else {
throw new Exception("Failed to create service request");

pg. 54
}
} else {
$errors = $validator->getErrors();
}
} catch (Exception $e) {
$errors[] = $e->getMessage();
}

if (!empty($errors)) {
$_SESSION['errors'] = $errors;
header('Location: ' . BASE_URL . 'pages/request.php');
exit();
}
}

if (isset($_SESSION['errors'])) {
$errors = $_SESSION['errors'];
unset($_SESSION['errors']);
}
?>

<div class="container mx-auto px-4 py-8">


<div class="max-w-2xl mx-auto bg-white rounded-lg shadow-md p-6">

<h2 class="text-2xl font-bold mb-6">Request Emergency Mechanic</h2>


<!-- Progress Steps -->
<div class="mb-8">
<div class="flex items-center justify-between">
<div class="flex items-center">
<div class="w-8 h-8 bg-blue-500 text-white rounded-full flex items-center
justify-center">1</div>

pg. 55
<div class="ml-2 text-sm font-medium">Location</div>
</div>
<div class="flex-1 h-1 mx-4 bg-gray-200">
<div class="h-1 bg-blue-500 progress-bar" style="width: 0%"></div>
</div>
<div class="flex items-center">
<div class="w-8 h-8 bg-gray-200 text-gray-600 rounded-full flex items-center
justify-center">2</div>
<div class="ml-2 text-sm font-medium">Vehicle</div>
</div>
<div class="flex-1 h-1 mx-4 bg-gray-200"></div>
<div class="flex items-center">
<div class="w-8 h-8 bg-gray-200 text-gray-600 rounded-full flex items-center
justify-center">3</div>
<div class="ml-2 text-sm font-medium">Confirm</div>
</div>
</div>
</div>

<!-- Form Sections -->


<form id="serviceRequestForm" method="POST" class="space-y-6">
<!-- Step 1: Location Details -->
<div id="step1" class="bg-white rounded-lg shadow-md p-6">
<h3 class="text-xl font-bold mb-4">Location Details</h3>
<div class="mb-4">
<label class="block text-gray-700 text-sm font-bold mb-2" for="city">
City
</label>
<select name="city" id="city" class="w-full px-3 py-2 border rounded-lg
focus:outline-none focus:ring-2 focus:ring-blue-500" required>
<option value="">Select City</option>

pg. 56
<?php foreach ($maharashtraCities as $city => $data): ?>
<option value="<?= htmlspecialchars($city) ?>"><?=
htmlspecialchars($city) ?></option>
<?php endforeach; ?>
</select>
</div>

<div class="mb-4">
<label class="block text-gray-700 text-sm font-bold mb-2" for="region">
Area/Region
</label>
<select name="region" id="region" class="w-full px-3 py-2 border rounded-lg
focus:outline-none focus:ring-2 focus:ring-blue-500" required disabled>
<option value="">Select Area</option>
</select>
</div>

<!-- Detailed Address -->


<div class="mb-4">
<label class="block text-gray-700 text-sm font-bold mb-2" for="address">
Detailed Address <span class="text-sm text-gray-500">
(Google Location Sharing Feature Coming Soon...)
</span>
</label>
<textarea
name="address"
id="address"
rows="3"
class="w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2
focus:ring-blue-500"
required

pg. 57
placeholder="Enter your exact location (landmarks, building name,
etc.)"></textarea>
</div>

<div class="mt-6">
<button type="button" onclick="nextStep(1)" class="w-full bg-blue-500 text-
white px-6 py-2 rounded-full hover:bg-blue-600 focus:outline-none focus:ring-2 focus:ring-
blue-500 focus:ring-offset-2">
Next Step
</button>
</div>
</div>

<!-- Step 2: Vehicle Details -->


<div id="step2" class="bg-white rounded-lg shadow-md p-6 hidden">
<h3 class="text-xl font-bold mb-4">Vehicle Details</h3>

<div class="grid grid-cols-1 md:grid-cols-2 gap-4">


<!-- Vehicle Make -->
<div>
<label class="block text-gray-700 text-sm font-bold mb-2"
for="vehicle_make">
Vehicle Make
</label>
<select name="vehicle_make" id="vehicle_make" class="w-full px-3 py-2
border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" required>
<option value="">Select Make</option>
<?php foreach ($vehicleMakes as $make => $models): ?>
<option value="<?= htmlspecialchars($make) ?>"><?=
htmlspecialchars($make) ?></option>
<?php endforeach; ?>
</select>

pg. 58
</div>

<!-- Vehicle Model -->


<div>
<label class="block text-gray-700 text-sm font-bold mb-2"
for="vehicle_model">
Vehicle Model
</label>
<select name="vehicle_model" id="vehicle_model" class="w-full px-3 py-2
border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" required disabled>
<option value="">Select Model</option>
</select>
</div>
</div>

<!-- Issue Description -->


<div class="mt-4">
<label class="block text-gray-700 text-sm font-bold mb-2"
for="issue_description">
Issue Description
</label>
<textarea
name="issue_description"
id="issue_description"
rows="3"
class="w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2
focus:ring-blue-500"
required
placeholder="Describe the problem you're experiencing with your
vehicle"></textarea>
</div>

pg. 59
<!-- Service Type Selection -->
<div>
<label class="block text-gray-700 text-sm font-bold mb-2">
Service Type
</label>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<?php foreach ($serviceTypes as $service): ?>
<div class="border rounded-lg p-4 hover:border-blue-500 cursor-pointer
service-type-option">
<input type="radio" name="service_type" value="<?= $service['id'] ?>"
class="hidden" required>
<h3 class="font-bold"><?= htmlspecialchars($service['name']) ?></h3>
<p class="text-sm text-gray-600"><?=
htmlspecialchars($service['description']) ?></p>
<p class="text-sm font-semibold mt-2">
Base Price: ₹<?= number_format($service['base_price'], 2) ?>
</p>
</div>
<?php endforeach; ?>
</div>
</div>

<!-- Navigation Buttons -->


<div class="mt-6 flex justify-between">
<button type="button" onclick="prevStep(2)" class="bg-gray-500 text-white px-
6 py-2 rounded-full hover:bg-gray-600 focus:outline-none focus:ring-2 focus:ring-gray-500
focus:ring-offset-2">
Previous
</button>
<button type="button" onclick="nextStep(2)" class="bg-blue-500 text-white px-
6 py-2 rounded-full hover:bg-blue-600 focus:outline-none focus:ring-2 focus:ring-blue-500
focus:ring-offset-2">
Next Step

pg. 60
</button>
</div>
</div>

<!-- Step 3: Confirmation -->


<div id="step3" class="bg-white rounded-lg shadow-md p-6 hidden">
<h3 class="text-xl font-bold mb-4">Confirm Request</h3>

<div id="summary" class="space-y-4">


<!-- Will be populated via JavaScript -->
</div>

<!-- Navigation Buttons -->


<div class="mt-6 flex justify-between">
<button type="button" onclick="prevStep(3)" class="bg-gray-500 text-white px-
6 py-2 rounded-full hover:bg-gray-600 focus:outline-none focus:ring-2 focus:ring-gray-500
focus:ring-offset-2">
Previous
</button>
<button type="submit" class="bg-blue-500 text-white px-6 py-2 rounded-full
hover:bg-blue-600 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2">
Submit Request
</button>
</div>
</div>
</form>
</div>
</div>

<script>
const maharashtraCities = <?= json_encode($maharashtraCities) ?>;

pg. 61
const vehicleMakes = <?= json_encode($vehicleMakes) ?>;
</script>

<script src="<?= BASE_URL ?>assets/js/request.js"></script>

<?php
include_once '../includes/footer.php';
?>

 Reports:
1)Service Request Report :

pg. 62
Chapter :7
User Manual

User Manual for Emergency Mechanical Support (EMS):

1. Introduction
The Emergency Mechanical Support (EMS) system is designed to efficiently manage
roadside vehicle repair services, including service request management, customer
registration, technician dispatching, real-time tracking, and secure payments. It provides an
easy-to-use interface for customers, technicians, and administrators to streamline emergency
repair operations.
2. System Features
2.1 User Roles

pg. 63
 Admin: Manages service requests, technicians, customer records, and reports.
 Customer: Requests emergency mechanical support, tracks service status, and makes
payments.
 Technician: Receives service assignments, provides on-site vehicle repairs, and updates
service status.
2.2 Modules
1. Service Request Management
 Add new service requests.
 View and update service status.
 Manage technician assignments and response tracking.
2. Customer Management
 Register new customers.
 View customer profiles and service history.
 Manage customer inquiries and support.
3. Report Generation
 Generate reports for service requests, technician performance, and customer history.
 Download reports in PDF format.

4. Technician Management
 Assign and dispatch technicians to service requests.
 View and manage technician schedules.
 Track technician performance and availability.

3. How to Use the System


3.1 Logging In
1. Open the EMS login page.
2. Enter your username and password.
3. Click the Login button.
3.2 Service Request Management
1. Navigate to the Manage Service Requests page.
2. Click Add Service Request and fill in details (Vehicle Issue, Location, Contact Info,
etc.).
3. Click Save to register the request in the system.

pg. 64
4. View and update service requests in the request table.
3.3 Customer Registration
1. Navigate to the Register Customer page.
2. Fill in customer details (Name, Contact, Vehicle Details, etc.).
3. Click Register to save the customer record.
4. View registered customers in the customer table.
3.4 Technician Assignment & Dispatching
1. Navigate to the Manage Technicians page.
2. View available technicians and select one for the service request.
3. Assign the technician and update service status.
4. Click Dispatch Technician to notify them of the assignment.

3.5 Generating Reports


1. Go to the Reports section.
2. Select the desired report type (Service Requests, Technician Performance, Customer
History).
3. Click Generate PDF to download the report.
3.6 Common Issues & Solutions
 Unable to Add Service Requests? Ensure all required fields (vehicle issue, contact
info, location) are filled correctly.
 Technician Not Assigned? Check technician availability and service status before
assigning.

pg. 65
Chapter :8
Future Enhancement

I would like to add this functionality to my system.

 AI & Machine Learning – AI-based service recommendations, predictive analysis for


common vehicle issues, and chatbots for customer support.
 Mobile App Integration – Customer and technician mobile apps with service request
tracking, notifications, and real-time updates.
 Cloud-Based System – Remote access, data backup, and easy scalability to handle
growing service demands.

pg. 66
 IoT Integration – Smart vehicle diagnostics with IoT-enabled devices for real-time issue
detection and automated service alerts.
 Blockchain Security – Secure transaction records and decentralized customer data to
ensure privacy and security.
 Advanced Billing & Payment – Integration with UPI, mobile wallets, AI-driven cost
estimation, and support for multiple payment methods.
 Multi-Language & Voice Support – Regional language support and voice command
features for ease of use.
 Government & Transport Authority Integration – Compliance with local road safety
regulations and automatic submission of necessary reports.
 Smart Technician & Service Management – AI-based service scheduling, route
optimization for technician dispatch, and automated check-in via QR or facial
recognition.

Chapter :9

Limitations

Limitations of the Emergency Mechanical Support (EMS) System:

1. High Initial Cost – Expensive to develop, implement, and maintain.

2. Complexity – Requires proper training for staff and technicians to use the system
efficiently.

3. Data Security Risks – Vulnerable to cyberattacks and data breaches, requiring robust
security measures.

4. Internet Dependency – Cloud-based systems require a stable internet connection for


optimal performance.

pg. 67
5. Integration Issues – Difficulty in integrating with existing vehicle diagnostic tools,
GPS tracking systems, and third-party payment services.

6. Customization Challenges – May not fully meet unique mechanical service


requirements without modifications.

7.System Downtime – Technical failures can disrupt service request processing and
technician dispatching operations.

Chapter : 10

Conclusion

The Emergency Mechanical Support (EMS) system revolutionizes roadside vehicle repair
services by integrating automation, real-time service tracking, and secure online payments. By
replacing manual coordination with a digital solution, the system significantly improves operational
efficiency while enhancing the customer experience. Service providers benefit from powerful
technician management tools and insightful performance analytics, enabling better service
optimization. Through its user-friendly interface and robust security measures, the system establishes
a new standard for convenience and reliability in emergency mechanical support services.

pg. 68
Chapter :11

Bibliography

Below are the references and resources used in the development of this
project:
1) https://chatgpt.com
2) https://pngtree.com/free-png
3) https://freecomputerbooks.com/javaServletBooks.html
4) Github Copilot

pg. 69

You might also like