Group
Group
ANDROID APP
BACHELOR OF TECHNOLOGY
in
Computer Science and Engineering
By
Place: Meerpet
Date: /04/2024
CERTIFICATE
This is to certify that the main project report entitled PARK SMART:
SIMPLIFYING PARKING WITH AN ANDROID APP, being submitted by
Ms. Chinthala Harshitha, bearing Roll.No:.20K91A0543, Mr. Bandapally Sai
Teja, bearing Roll.No:.21K95A0503, Mr. Gollapudi Shivananda Sai, bearing
Roll.No:.20K91A0553 and Mr. Ashanolla Sridhar Reddy, bearing
Roll.No:.20K91A0510 in partial fulfillment of requirements for the award of
degree of Bachelor of Technology in Computer Science and Engineering, to the
TKR College of Engineering and Technology is a record of bonafide work carried
out by him/her under my guidance and supervision.
Guide HoD
(Mrs. V.PRAGATHI) (Dr.A.Suresh Rao)
Place: Meerpet
Date: /04/2024
TABLE OF CONTENTS
ABSTRACT i
ACKNOWLEDGEMENT ii
LIST OF FIGURES iii
1 INTRODUCTION 1
1.1 Motivation 1
2 LITERATURE REVIEW 4
2.1 Review of Literature 4
3 REQUIREMENTS ANALYSIS 6
3.1 Functional Requirements 6
3.2 Non-Functional Requirements 7
4 DESIGN 9
4.1 Modules Description 9
4.2 Data Flow Diagrams 10
4.3 UML Diagrams 12
4.3.1 Use Case Diagram 12
4.3.2 Class Diagram 13
4.3.3 Sequence Diagram 14
4.3.4 Activity Diagram 15
4.4 Algorithm 16
5 CODING 18
5.1 Pseudo Code 18
REFERENCES 32
ABSTRACT
i
ACKNOWLEDGEMENT
Place: Meerpet
Date: /04/2024
ii
LIST OF FIGURES
iii
Chapter 1
INTRODUCTION
1.1 Motivation
The motivation behind developing a smart parking application
that allows users to book parking slots through messages is to address the ever-
growing challenges of urban parking. Urbanization has led to an increase in the
number of vehicles on the road, exacerbating parking congestion in cities
worldwide. This results in wasted time, increased traffic congestion, environmental
pollution, and frustration among drivers. By introducing a smart parking solution
with messaging capabilities, we aim to streamline the parking process, make it more
convenient for users, and contribute to reducing traffic congestion and
environmental impact.
The idea behind an Android time-based parking slot booking system is to let
customers book parking spots ahead of time for a predetermined amount of time.
This creative method reduces uncertainty and stress by allowing users to arrange
their parking according to their schedule, in contrast to sensor-based systems that
detect availability in real time. By giving users the option to reserve times for quick
trips or extended stays, it maximizes the use of parking resources. Integrating
seamlessly with existing infrastructure, it collects data to provide insights for better
management and enhances the whole parking experience with efficiency and ease.
1
parking places for predetermined amounts of time in advance. The system's objectives
are to maximize the use of parking resources, improve user experience, and provide
parking operators with insightful data for improved management by utilizing time-
based booking.
Key Objectives:
Provide a user-friendly Android app that allows users to reserve parking spaces
depending on time.
Include a safe payment channel so that reservations for parking can be made
online.
Integrate with the current parking infrastructure to promote scalability and easy
adoption.
1.3.2 Limitations:
Requires hardware and the entire process is complex.
Is not a user friendly.
2
Expensive.
In the proposed system users will reserve parking spaces based on a time-
based parking system, which makes it possible for them to arrange their parking needs
effectively. By using this technique, users can reduce the chance of arriving at full lots
by ensuring that they have secured parking places allocated for them. In addition to
providing clarity and predictability, time-based reservations, as opposed to sensor-
based ones, provide smoother traffic flow and less congestion because users are aware
of the precise start and finish times of their parking reservations. Time-based system
allows user to park their vehicle for a limited time after reserving the slot and then
they will get notified about the timing of the allotted slot for their vehicle. One of the
main components of the approach we propose is user authentication.
Advance Booking
Notifications
Payment Integration
Revenue Generation
3
Chapter 2
LITERATURE REVIEW
4
3. Title: Smart Parking System with Image Processing Facility
Authors: M.O. Reza, M.F. Ismail, A.A. Rokoni, M.A.R. Sarkar
After gathering and processing data regarding available parking spots, smart
parking systems position the vehicle in a predetermined location. Here is
where a parking assistance system prototype built on the suggested
architecture was built. This article describes the implementation solutions,
software, and hardware used in the creation of the prototype. Here, an efficient
circular design with a unique rack-pinion mechanism that raises and positions
the vehicle is introduced.
5
Chapter 3
REQUIREMENTS ANALYSIS
Parking Space Detection and Display: The system must accurately detect
and display available parking spaces in real time. This functionality ensures
that users are provided with up-to-date information on parking availability,
enhancing their overall parking experience.
2. Reservation System:
3. Payment Integration:
Payment Methods: The system must support multiple payment methods for
parking fees. By offering various payment options such as credit/debit cards,
mobile wallets, or prepaid accounts, the system caters to the diverse
preferences of users, enhancing accessibility and convenience.
4. Administrative Tools:
6
3.2 Non-Functional Requirements
1. Performance:
Fast Loading: The application needs to load quickly, ensuring users have
a smooth experience accessing its features, especially during peak usage.
2. Reliability:
3. Security:
7
4. Scalability:
8
Chapter 4
DESIGN
2. Authentication Module:
This module manages the procedures for user authorization and
authentication.
To use the functions of the system, users might have to log in.
Based on user roles and permissions, it validates user credentials and
allows access to the system's functionalities.
4. Timer Module:
This module is essential to the system's operation. Users can use it to
schedule time limits for their parking sessions.
When a user chooses how long they want to use a parking place, the
system initiates a countdown timer.
9
The user is notified by the system when the timer expires, signaling
that their parking period is about to end.
5. Reservation Framework:
With the help of this module, users can reserve parking spots ahead of
time.
Users can choose a parking spot and indicate how long they would
want to park there.
The selected parking space is reserved by the system for the allotted
amount of time, keeping other users from using it during that period.
6. Notification Mechanism:
Users receive notifications from this module at different points during
their parking experience.
Reminders before the end of the parking period, timer warnings, or
confirmation messages following a successful reservation are some
examples of notifications.
10
storage and report production are described by DFD.
The Data Flow Diagram (DFD) for the smart parking reservation system
illustrates the flow of data between external entities, processes, and data
stores. External entities such as Users, Parking Lots, and Payment Gateways
interact with processes such as Reserve Parking Spots and Process Payments.
11
4.3 UML Diagrams
Unified Modeling Language (UML) is a standardized visual modeling
language used in software engineering to depict the structure and behavior of
systems.
It offers a set of graphical notations for creating visual representations of
software systems, making it easier to understand, communicate, and design
complex systems.
A system's architecture, relationships, behaviour, and structure can all be
represented via UML diagrams.
The use case diagram illustrates the various actions or use cases that users
can perform with the system, such as reserving a parking spot, making a
payment, etc.
12
4.3.2 Class Diagram
The class diagram represents the classes and their relationships within the
system, including entities like User, ParkingSpot, and ParkingLot. It shows
how these classes interact and the attributes and methods they possess.
13
4.3.3 Sequence Diagram
The sequence diagram demonstrates the sequence of interactions between
system components or objects for a particular use case, such as the steps
involved in reserving a parking spot, including user input, validation, and
confirmation.
14
4.3.4 Activity Diagram
The activity diagram outlines the workflow or activities within the system,
such as the process flow for reserving a parking spot from start to finish,
including user interactions and system responses.
15
4.4 Algorithm
Step 1: User Authentication
1. Prompt user to login or register.
2. If user chooses to register:
a. Collect necessary information (e.g., username, password, email).
b. Store the information securely.
3. If user chooses to login:
a. Verify user credentials.
b. If credentials are valid, allow access to the system.
16
Step 6: Exiting the Parking Spot
1. Detect when the user leaves the parking spot.
2. Mark the parking spot as available again.
3. Update the database accordingly.
17
Chapter 5
CODING
5.1 Pseudo Code
package New;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
@WebService(serviceName = "Parkingservice")
public class Parkingservice {
@WebMethod(operationName = "Register")
public String Register(@WebParam(name = "username") String username,
@WebParam(name = "password") String password, @WebParam(name = "email")
String mail, @WebParam(name = "mobile") String mobile) {
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/newpark","root","pa
ssword");
PreparedStatement ps=con.prepareStatement("Insert into
user(username,password,mail,mobile) Values(?,?,?,?)");
ps.setString(1, username);
18
ps.setString(2, password);
ps.setString(3, mail);
ps.setString(4, mobile);
ps.executeUpdate();
}
catch(ClassNotFoundException | SQLException e)
{
System.out.println(e);
}
return "success";
}
@WebMethod(operationName = "Login")
public String Login(@WebParam(name = "user_name") String user_name,
@WebParam(name = "password") String password) {
try{
Class.forName("com.mysql.jdbc.Driver");
Connection
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/newpark","root","pa
ssword");
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("Select * from user where
username='"+user_name+"' and password='"+password+"' ");
if(rs.next())
{
return "success";
}
else{
return "username and password invalid";
}
}
catch(Exception e){
e.printStackTrace();
}
19
return "internal server error";
}
@WebMethod(operationName = "getDeviceList1")
public String getDeviceList1 (@WebParam(name = "from") String
vegitable,String method) {
sb.append("Place: ").append(place);
sb.append("\n");
sb.append("AvailableSlots: ").append(slots);
sb.append("\n");
sb.append("Price: ").append(price);
sb.append("@");
}
}
catch(ClassNotFoundException | SQLException ex){
//Logger.getLogger(Registration.class.getName()).log(Level.SEVERE,null,ex);
return "server temporarily not avilable";
}
System.out.println(sb.toString());
20
return sb.toString();
}
@WebMethod(operationName = "BankDetails")
public String BankDetails(@WebParam(name = "name") String name,
@WebParam(name = "accountno") String accountno, @WebParam(name = "cvv")
String cvv, @WebParam(name = "expirydate") String expirydate,@WebParam(name
= "password") String password) {
try{
Class.forName("com.mysql.jdbc.Driver");
Connection
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/newpark","root","pa
ssword");
PreparedStatement ps=con.prepareStatement("Insert into
bankdetails(name,accountno,cvv,expirydate,password)
Values('"+name+"','"+accountno+"','"+cvv+"','"+expirydate+"','"+password+"')");
ps.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}
return "success";
}
@WebMethod(operationName = "BLogin")
public String BLogin(@WebParam(name = "user_name") String user_name,
@WebParam(name = "password") String password) {
try{
Class.forName("com.mysql.jdbc.Driver");
Connection
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/newpark","root","pa
ssword");
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("Select * from bankdetails where
name='"+user_name+"' and password='"+password+"' ");
21
if(rs.next())
{
return "success";
}
else{
return "username and password invalid";
}
}
catch(Exception e){
e.printStackTrace();
System.out.println(e);
}
return "internal server error";
}
@WebMethod(operationName = "Sms")
public String Sms(@WebParam(name = "phone") String phno) {
try{
Class.forName("com.mysql.jdbc.Driver");
Connection
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/newpark","root","pa
ssword");
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("Select * from user where mobile='"+phno+"'");
if(rs.next())
{
return "success";
}
else
{
return "mobile number is invalid";
}
}
catch(Exception e){
22
e.printStackTrace();
System.out.println(e);
}
return "internal server error";
}
}
23
Chapter 6
1. Parking Spot Detection: The system detects available parking spots and
displays them on a screen within the app, allowing users to easily find vacant
spots near their location.
3. Payment Integration: Users can make parking payments directly through the
app using various payment methods such as credit/debit cards, mobile wallets,
or prepaid accounts.
5. Parking Time Tracking: The app tracks the duration of the parked vehicle
and calculates parking fees accordingly, providing transparency and accuracy
in billing.
7. User Management: The system allows users to create accounts, manage their
parking reservations, and update personal information within the app.
24
6.2 Method of Implementation
6.2.1 Output Screens
25
Fig. 6.5 Slot Booking Activity Fig. 6.6 Slot View Activity
Fig. 6.7 Bank Login Activity Fig. 6.8 Bank Account Adding Activity
26
Fig. 6.9 QR Code Scanner Button Fig. 6.10 QR Code Scanner Activity
27
6.2.2 Result Analysis
In the result analysis, the Android-based smart parking system demonstrated
promising outcomes.
User feedback highlighted high satisfaction with the app's functionality,
particularly regarding parking spot detection, reservation process, and making
payments.
System performance was found to be reliable and accurate, with minimal
technical issues reported.
The implementation of the smart parking system resulted in improved parking
efficiency.
Overall, the analysis indicates a successful implementation of the Android-
based smart parking system, with positive impacts on user experience and
parking management efficiency.
28
Chapter 7
29
username and password fields are
password populated
3. Click on User is logged
login button in successfully
4. Verify user Dashboard page
is redirected to is displayed
dashboard
TC003 Verify user 1. Navigate to Login page is Pass
cannot log in with login page displayed
invalid credentials
2. Enter Invalid
invalid username credentials error
and/or password message is displayed
3. Click on User remains on
login button login page
TCOO Verify user 1. Navigate to Vehicle Pass
4 can add a vehicle vehicle management page is
to their account management page displayed
TC005 Verify user 1. Navigate to Parking Pass
can search for parking availability page is
available parking availability page displayed
spots
2. Select desired Available
location and time parking spots are
displayed
3. Click on List of available
'Search' button parking spots is
shown
4. Verify Available
search results parking spots are
displayed correctly
TC006 Verify user 1. Navigate to Parking Pass
can reserve a parking reservation page is
parking spot reservation page displayed
2. Select Parking spot is
30
desired parking selected
spot from
available list
3. Enter required Reservation details
details (time, are entered
vehicle info, etc.)
4. Confirm Reservation is
reservation confirmed
7.2 Validation
Validation ensures that a product, system, or service meets specified
requirements and satisfies stakeholder needs. In software development, validation
ensures correct and effective functionality, delivering intended features to users.
Validation involves testing, verification, and evaluation to confirm compliance with
quality standards, regulatory requirements, and user expectations.
1. Functional Testing: Examining key functions such as parking spot
detection, reservation and booking, payment integration, QR code
scanning, and parking time tracking.
2. Usability Testing: Gathering user feedback on ease of use, clarity of
instructions, and overall satisfaction with the application.
3. Accuracy Testing: Validating precision in parking spot detection, and
payment processing.
4. Integration Testing: Ensuring seamless interaction between different
components within the application.
5. Performance Testing: Evaluating responsiveness, loading times, and
resource utilization under various conditions.
6. Security Testing: Assessing data protection measures to safeguard
user data, payment information, and sensitive transactions.
7. End-to-end Testing: Validating smooth process flow from spot
detection to payment processing, ensuring uninterrupted user
experience.
31
Chapter 8
32
REFERENCES
[1] S. Jain, R. Gupta, and P. K. Goyal, "Smart parking management system
using Android application and cloud computing," International Journal of
Scientific Research in Computer Science, Engineering and Information
Technology (IJSRCSEIT), vol. 4, no. 6, pp. 362-366, 2019.
33