Professional Documents
Culture Documents
Chapter-1
INTRODUCTION
1.1 Objective
As the population increased in the metropolitan cities, the usage of vehicles got
increased. It causes problem for parking which leads to traffic congestion, driver
frustration, and air pollution. When we visit the various public places like Shopping malls,
multiplex cinema hall & hotels during the festival time or weekends it creates more parking
problem.
Our objective is to present a parking system that regulates a number of vehicles to the
nearest parking space at any given time based on the parking space availability. “Smart
Parking System (SPS)” is implemented using the Operating System Android. The user
requests the Parking Control Unit to check the status of available parking slots. As soon as
the user request, all the available free slots are displayed to the user. If the availability of
parking space is confirmed, the user can book the parking slot and proceed to pay. The user
fixes his slots by showing his confirmation details to the concerned person at Parking area.
After successful parking the slot details are updated simultaneously in the Administrators
database. Finally the time to find for an empty parking slot is minimized. The main
responsibility of the Smart Parking System (SPS) is to help the user to find an area where
parking is available and total number of slots free in that area. Thus our proposed
methodology reduces the user’s effort and time of searching a parking slot.
Parking the car today need parking policies for safety and security reasons. There is
always competition for the parking space. A good solution to overcome parking crises
would be by increasing the number of parking spaces or else enlarge the parking lots, but
this will lead to huge investment. However better management of existing parking spaces
will be wise method. The availability of parking spaces should be improved. Another
approach for managing parking in Space is by improving the efficiency of the use of
existing parking spaces, by informing user about available parking space and guiding him
1
Smart Parking Lot System (IPark) 2019-2021
The Non-assisted parking search (NAPS) does not have the server, and no information
will be provided to a user. The user has to wander around the parking spot for finding the
vacancy of space. The slot will be allocated to the user who reaches the vacant slot first.
The system only provide the Entrance to the parking area not provide the parking
slot
The car owner search the parking slot after entering to the parking area. It will take
time to find the slot.
The car owner have no idea about the parking area is fill or not. His responsibility
to find the parking slot and park his vehicle safely
The owner need to remain in the parking slot for his vehicle parked.
Difficult to find his vehicle from a large area of parking after complete his
shopping
Safety for the vehicle is less.
2
Smart Parking Lot System (IPark) 2019-2021
1.5 Motivation
The main motivation of this project is to reduce the traffic congestion that occurs in
and around the urban areas which is caused by vehicles searching for parking. In the
newspapers, we can able to see many articles regarding the parking problem all over India
like Delhi, Mumbai, Chennai, Bangalore and many metropolitan cities. Growing population
has created many problems; parking problem is one of the big problems in our day to day
life. In a recent survey, researchers have found that for one year, car cruising for parking
created the equivalent of 38 times trips around the world, burning 177914.8l of fuel and
producing 730 tons of CO2. To reduce all these factors we go for the smart parking system.
Moreover, most of the parking management systems which are presently available are
static and serve only on a small scale. There needs to be a system to solve all these
discouraging issues of parking vehicles. Use of internet would make the system more
3
Smart Parking Lot System (IPark) 2019-2021
flexible as anyone can access and use such a system from anywhere. With the advent of
technology geographic information systems help in getting information related to geology
of the earth. So such systems contribute a lot in collecting information for developing a
parking management system with a huge database of maps. Almost everyone today has an
internet enabled smart phone, so making such a application available to the user on his
smart phone is very efficient. Without wasting so much of user's time such application
helps him to search the parking space.
4
Smart Parking Lot System (IPark) 2019-2021
Chapter-2
LITERATURE SURVEY
2.1 Abstract
“Intelligent Parking System using Android Application” provides user an easy way of
booking the parking slots through an application. To avoid the problem of traffic
conjunction in commercial areas that unnecessarily consumes time, this paper provides the
easy reservation system for parking. In this application the user can view various parking
slots and check for the availability of slots. Whenever a user books a particular slot it will
be marked red and all the available slots will be green. Booking can be done through credit
card/net banking. This application also provides an additional feature of canceling the
booked slot within 20 minutes from the time of booking. If the user fails to reach the
destination on time then the reservation will be cancelled and the payment is refunded. On
successful payment a parking number is sent to user’s email or to his mobile number for
further enquiry. Hence this application reduces the user’s effort and time of searching the
parking slot and also avoids conjunction of traffic.
2.2 Introduction
Too many cars, too much traffic and there is no enough parking area. This
is the situation which is seen in most of the metropolitan cities today. People
keep on roaming on roads searching for a parking space to park their vehicles
especially at peak hours of time. Our proposed system presents a smart parking
system that regulates a number of vehicles to the nearest parking space at any
given time based on the parking space availability. “Intelligent Parking System
5
Smart Parking Lot System (IPark) 2019-2021
(IPS)” is implemented using the Operating System Android. The user requests
the Parking Control Unit to check the status of available parking slots. As
soon as the user request, all the available free slots are displayed to the user. If
the availability of parking space is confirmed, the user can book the parking
slot and proceed to pay. The vehicle follows its path towards the starting of the
parking area. The user fixes his slots by showing his confirmation details to the
concerned person at Parking area. After communicating, the vehicle will
further follow its path to the allocated parking slot. After successful parking the
slot details are updated simultaneously in the Administrators database. Finally
the time to find for an empty parking slot is minimized. The main responsibility
of the Intelligent Parking System (IPS) is to help the user to find an area where
parking is available and total number of slots free in that area. Thus our
proposed methodology reduces the user’s effort and time of searching a parking
slot.
6
Smart Parking Lot System (IPark) 2019-2021
To ensure safe and secure parking slots within limited area, which is of
most urge.
2.4 Methodology
Step1: Initially the slot selection is made by the user from his mobile
phone. He checks for the availability of a parking slot that is nearest to his
location. If it is available, he moves to the next stage or else go to the initial
state.
Step2: Transfers request for parking slot from the mobile using Android
application.
Step3: The Parking Control Unit (PCU) gets the slot number requested
by the user.
Step5: After reserving a particular slot by the user then the status of that
respective slot will be marked as RED=RESERVED and the remaining will be
GREEN=EMPTY.
Step6: As soon as the vehicle gets entered into the parking slot, the
timer gets ON and measures the total time.
Step7: As soon as the vehicle moves out of the parking slot, the timer gets
7
Smart Parking Lot System (IPark) 2019-2021
Chapter-3
REQUIREMENT ANALYSIS
Mobile Application
3.2.1.2 Server-side
Initially, the administrator logins the application by using his username and password. The
administrator has authority to add new users and stores their details in the database which are
used for further purpose. On receiving the request at server side by user, the administrator
shows all available locations at the nearest requested destination
Login: The administrator can login to the application by giving email and password. If
the administrator gets successfully login then the administrator is said to be
authorized. After getting login to the application the administrator can carry out many
tasks such as:
Adding Parking Locations
View Parking Locations
View All Users
View All Bookings
Add and view Parking Locations: The administrator can add different locations where
parking slots are available. The user can select any location which is nearest to his
destination. The administrator can also delete the locations if he wishes. The
administrator can view different locations where parking slots are available and can
also check the status of different parking slots.
View All Users and Respective Booked Slots: The administrator can view all the
users who are using the application and can also check the booking details such as the
time and date at which the user requires a slot, number of hours a user is using the
allocated slot, at which location he requires a slot etc., The administrator can view all
the reserved slots of all registered users. The administrator takes this as a reference for
further allocation.
Linux Kernel
Android relies on Linux version 2.6 for core system services such as security,
memory management, process management, network stack, and driver model. The kernel
also acts as an abstraction layer between the hardware and the rest of the software stack. The
Linux kernel is an operating system kernel used by the Linux family of Unix-like operating
systems. It is one of the most prominent examples of free and open source software.
The Linux kernel is released under the GNU General Public License version 2
(GPLv2),(plus some firmware images with various licenses), and developed by contributors
worldwide. The Linux kernel has extensive support for and runs on many virtual machine
architectures both as the host operating system and as a guest operating system. The virtual
machines usually emulate Intel x86 family of processors, though in a few cases PowerPC or
ARM processors are also emulated.
At Google, team led by Rubin developed a mobile device platform powered by the
Linux kernel. Google marketed the platform to handset makers and carriers on the premise of
providing a flexible, upgradable system. Google had lined up a series of hardware component
and software partners and signaled to carriers that it was open to various degrees of
cooperation on their part. Speculation about Google's intention to enter the mobile
communications market continued to build.Reports noted that Google wanted its search and
applications on mobile phones and it was working hard to deliver that. Some speculated that
as Google was defining technical specifications, it was showing prototypes to cell phone
manufacturers and network operators.
The functional requirements for a system describe what the system should do. These
requirements depend on the type of software being developed, the expected users of the
software and the general approach taken by the organization when writing the requirements.
When expressed as user requirements, the requirements are usually described in a fairly
abstract way. However, functional system requirements describe the system function in
detail, its inputs and outputs, exceptions, and so on.
Provides the searching facilities based on various factors. Such as Types, Vehicles,
Parking Fees, Customers.
It tracks all the information of Duration, Parking Slots, Parking Fees ect
Manage the information of Duration
Shows the information and description of the Types, Vehicles
It deals with monitoring the information and transactions of Parking Fees.
Manage the information of Types
Editing, adding and updating of Records is improved which results in proper resource
Manage the information of Parking Fees
Integration of all records of Customers
3.4.1 Performance
This section specifies the performance requirements that the Smart Parking system must
adhere to.
The Smart Parking system shall be able to provide continuous updating of every
parking space monitored on a timed cycle. This involves designing an optimized
scheduling algorithm.
The Smart Parking system shall be able to provide the user with the information that
contains the most recent updates of the parking spaces.
The Smart Parking system shall be able to send customers’ text messages and emails.
This is measured as the time sent, not received. Phone and Internet network delays are
not controllable by this system.
3.4.2 Reliability
This section specifies the reliability requirements imposed upon the Smart Parking
system.
The Smart Parking system shall have a reliability rating less than 1. Reliability is
defined as providing the user up to date, correct information when they need it.
Information is considered correct when the parking spaces are accurately reported and
the information is no more than few seconds old.
3.4.3 Maintainability
This section specifies the maintainability requirements imposed upon the Smart Parking
system.
The Smart Parking system shall not need more than few hours of weekly
maintenance.
The Smart Parking system shall not need more than few days of annual maintenance
(system maintenance different from weekly maintenance).
3.4.4 Environmental
This section specifies the environmental requirements imposed upon the Smart Parking
system.
The Smart Parking system shall not cause physical harm to users and non-users.
The Smart Parking system shall not cause interference to external systems.
The feasibility of the project is analyzed in this phase and business proposal is put
forth with a very general plan for the project and some cost estimates. During system analysis
the feasibility study of the proposed system is to be carried out. This is to ensure that the
proposed system is not a burden to the company. For feasibility analysis, some
understanding of the major requirements for the system is essential.
Economical Feasibility
Technical Feasibility
Social Feasibility
Economical Feasibility
This study is carried out to check the economic impact that the system will have on
the organization. The amount of fund that the company can pour into the research and
development of the system is limited. The expenditures must be justified. Thus the developed
system as well within the budget and this was achieved because most of the technologies
used are freely available. Only the customized products had to be purchased.
Technical Feasibility
This study is carried out to check the technical feasibility, that is, the technical
requirements of the system. Any system developed must not have a high demand on the
available technical resources. This will lead to high demands on the available technical
resources. This will lead to high demands being placed on the client. The developed system
must have a modest requirement, as only minimal or null changes are required for
implementing this system.
Social Feasibility
The aspect of study is to check the level of acceptance of the system by the user. This
includes the process of training the user to use the system efficiently. The user must not feel
threatened by the system, instead must accept it as a necessity. The level of acceptance by the
users solely depends on the methods that are employed to educate the user about the system
and to make him familiar with it. His level of confidence must be raised so that he is also able
to make some constructive criticism, which is welcomed, as he is the final user of the system.
Features of VSCODE
3. Customize every feature to your liking and install any number of third-party
extensions.
4. VS Code includes enriched built-in support for Node.js development with JavaScript
and TypeScript, powered by the same underlying technologies that drive Visual
Studio.
3.6.3 Postman
The Postman Rest Client is a very popular and easy to use HTTP Request composer
that makes it easy to call web services, similar to Fiddler's Composer. It also provides as an
alternative for autogenerating API documentation to ServiceStack's Swagger support that
makes it easier to call existing services but does require users to install the Postman Rest
Client.
Postman’s vision is to help you build a super fast and smooth workflow for API
development keeping some key questions in mind:
8. Automate collections
3.6.4 MongoDB
Features
Ad hoc queries
MongoDB supports field, range queries, regular expression searches.[8] Queries can return
specific fields of documents and also include user-defined JavaScript functions. Queries can
also be configured to return a random sample of results of a given size.
Indexing
Fields in a MongoDB document can be indexed with primary and secondary indices.
Replication
MongoDB provides high availability with replica sets.[9] A replica set consists of two or more
copies of the data. Each replica set member may act in the role of primary or secondary
replica at any time. All writes and reads are done on the primary replica by default.
Secondary replicas maintain a copy of the data of the primary using built-in replication.
When a primary replica fails, the replica set automatically conducts an election process to
determine which secondary should become the primary. Secondaries can optionally serve
read operations, but that data is only eventually consistent by default.
Load balancing
MongoDB scales horizontally using sharding. The user chooses a shard key, which
determines how the data in a collection will be distributed. The data is split into ranges (based
on the shard key) and distributed across multiple shards. (A shard is a master with one or
more slaves.). Alternatively, the shard key can be hashed to map to a shard – enabling an
even data distribution.
MongoDB can run over multiple servers, balancing the load or duplicating data to keep the
system up and running in case of hardware failure.
File storage
MongoDB can be used as a file system with load balancing and data replication features over
multiple machines for storing files.
This function, called grid file system,[11] is included with MongoDB drivers. MongoDB
exposes functions for file manipulation and content to developers. GridFS is used in plugins
for Nginx[12] and lighttpd.[13] GridFS divides a file into parts, or chunks, and stores each of
those chunks as a separate document.[14]
Aggregation
The aggregation framework enables users to obtain the kind of results for which
the SQL GROUP BY clause is used. Aggregation operators can be strung together to form a
pipeline – analogous to Unix pipes. The aggregation framework includes the $lookup
operator which can join documents from multiple documents, as well as statistical operators
such as standard deviation.
JavaScript can be used in queries, aggregation functions (such as MapReduce), and sent
directly to the database to be executed.
Capped collections
MongoDB supports fixed-size collections called capped collections. This type of collection
maintains insertion order and, once the specified size has been reached, behaves like
a circular queue.
Transactions
The current stable release does not support transactions, but transactions are scheduled to be
available in a new major release.
MongoDB Compass is designed to allow users to easily analyze and understand the contents
of their data collections within MongoDB and perform queries, without requiring knowledge
of MongoDB query syntax.
MongoDB Compass provides users with a graphical view of their MongoDB schema by
randomly sampling a subset of documents from the collection. Sampling documents
minimizes performance impact on the database and can produce results quickly.
FEATURES
Chapter-4
Methods for preparing input validations and steps to follow when error occur.
1. Input Design is the process of converting a user-oriented description of the input into a
computer-based system. This design is important to avoid errors in the data input process and
show the correct direction to the management for getting correct information from the
computerized system.
2. It is achieved by creating user-friendly screens for the data entry to handle large
volume of data. The goal of designing input is to make data entry easier and to be free from
errors. The data entry screen is designed in such a way that all the data manipulates can be
performed. It also provides record viewing facilities.
3. When the data is entered it will check for its validity. Data can be entered with the
help of screens. Appropriate messages are provided as when needed so that the userwill not
be in maize of instant. Thus the objective of input design is to create an input layout that is
easy to follow.
A quality output is one, which meets the requirements of the end user and presents the
information clearly. In any system results of processing are communicated to the users and to
other system through outputs. In output design it is determined how the information is to be
displaced for immediate need and also the hard copy output. It is the most important and
direct source information to the user. Efficient and intelligent output design improves the
system’s relationship to help user decision-making.
3. Create document, report, or other formats that contain information produced by the
system.
The output form of an information system should accomplish one or more of the
following objectives.
Convey information about past activities, current status or projections of the Future.
Trigger an action.
Confirm an action.
4.3.1.1 Java
A Java Virtual Machine (JVM) enables a set of computer software programs and data
structures to use a virtual machine model for the execution of other computer programs
and scripts. The model used by a JVM accepts a form of computer intermediate
language commonly referred to as Java bytecode. This language conceptually
represents the instruction set of a stack-oriented, capability architecture. Sun
Microsystems states there are over 4.5 billion JVM-enabled devices
A JVM can also execute bytecode compiled from programming languages other than
Java. For example, Ada source code can be compiled to execute on a JVM. JVMs can
also be released by other companies besides Oracle (the developer of Java) — JVMs
using the "Java" trademark may be developed by other companies as long as they
adhere to the JVM specification published by Oracle and to related contractual
obligations.
Java was conceived with the concept of WORA: "write once, run anywhere". This is
done using the Java Virtual Machine. The JVM is the environment in which java
programs execute. It is software that is implemented on non-virtual hardware and on
standard operating systems.
JVM is a crucial component of the Java platform, and because JVMs are available for
many hardware and software platforms, Java can be both middleware and a platform in
its own right,[clarification needed] hence the trademark write once, run anywhere. The use of
the same bytecode for all platforms allows Java to be described as "compile once, run
anywhere", as opposed to "write once, compile anywhere", which describes cross-
platform compiled languages. A JVM also enables such features as automated
exception handling, which provides "root-cause" debugging information for every
software error (exception), independent of the source code.
A JVM is distributed along with a set of standard class libraries that implement the
Java application programming interface (API). Appropriate APIs bundled together
form the Java Runtime Environment (JRE).
Java's execution environment is termed the Java Runtime Environment, or JRE.
4.3.1.2 Android
Android uses a special virtual machine, e.g. the Dalvik Virtual Machine. Dalvik uses
special bytecode. Therefore you cannot run standard Java bytecode on Android. Android
provides a tool "dx" which allows converting Java Class files into "dex" (Dalvik Executable)
files. Android applications are packed into an .apk (Android Package) file by the program
"aapt" (Android Asset Packaging Tool) To simplify development Google provides the
Android Development Tools (ADT) for Eclipse . The ADT performs automatically the
conversion from class to dex files and creates the apk during deployment. Android supports
2-D and 3-D graphics using the OpenGL libraries and supports data storage in a SQLite
database.
4.3.1.3 NodeJS
a single programming language, rather than different languages for server side and client side
scripts.
Node.js is primarily used to build network programs such as Web servers. The biggest
difference between Node.js and PHP is that most functions in PHP block until completion
(commands execute only after previous commands finish), while Node.js functions are non-
blocking (commands execute concurrently or even in parallel, and use callbacks to signal
completion or failure).
1. Platform architecture
2. Industry support
There are thousands of open-source libraries for Node.js, most of them hosted on
the npm website. The Node.js developer community has two main mailing lists and
the IRCchannel #node.js on freenode. There are multiple developer conferences and events
that support the Node.js community including NodeConf, Node Interactive and Node
Summit as well as a number of regional events.
When discussing Node.js, one thing that definitely should not be omitted is built-in support
for package management using the NPM tool that comes by default with every Node.js
installation. The idea of NPM modules is quite similar to that of Ruby Gems: a set of publicly
available, reusable components, available through easy installation via an online repository,
with version and dependency management.
A full list of packaged modules can be found on the npm website, or accessed using the npm
CLI tool that automatically gets installed with Node.js. The module ecosystem is open to all,
and anyone can publish their own module that will be listed in the npm repository. A brief
introduction to npm can be found in a Beginner’s Guide, and details on publishing modules in
the npm Publishing Tutorial.
Some of the most useful npm modules today are:
4.3.1.4 XML
The design goals of XML emphasize simplicity, generality, and usability across
the Internet. It is a textual data format with strong support via Unicode for different human
languages. Although the design of XML focuses on documents, the language is widely used
for the representation of arbitrary data structures such as those used in web services.
The essence of why extensible markup languages are necessary is explained at Markup
language (for example, see Markup language § XML) and at Standard Generalized Markup
Language.
XML has come into common use for the interchange of data over the
Internet. IETF RFC:3023, now superseded by RFC:7303, gave rules for the construction
of Internet Media Types for use when sending XML. It also defines the media
types application/xml and text/xml, which say only that the data is in XML, and nothing
about its semantics. The use of text/xml has been criticized as a potential source of encoding
problems and it has been suggested that it should be deprecated.
The DFD is also called as bubble chart. It is a simple graphical formalism that can be
used to represent a system in terms of input data to the system, various processing carried out
on this data, and the output data is generated by this system.
The data flow diagram (DFD) is one of the most important modeling tools. It is used
to model the system components. These components are the system process, the data used by
the process, an external entity that interacts with the system and the information flows in the
system.
Smart Parking System Data flow diagram is often used as a preliminary step to create an
overview of the Car Parking without going into great detail, which can later be elaborated. It
normally consists of overall application dataflow and processes of the Car Parking process. It
contains all of the user flow and their entities such all the flow of Car, Parking, Parking
Space, Parking Slots,.
This is the Zero Level DFD of Smart Parking System, where we have elaborated the
high level process of Car Parking. It’s a basic overview of the whole Smart Parking System
or process being analyzed or modeled. It’s designed to be an at-a-glance view of Parking
Fees, Car Owner and Car Number showing the system as a single high level process, with its
relationship to external entities of Car Parking and Parking Space. In zero level DFD of
Smart Parking System, we have described the high level flow of the Car Parking system.
Main entities and output of First Level DFD (1st Level DFD):
Processing Car records and generate report of all Car
Processing Parking records and generate report of all Parking
Processing Parking Space records and generate report of all Parking Space
Processing Parking Slots records and generate report of all Parking Slots
Processing Parking Fees records and generate report of all Parking Fees
Processing Car Owner records and generate report of all Car Owner
Processing Car Number records and generate report of all Car Number
DFD Level 2 then goes one step deeper into parts of Level 1 of Car Parking. It may require
more functionalities of Car Parking to reach the necessary level of detail about the Car
Parking functioning. First Level DFD (1st Level) of Smart Parking System shows how the
system is divided into sub-systems (processes). The 2nd Level DFD contains more details of
Car Number, Car Owner, Parking Fees, Parking Slots, Parking Space, Parking, Car.
Chapter-5
DETAILED DESIGN
View over All Parking Status: The user can view the parking status of the required
area.
Book for Parking: After viewing the available parking space with minimal cost the
user can book their parking slot. The status of the booking will remain as pending
until admin accept the request.
View Booked Status: The user need to check the booking status, the status will be
remain as pending until the booking accepted by the admin. After the admin accepted
the status will be change as Booked.
View Parked details list: User have the permission to see the parked vehicles details
from all the parking slots. This will help to find their vehicles from a detailed
vehicles report .
Admin Module: This module refers the Admin interaction with the system. It contains of
various sub-modules:
View and process booked details: The user requested booking details can be view to
the admin, Admin is the authority to accept the booking request, The parking status
will be remain as pending until the admin accepted by the request
Detailed reports: Admin will provide a detailed report for further references, it will
include date wise report of parked vehicles in the parking space. This will be used for
further references.
Delete leaving vehicle details: After the parking is finished when the vehicles leave
from the parking space, Admin have the permission to delete the space and it will be
free for another vehicle
Registration Module: This module is for the new sign ups or the registrations made by new
users. After the user enter its details, it is stored in the User database and a request for
registration is send to the Admin, when the admin accepts the request a mail is generated and
send to the user, containing the user Id and password for future use.
Login Module: This module is for the authentication of user and admin when they login,
their credentials are compared with the stored values in the database, if it is a match, the user
or admin is redirected to their respective pages else the login fails and the user or admin have
to again enter authenticated username and password .
User Interaction: The user is anyone who owns a car and who wishes to use the Smart
Parking system. He logs in to the system, makes requests for parking lot, searches available
lots and reserves the plot after his successful payment.
Admin Interaction: Supervises the transactions of the user, he authenticates, broadcasts and
acknowledges the request from the user or client. Makes changes to the database.
Fig. 5.3 depicts the system flow diagram of Smart Parking System, User interacts with the
SPS , it can view parking details by accessing user database. SPS calculates charges by
referring the database. SPS handles the transactions and parking services and updates the
databases accordingly.
The control flow is drawn from one operation to another. This flow can be sequential,
branched, or concurrent. Activity diagrams deal with all type of flow control by using
different elements such as fork, join, etc
It captures the dynamic behavior of the system. Activity diagram is used to show message
flow from one activity to another. Fig. 5.4 depicts the Activity diagram of Smart Parking
System.
A sequence diagram shows object interactions arranged in time sequence. It depicts the
objects and classes involved in the scenario and the sequence of messages exchanged
between the objects needed to carry out the functionality of the scenario. Sequence diagrams
are typically associated with use case realizations in the Logical View of the system under
development. Sequence diagrams are sometimes called event diagrams or event scenarios.
Chapter-6
IMPLEMENTATION
AWS launched in 2006 from the internal infrastructure that Amazon.com built to handle its
online retail operations. AWS was one of the first companies to introduce a pay-as-you-go
cloud computing model that scales to provide users with compute, storage or throughput as
needed.
Amazon Web Services provides services from dozens of data centers spread
across availability zones (AZs) in regions across the world. An AZ represents a location that
typically contains multiple physical data centers, while a region is a collection of AZs in
geographic proximity connected by low-latency network links. An AWS customer can spin
up virtual machines (VMs) and replicate data in different AZs to achieve a highly reliable
infrastructure that is resistant to failures of individual servers or an entire data center.
More than 100 services comprise the Amazon Web Services portfolio, including those for
compute, databases, infrastructure management, application development and security. These
services, by category, include:
Compute
Amazon Elastic Compute Cloud (EC2) provides virtual servers -- called instances -- for
compute capacity. The EC2 service offers dozens of instance types with varying capacities
and sizes, tailored to specific workload types and applications, such as memory-intensive and
accelerated-computing jobs. AWS also provides an Auto Scaling tool to dynamically scale
capacity to maintain instance health and performance.
The Amazon EC2 Container Service and EC2 Container Registry enable customers to work
with Docker containers and images on the AWS platform. A developer can also use AWS
Lambda for serverless functions that automatically run code for applications and services, as
well as AWS Elastic Beanstalk for PaaS. AWS also includes Amazon Lightsail, which
provides virtual private servers, and AWS Batch, which processes a series of jobs.
Storage
Amazon Simple Storage Service (S3) provides scalable object storage for data backup,
archival and analytics. An IT professional stores data and files as S3 objects -- which can
range up to 5 GB -- inside S3 buckets to keep them organized. A business can save money
with S3 through its Infrequent Access storage tier or use Amazon Glacier for long-term cold
storage.
Amazon Elastic Block Store provides block-level storage volumes for persistent data storage
for use with EC2 instances, while Amazon Elastic File System offers managed cloud-based
file storage.
A business can also migrate data to the cloud via storage transport devices, such as AWS
Snowball and Snowmobile, or use AWS Storage Gateway to enable on-premises apps to
access cloud data.
AWS provides managed database services through its Amazon Relational Database Service,
which includes options for Oracle, SQL Server, PostgreSQL, MySQL, MariaDB and a
proprietary high-performance database called Amazon Aurora. AWS offers
managed NoSQL databases through Amazon DynamoDB.
An AWS customer can use Amazon ElastiCache and DynamoDB Accelerator as in-memory
data caches for real-time applications. Amazon Redshift offers a data warehouse, which
makes it easier for data analysts to perform business intelligence tasks.
AWS includes various tools and services designed to help users migrate applications,
databases, servers and data onto its public cloud. The AWS Migration Hub provides a
location to monitor and manage migrations from on premises to the cloud. Once in the
cloud, EC2 Systems Manager helps an IT team configure on-premises servers and AWS
instances.
Amazon also has partnerships with several technology vendors that ease hybrid cloud
deployments. VMware Cloud on AWS brings software-defined data center technology from
VMware to the AWS cloud. Red Hat Enterprise Linux for Amazon EC2 is the product of
another partnership, extending Red Hat's operating system to the AWS cloud.
Dept of CSE, JSSATE Page 40
Smart Parking Lot System (IPark) 2019-2021
Networking
An Amazon Virtual Private Cloud (VPC) gives an administrator control over a virtual
network to use an isolated section of the AWS cloud. AWS automatically provisions new
resources within a VPC for extra protection.
Admins can balance network traffic with AWS load balancing tools, including Application
Load Balancer and Network Load Balancer. AWS also provides a domain name system
called Amazon Route 53 that routes end users to applications.
A developer can take advantage of AWS command-line tools and software development kits
(SDKs) to deploy and manage applications and services. The AWS Command Line
Interfaceis Amazon's proprietary code interface. A developer can also use AWS Tools for
Powershell to manage cloud services from Windows environments and AWS Serverless
Application Model to simulate an AWS environment to test Lambda functions. AWS SDKs
are available for a variety of platforms and programming languages, including Java, PHP,
Python, Node.js, Ruby, C++, Android and iOS.
Amazon API Gateway enables a development team to create, manage and monitor custom
APIs that let applications access data or functionality from back-end services. API Gateway
manages thousands of concurrent API calls at once.
AWS also provides a packaged media transcoding service, Amazon Elastic Transcoder, and a
service that visualizes workflows for microservices-based applications, AWS Step Functions.
Management, monitoring
An admin can manage and track cloud resource configuration via AWS Config and AWS
Config Rules. Those tools, along with AWS Trusted Advisor, can help an IT team avoid
improperly configured and needlessly expensive cloud resource deployments.
AWS provides several automation tools in its portfolio. An admin can automate infrastructure
provisioning via AWS CloudFormation templates, and also use AWS OpsWorks and Chef to
automate infrastructure and system configurations.
Security, governance
AWS provides a range of services for cloud security, including AWS Identity and Access
Management (IAM), which allows admins to define and manage user access to resources. An
admin can also create a user directory with Amazon Cloud Directory, or connect cloud
resources to an existing Microsoft Active Directory with the AWS Directory Service.
Additionally, AWS Organizations enables a business to establish and manage policies for
multiple AWS accounts.
AWS also includes tools and services that provide software- and hardware-based encryption,
protect against DDoS attacks, provision Secure Sockets Layer and Transport Layer
Securitycertificates and filter potentially harmful traffic to web applications.
AWS includes a variety of big data analytics and application services. Amazon Elastic
MapReduce offers a Hadoop framework to process large amounts of data, while Amazon
Kinesis provides several tools to process and analyze streaming data.
AWS Glue is a service that handles extract, transform and load jobs, while the Amazon
Elasticsearch Service enables a team to perform application monitoring, log analysis and
other tasks with the open source Elasticsearch tool.
To query data, an analyst can use Amazon Athena for S3, and then visualize data
with Amazon QuickSight.
Artificial intelligence
AWS offers a range of AI model development and delivery platforms, as well as packaged
AI-based applications. The Amazon AI suite of tools includes Amazon Lex for voice and text
chatbot technology, Amazon Polly for text-to-speech translation and Amazon Recognition for
image and facial analysis. AWS also provides technology for developers to build smart apps
that rely on machine learning technology and complex algorithms.
On the consumer side, AWS technologies power the Alexa Voice Services, and a developer
can use the Alexa Skills Kit to build voice-based apps for Echo devices.
Mobile development
The AWS Mobile Hub offers a collection of tools and services for mobile app developers,
including the AWS Mobile SDK, which provides code samples and libraries.
A mobile app developer can also use Amazon Cognito to manage user access to mobile apps,
as well as Amazon Pinpoint to send push notifications to application end users and then
analyze the effectiveness of those communications.
Messages, notifications
AWS messaging services provide core communication for users and applications. Amazon
Simple Notification Service (SNS) enables a business to send pub-sub messages to endpoints,
such as end users or services. SNS includes a mobile messaging feature that enables push
messaging to mobile devices. Amazon Simple Email Service provides a platform for IT
professionals and marketers to send and receive emails.
Other services
Amazon Web Services has a range of business productivity SaaS options. The Amazon
Chime service enables online video meetings, calls and text-based chats across devices. A
business can also take advantage of Amazon WorkDocs, a file storage and sharing service,
and Amazon WorkMail, a business email service with calendaring features.
AWS also has a variety of services that enable internet of things (IoT) deployments.
The AWS IoT service provides a back-end platform to manage IoT devices and data
ingestion to other AWS storage and database services. The AWS IoT Button provides
hardware for limited IoT functionality, and AWS Greengrass brings AWS compute
capabilities to IoT devices.
AWS offers a pay-as-you-go model for its cloud services, either on a per-hour or per-second
basis. There is also an option to reserve a set amount of compute capacity at a discounted
price for customers who prepay in whole, or who sign up for one- or three-year usage
commitments.
Multithreaded Robust
Dynamic Secure
One characteristic of Java is portability, which means that computer programs written
in the Java language must run similarly on any hardware/operating-system platform. This is
achieved by compiling the Java language code to an intermediate representation called Java
bytecode, instead of directly to platform-specific machine code. Java bytecode instructions
are analogous to machine code, but they are intended to be interpreted by a virtual machine
(VM) written specifically for the host hardware. End-users commonly use a Java Runtime
Environment (JRE) installed on their own machine for standalone Java applications, or in a
Web browser for Java applets.
NodeJS
Why NodeJS? The main idea of Node.js: use non-blocking, event-driven I/O to remain
lightweight and efficient in the face of data-intensive real-time applications that run across
distributed devices.
Node.js is not a silver-bullet new platform that will dominate the web development
world. Instead, it’s a platform that fills a particular need. And understanding this is
absolutely essential. You definitely don’t want to use Node.js for CPU-intensive operations;
in fact, using it for heavy computation will annul nearly all of its advantages. Where Node
really shines is in building fast, scalable network applications, as it’s capable of handling a
huge number of simultaneous connections with high throughput, which equates to high
scalability.
The technique used to avoid exceptions bubbling up to the surface is passing errors back to
the caller as callback parameters (instead of throwing them, like in other environments). Even
if some unhandled exception manages to bubble up, tools have been developed to monitor the
Node.js process and perform the necessary recovery of a crashed instance, the most common
being the Forever module, or using a different approach with external system
tools upstart and monit, or even just upstart.
Coding conventions are a set of guidelines for a specific programming language that
recommend programming style, practices and methods for each aspect of a piece program
written in this language. These conventions usually cover file organization, indentation,
comments, declarations, statements, white space, naming conventions, programming
practices, programming principles, programming rules of thumb, architectural best practices,
etc. These are guidelines for software structural quality. Software programmers are highly
recommended to follow these guidelines to help improve the readability of their source code
and make software maintenance easier. Coding conventions are only applicable to the human
maintainers and peer reviewers of a software project. Conventions may be formalized in a
documented set of rules that an entire team or company follows, or may be as informal as the
habitual coding practices of an individual. Coding conventions are not enforced by compilers.
As a result, not following some or all of the rules has no impact on the executable programs
created from the source code
It supports a number of programming languages and a set of features that may or may
not be available for a given language, as shown in the following table. Many of Visual Studio
Code features are not exposed through menus or the user interface. Rather, they are accessed
via the command palette or via a .json file (e.g., user preferences).] The command palette is
a command-line interface. However, it disappears if the user clicks anywhere outside it or
presses a key combination on the keyboard to interact with something outside it. This is true
for time-consuming commands as well. When this happens, the command in progress is
cancelled.
6.4.3 Postman
The Postman Rest Client is a very popular and easy to use HTTP Request composer
that makes it easy to call web services, similar to Fiddler's Composer. It also provides as an
alternative for autogenerating API documentation to ServiceStack's Swagger support that
makes it easier to call existing services but does require users to install the Postman Rest
Client.
6.4.4 MongoDB
MongoDB supports field, range queries, regular expression searches.[8] Queries can return
specific fields of documents and also include user-defined JavaScript functions. Queries can
also be configured to return a random sample of results of a given size.
MongoDB provides high availability with replica sets.[9] A replica set consists of two or more
copies of the data. Each replica set member may act in the role of primary or secondary
replica at any time. All writes and reads are done on the primary replica by default.
Secondary replicas maintain a copy of the data of the primary using built-in replication.
When a primary replica fails, the replica set automatically conducts an election process to
determine which secondary should become the primary. Secondaries can optionally serve
read operations, but that data is only eventually consistent by default.
MongoDB scales horizontally using sharding. The user chooses a shard key, which
determines how the data in a collection will be distributed. The data is split into ranges (based
on the shard key) and distributed across multiple shards. (A shard is a master with one or
more slaves.). Alternatively, the shard key can be hashed to map to a shard – enabling an
even data distribution.
MongoDB can run over multiple servers, balancing the load or duplicating data to keep the
system up and running in case of hardware failure.
MongoDB can be used as a file system with load balancing and data replication features over
multiple machines for storing files.
This function, called grid file system,[11] is included with MongoDB drivers. MongoDB
exposes functions for file manipulation and content to developers. GridFS is used in plugins
for Nginx and lighttpd. GridFS divides a file into parts, or chunks, and stores each of those
chunks as a separate document.
Chapter-7
SOFTWARE TESTING
Software testing can be stated as the process of validating and verifying that a
computer program/application/product:
works as expected,
Testing is a process rather than a single activity. This process starts from test planning
then designing test cases, preparing for execution and evaluating status till the test closure.
Testing of any unit involves:
A document describing the scope, approach, resources and schedule of intended test
activities. It identifies amongst others test items, the features to be tested, the testing tasks,
who will do each task, degree of tester independence, the test environment, the test design
techniques and entry and exit criteria to be used, and the rationale for their choice, and any
risks requiring contingency planning. It is a record of the test planning process.
Unit Testing
Integration Testing
Unit testing involves the design of test cases that validate that the internal program
logic is functioning properly, and that program inputs produce valid outputs. All decision
branches and internal code flow should be validated. It is the testing of individual software
units of the application .it is done after the completion of an individual unit before
integration. This is a structural testing, that relies on knowledge of its construction and is
invasive. Unit tests perform basic tests at component level and test a specific business
process, application, and/or system configuration. Unit tests ensure that each unique path of a
business process performs accurately to the documented specifications and contains clearly
defined inputs and expected results.
Case
The task of the integration test is to check that components or software applications,
e.g. components in a software system or – one step up – software applications at the company
level – interact without error.
Test Results: All the test cases mentioned above passed successfully. No defects
encountered.
Test Results: All the test cases mentioned above passed successfully. No defects
encountered.
Chapter-8
SCREENSHOTS
Admin Application
Chapter-9
CONCLUSION
If it is a dwelling, entertainment centre or a market place, the first and foremost question in
the minds of everyone is about the parking slot. Compared to other developed countries, the
problem of parking is disheartening in India as there is no well devised plan in place. The
parking problem is quite acute in places of entertainment such as theatres and shopping
malls..
We touched a small scenario of parking problem in India in this paper. We brought out in this
paper how the parking problem in such places can be tackled with a well-thought plan. The
plan helps both the visitors and administrators. It helps the visitors in finding out the
availability of a parking slot, get the availability confirmed, and reach the place within the
time slot allotted. It helps the administration to allocate the vacant slot to the next person in
queue. A well thought parking plan saves the time of visitors in booking a parking slot in
advance and the administration to allocate the vacant slot in a methodical and organized
manner.
9.1 Limitations
The database must be updated every time new users are added in parking lot.
The “IPark” Application can be developed for other popular mobile operating systems.
In future, our application can be implemented on the existing operating systems like iOS,
Windows and BlackBerry also on the upcoming and promising operating systems like Firefox
OS, Jolla and Tizen. Our application can be used as an alternative to the present parking
systems in malls, at railway stations, near airports, theatres, etc. as an efficient means to park.
Google Wallet can used to make secure payments fast and convenient.
Chapter 10
REFERENCES
[1] Faiz Ibrahim Shaikh, Pratik Nirnay Jadhav, Saideep Pradeep Bandarkar, Omkar Pradip Kulkarni,
Nikhilkumar B. Shardoor “Smart Parking System Based on Embedded System and Sensor Network”,
International Journal of Computer Applications (0975 – 8887) Volume 140 – No.12, April 2016
International Journal of Pure and Applied Mathematics Special Issue 171
[2] Thanh Nam Pham1, Ming-Fong Tsai1, Duc Binh Nguyen1, Chyi-Ren Dow1, And Der-Jiunn Deng2
“A Cloud-Based Smart-Parking System Based on Internet-of-Things Technologies”,IEEE Access,
Received July 24, 2015, accepted August 16, 2015, date of publication September 9, 2015, date of
current version September 23, 2015.
[3] El Mouatezbillah Karbab, Djamel Djenouri, Sahar Boulkaboul, Antoine Bagula, CERIST Research
Center, Algiers, Algeria University of the Western Cape, Cape town, South Africa,”Car Park
[4] Mr. Basavaraju S R “Automatic Smart Parking System using Internet of Things (IOT)”,
(International Journal of Scientific and Research Publications, Volume 5, Issue 12, December 2015)
[5] M. M. Rashid, A. Musa, M. Ataur Rahman, and N. Farahana, A. Farhana, “Automatic Parking
Management System and Parking Fee Collection Based on Number Plate Recognition.”, International
Journal of Machine Learning and Computing, Vol. 2, No. 2, April 2012,Published 2014.
[6] Hilal Al-Kharusi, Ibrahim Al-Bahadly, “Intelligent Parking Management System Based on Image
Processing”, World Journal of Engineering and Technology, 2014, 2, 55-67.
[7] X. Zhao, K. Zhao, and F. Hai, ``An algorithm of parking planning for smart parking system,'' in Proc.
11th World Congr. Intell. Control Autom. (WCICA), 2014, pp. 4965_4969.
[8] L. Mainetti, L. Palano, L. Patrono, M. L. Stefanizzi, and R. Vergallo,``Integration of RFID and WSN
technologies in a smart parking system,''in Proc. 22nd Int. Conf. Softw., Telecommun. Comput. Netw.
(SoftCOM), 2014, pp. 104_110.
[9] Harmeet Singh, Chetan Anand, Vinay Kumar, Ankit Sharma, “Automated Parking System With
Bluetooth Access”, International Journal Of Engineering And Computer Science ISSN:2319-
7242,Volume 3 Issue 5, May 2014, Page No. 5773-5775
[10] C. Shiyao, W. Ming, L. Chen, and R. Na, ``The research and implementof the intelligent parking
reservation management system based on ZigBee technology,'' in Proc. 6th Int. Conf. Meas. Technol.
Mechatronics Autom. (ICMTMA), 2014, pp. 741_744.
[11] Yanfeng Geng, Student Member, IEEE, and Christos G. Cassandras, Fellow, IEEE “New Smart
Parking System Based onvResourcevAllocation and Reservations”, IEEE Transactions on intelligent
transportation systems, VOL. 14, NO. 3, September 2013. International Journal of Pure and Applied
Mathematics Special Issue 172
[12] Y. Geng and C. G. Cassandras, ``New `smart parking' system based on resource allocation and
reservations,'' IEEE Trans. Intell. Transp. Syst., vol. 14, no. 3, pp. 1129_1139, Sep. 2013.
[13] P.Dharma Reddy, A. Rajeshwar Rao, Dr. Syed Musthak Ahmed, “An Intelligent Parking Guidance
and Information System by using image processing technique”, IJARCCE, Vol. 2, Issue 10, October
2013.
[14] ManjushaPatil, Vasant N. Bhonge “Wireless Sensor Network and RFID for Smart Parking System”
International Journal of Emerging Technology and Advanced Engineering Website: www.ijetae.com
(ISSN 2250-2459, ISO 9001:2008 Certified Journal, Volume 3, Issue 4,April 2013)
[15] J. Bonde “Automated car parking system commanded by android application” in Proc. IEEE
Conf.,03-05, Jan 2012.