Objective
Objective
1
Need of the project
The need for this project arises from the increasing adoption of
electric vehicles (EVs) and the growing demand for EV
charging infrastructure. As more people switch to EVs to
reduce their carbon footprint and dependence on fossil fuels,
there is a pressing need for easily accessible and reliable charging
stations.
This project aims to address this need by providing a
convenient way for EV owners to locate nearby charging
stations and navigate to them using Google Maps, thus
encouraging the use of EVs and supporting the transition to
sustainable transportation.
3Hardware Requirements
2. Software Requirements
Operating System – Windows 7 or
higher
Language - PHP
Database - MySQL
Web Server - XAMP
Enable - PHP, JavaScript, CSS.
1. Frontend
Forms and Input Fields: Well-designed forms and input fields for capturing
event details, participant information, and feedback.
Forms and Input Fields: Well-designed forms and input fields for capturing
event details, participant information, and feedback.
Multimedia Support: Ability to incorporate images, to enhance event presentations and
promotions.
2. Backend
Database Management: Robust database management system to store and manage event
data, user information, and administrative records.
Security Features: Integration of security measures such as encryption, authentication,
and authorization to protect sensitive data and prevent unauthorized access.
Performance Optimization: Optimization of server-side code and database queries
to ensure fast loading times and efficient system performance.
3
3. Functional Requirements
User Authentication: Users should be able to create accounts and log in to
the application.
Search Functionality: Users should be able to search for nearby EV charging
stations based on their current location, area, or locality.
Map Integration: The application should integrate with Google Maps to display the
locations of EV charging stations.
Station Details: Users should be able to view details about each charging station, such as
the type of charger, availability, and pricing.
Booking System: Optionally, a booking system could be implemented to allow users to
reserve a charging slot at a specific station.
User Reviews and Ratings: Users should be able to rate and review charging stations to
provide feedback to other users.
Notifications: The application could send notifications to users about nearby
charging stations, availability of charging slots, or status updates on their charging
session.
4
4. Design
System Design
The online examination system uses client/ server architecture. At the client by using a
web browser can connect via internet or local host with the server where PHP and
MySQL in the server side are responsible for the handling event processes and save and
return data from database. It represents an overview of Eventveda (An event examination
system).
System activities
In this application an on-demand fuel delivery application for its client in Australia. This
application is developed for Android. This on-demand fuel delivery application will serve as a
platform for all the users and corporates to get fuel delivered from the truck drivers that will have
trucks fully loaded with fuel.
5
System Modules
User modules:
Register
Login
Search EV Bunk
View Bunk details
View slot vacancy
My booking
My profile
Admin modules:
Login
Approve/Reject recharge slots
Create EV Bunk
Manage Bunk details
Manage recharge details
6
User
Register – User has to register their basic details to get access with this application service.
Login – Once they have registered they need to login to avail the service at the needy time.
Search Ev Bunk – to search verified near electric recharge bunk station details based on
user need.
View Bunk details – the user search and view all the Bunk details and user can select the
nearest bunk.
View slot vacancy – The user can search nearest bunk and select bunk and check the
availability of slots.
My booking – User will select available slots then user will book a slot for a needed time
slots.
My profile – User once create a their profile like user name, Phone number, address, etc.
they are managed by my profile section.
Admin
Login – Enter username & password into the login page.
Approve/Reject recharge slots –Admin only accept whether it is verified Ev bunk or not
Ev bunk.
Create EV Bunk – To create the electric recharge bunks enters all the details of a bunk
category. All these information will be stored in the database.
Manage Bunk details – Admin can manage all the bunk details like new bunk details,
vacancy slots, etc.
Manage recharge details – Once can create new bunk details then users recharge booking
details also managed by admin
7
4.1 USE CASE DIAGRAM
Login, register
search Ev Bunk
user
view slot vacancy
My booking
My profile
login
create Ev Bunk
admin
8
4.2 E-R DIAGRAM
9
4.4 SEQUENCE DIAGRAM
•: search ev bunk()
6 : login()
10
4.5 CLASS DIAGRAM
Recharge Slot
Search Bunk
+Approve Details
+Reject +location
+City
+update Recharge Slot()
+Search Bunk
Details()
View Bunk
EV Bunk User Details
ADMIN +Bunk Detaiks
+Bunk Name +Username
+Username +Bunk +Password +View Bunk
+password Description Details()
+User login()
+Create EV
+Admin
Bunk() View Slot
Login()
Vacancy
+Slot type
Bunk Details +Slot name
11
5.1 Database Table Structure
Database design
In order to fully use MySQL server technology, it is essential to make sure that the database is
well designed. The files names chosen to label all the tables created within the database
attempt to reflect the table's purpose and, therefore, contribute to well-design system.
The intimal step in designing was to decide, according to the requirements and specifications
of the project, which tables should be created, and what type of information each one
should hold. The final design had taken from as explained in figure.
Table Design
User Register & Login
User ID Name Email Id Password Web Address City Question Question 2
1
Primary
key
Primary
key
12
Post Bunk Details
User ID Business Location Landmark Web Web 2 Address City Geo
Name Location
Primary
key
Booking Status
User ID Business Card Exp Date CVV Web Qty Price Email
Name Details
Primary
key
Admin Login
Int Varchar
100 100
Primary
key
13
5.2 SCREENSHOTS
1. USER REGITRATION
PAGE
14
3. BOOKING PAGE
4. MAIN PAGE
15
5. INDEX PAGE
16
6. Coding
Index.html
<!DOCTYPE html>
<html ng-app="myapp">
<head>
<meta charset="utf-8">
<script
src="vendor/modernizr/modernizr.js"></script>
<!--[if IE]>
<![endif]-->
<script src="vendor/respond/respond.js"></script>
<script src="vendor/excanvas/excanvas.js"></script>
<![endif]-->
<style>
.container {
.row{
margin-left:50px;
18
margin-right:50px;
text-align:center;
}
.login
p{ position:relativ
e; text-
align:center; font-
size:30px;
color:#ffffff;
p{ position:relative;
text-align:center;
font-
family:''Quicksand'';
font-size:35px;
color:#ffffff; font-
weight:200;
h2{ position:relative;
text-align:center; font-
size:30px; color:#ffffff;
font-weight:200;
h3{
text-align:center; font-
size:80px;
19
color:#ffffff;
font-weight:200;
}
img{ align:midd
le;
</style>
<script src="cordova.js"></script>
<script>
function onLoad()
function deviceReady()
function backButtonCallback()
navigator.app.exitApp();
</script>
20
<script src="js/angular-1.3.js"></script>
<script
src="js/angular_cookies.js"></script>
</head>
<body >
<div class="container">
<div class="row">
</div>
<a href="user_register.html"><button
href="user_register.html" style="background-color:white;font-
weight:bold;color:#000;letter- spacing:1px">User Register</button> </a><br><br>
<a href="worker_login.html"><button
href="worker_login.html" style="background-color:white;font-weight:bold;color:#000;letter-
spacing:1px">Bunk Login</button> </a><br><br>
<a href="worker_register.html"><button
href="worker_register.html" style="background-color:white;font-
weight:bold;color:#000;letter- spacing:1px">Bunk Register</button> </a><br><br>
</div>
21
<div class="col-md-4" >
</div>
</div>
</div>
<script src="vendor/jquery/jquery.js"></script>
<script src="vendor/bootstrap/bootstrap.js"></script>
<script src="vendor/jquery.validation/jquery.validation.js"></script>
<script src="vendor/owlcarousel/owl.carousel.js"></script>
<script src="vendor/flexslider/jquery.flexslider-min.js"></script>
<script src="vendor/countdown/countdown.min.js"></script>
<script src="vendor/chosen/chosen.jquery.min.js"></script>
<script src="vendor/pricefilter/jquery.pricefilter.js"></script>
<script src="vendor/masonry/imagesloaded.pkgd.min.js"></script>
<script src="vendor/masonry/masonry.pkgd.min.js"></script>
<script src="vendor/uikit/uikit.js"></script>
<script
src="vendor/magnific-popup/jquery.magnific-popup.js"></script>
<script src="js/theme.js"></script>
<script type="text/javascript"
src="style-switcher/js/switcher.js"></script>
<script
src="js/angular_product.js"></script>
<body onload="onLoad()">
22
</body>
</html>
$http)
{
$scope.user_login = function()
$http.post('user_login.php',
if(data.success == 1)
alert("Login Successful");
$cookieStore.put("cook_user_email",data.email);
$cookieStore.put("cook_staff_dept",data.field_1); window.location =
else if(data.success == 2)
else
alert("Login Unsuccessful");
23
}
});
$scope.cook_user_email =
$cookieStore.get("cook_user_email");
$scope.cook_staff_dept = $cookieStore.get("cook_staff_dept");
$scope.worker_register = function()
$http.post('worker_register.php',{ 'name':$scope.name,'email':
if(data.success == 1)
alert("Registered successfully");
window.location =
"worker_login.html"; return;
}
else if(data.success == 2)
else if(data.success == 0)
24
{
alert("Error");
else
alert(" Un Successfull");
});
//Worker login
$scope.worker_login = function()
$http.post('worker_login.php',
if(data.success == 1)
$cookieStore.put("cook_type",data.field_1);
// Home Page
return;
else if(data.success == 2)
25
{
else
alert("Login Unsuccessful");
});
$scope.user_logout = function()
$cookies.cook_user_email = "";
$cookies.cook_admin_email = "";
else
return false;
//ADMIN REGISTER
$scope.user_register = function()
$http.post('user_register.php',{
26
'name':$scope.name,'email':$scope.email,'password':
$scope.password,
if(data.success == 1)
"user_login.html"; return;
else if(data.success == 2)
else if(data.success == 0)
alert("Error");
else
alert(" Un Successfull");
});
//ADMIN LOG IN
$scope.admin_login = function()
27
$http.post('admin_login.php',
if(data.success == 1)
alert("Login Successful");
$cookieStore.put("cook_admin_email",data.email); window.location =
else if(data.success == 2)
else
alert("Login Unsuccessful");
});
$scope.cook_admin_email =
$cookieStore.get("cook_admin_email");
$scope.admin_register =
function()
28
$http.post('admin_register.php',{
'name':$scope.name,'email':$scope.email, 'password':
$scope.password,'web': $scope.web})
if(data.success == 1)
"admin_login.html"; return;
else
alert("Invalid Inputs");
});
$http.post('get_admin_info.php')
if(data.success == 1)
$scope.details = data.details;
});
29
$http.post('get_user_info.php',
'email':$scope.cook_user_email
})
if(data.success == 1)
$scope.userdetails = data.details;
});
$scope.myinfovar = true;
$scope.update_info =
function(email,password,name,web)
$scope.myinfovar = false;
$scope.email = email;
$scope.password = password;
$scope.name = name;
$scope.web = web;
//window.location = "home.html";
$scope.save_info = function()
30
{
$http.post('admin_update.php',{ 'name':$scope.name,'email':
if(data.success == 1)
"admin_post_info.html"; return;
}
else
alert("Invalid Inputs");
});
$scope.newpassword = function()
$http.post('newpassword.php',
})
if(data.success == 1)
31
{
else if(data.success == 2)
else
alert("Login Unsuccessful");
});
});
32
User_login.php
<?php
$response = array();
require_once DIR .
'/db_connect.php';
// connecting to db
$data = json_decode(file_get_contents("php://input"));
$get_empid = mysql_real_escape_string($data->email);
$get_password = mysql_real_escape_string($data-
>password);
if(empty($get_empid) || empty($get_password))
else
if
(mysql_num_rows($result))
33
{
$Allresponse = mysql_fetch_array($result);
$response = array();
$response = $Allresponse;
$response["success"] = 1; echo
json_encode($response);
else
// success
$response["success"] = 0;
json_encode($response);
?>
34
7. Future Scope
35
8. Conclusion
Our proposed application aims to contribute to this movement by providing users with the
ability to easily locate nearby EV stations based on their locality. Ensuring that users
can always access a charging station within their driving capacity anywhere in the city is
crucial for the widespread adoption and convenience of EVs.
36
9. References
https://
www.sourcecodester
.com/
Software
Engineering by
K.K. Aggarwal
https://
www.academia.edu
https://
www.geeksforgeeks
.org/
37
38
39