Professional Documents
Culture Documents
Submitted by
Shubham Dubey
SEAT NUMBER: 4022843
Under the esteemed guidance of:
Prof. Jairam Mulchanadani
Assistant Professor
CERTIFICATE
This is to certify that the project entitled, "SMART PARKING SYSTEM", is bonafied
work of Shubham Dubey bearing Seat. No: 4022843 submitted in partial fulfilment of the
requirements for the award of degree of BACHELOR OF SCIENCE in INFORMATION
TECHNOLOGY from University of Mumbai.
External Examiner
We are pleased to present our project “Smart Parking System” and takes
this opportunity to express our gratitude to all those people who helped us
in completion of this project.
We thank our college for providing us with excellent facilities that helped
us to complete and present this project. We should also like to thank the
staff members and lab assistants for permitting us to use computers in the
lab as and when requires.
We express gratitude towards our project Guide for giving Mr. Jairam
Mulchanadani us yourvaluable time and advice during the various
phases in our project. We would also Like to thank her for providing us
with all the proper facilities and support as the project coordinator.
.
DECLARATION
I hereby declare that the project entitled “Pharmacy Smart Parking System” done at
“Ulhasnagar” has not been in any case duplicated to submit to any other university for the
award of any degree. To the best of my knowledge other than me, no one has submitted to
any other university.
The project is done in partial fulfilment of the requirements for the award of degree of
BACHELOR OF SCIENCE (INFORMATION TECHNOLOGY) to be submitted as
final semester project as part of curriculum.
Signature:
Parking Management System
Content Table
CHAPTER
5 29
CHAPTER
6 RESULT AND DISCUSSION 31-40
2.7.1 Cost Benefits Analysis & Economic Feasibilities 32
2.7.2 User Interface 34
2.7.3 Database Snaps 39
CHAPTER
7 CONCLUSION 41
2.9 FUTURE ENHANCEMENT 44
Page | 1
Parking Management System
Page | 2
Parking Management System
CHAPTER1: INTRODUCTION
Page | 3
Parking Management System
CHAPTER1: Introduction
Parking management system for managing the records of the incoming and outgoing
vehicles in an parking house
It’s an easy for Admin to retrieve the data if the vehicle has been visited through number
he can get that data .
Now days in many public places such as malls, multiplex system, hospitals, offices,
market areas there is a crucial problem of vehicle parking. The vehicle parking area has
many lanes/slots for car parking. So to park a vehicle one has to look for all the lanes.
Moreover this involves a lot of manual labour and investment. Instead of vehicle caught
in towing the vehicle can park on safe and security with low cost.
Parking control system has been generated in such a way that it is filled with many
secure devices such as, parking control gates, toll gates, time and attendance machine,
car counting system etc. These features are hereby very necessary nowadays to secure
your car and also to evaluate the fee structure for every vehicles entry and exit
The objective of this project is to build a Vehicle Parking management system that
enables the time management and control of vehicles using number plate recognition.
The system that will track the entry and exit of cars, maintain a listing of cars within the
parking lot, and determine if the parking lot is full or not. It will determine the cost of per
vehicle according to their time consumption.
Page | 4
Parking Management System
Page | 5
Parking Management System
Scope:
In the modern age. Many people have vehicles. Vehicle is now a basic need. Every
place is under the process of urbanization. There are many corporate offices and
shopping centers etc. There are many recreational places where people used to go for
refreshment. So, all these places need a parking space where people can park their
vehicles safely and easily. Every parking area needs a system that records the detail of
vehicles to give the facility. These systems might be computerized or non-computerized.
With the help of computerized system we can deliver a good service to customer who
wants to park their vehicle into the any organization’s premises.
Page | 6
Parking Management System
Page | 7
Parking Management System
Page | 8
Parking Management System
2. Technology:
➢
Front End: python
➢
Python has become one of the most popular programming
Page | 9
Parking Management System
3. Modules
a).Data Records
Staff records: - It helps to provide details of staff that uses the Vehicle parking
management System. It provides the descriptions of staffs like:
-Staff first, middle and last name
-Address
-Contact Number
-Gender.
User Records: - This record helps for the authorization for using Vehicle
Parking Management System. It Provides the Username and Password for the User
(staff).It also includes the level of authority that means it separates the normal users
and administrator.
Vehicle Records: - This most important record which focuses in our Vehicle
Parking Management System. It stores the essential Vehicle records like:
-Vehicle Number
-Vehicle Type
-Vehicle Entry Time
-Vehicle Exit Time
b).Reports
Vehicle Parking Detail: - This report is very essential in this system. This
report provides a brief summary of vehicle activities. It shows the overall Entry and Exit
time. It shows the User at time of Entry and Exit .It also provides the facility for
examining the total vehicle details according to date wise.
Page | 10
Parking Management System
Page | 11
Parking Management System
Page | 12
Parking Management System
Level 0 :
Page | 13
Parking Management System
Level 1:
Page | 14
Parking Management System
Level 2:
Page | 15
Parking Management System
2.6.2 ER-Diagram
Page | 16
Parking Management System
Page | 17
Parking Management System
System
Insert Vehicle_no
System Configuration
<<include>>
Generate Report
Insert Vehicle_name
<<include>>
Insert owner_name
Admin Insert the details of vehicle
<<include>>
Transaction Details
Insert_Intime
<<include>>
Insert_Outtime
Pay's Money
Customer
Space Availability
Page | 18
Parking Management System
Administrator System
Open Details
Generate Bill
Thank You
Page | 19
Parking Management System
1 : Register request()
2 : Register sucessful()
3 : Login request()
4 : Login succesful()
5 : Vehicle arrives()
6 : Provide details()
7 : Enter details()
8 : Save to database()
9 : check availability()
12 : Enter details()
13 : save to database()
14 : Request details()
15 : Retrive details()
16 : Generate report()
17 : Gives receipt()
Page | 20
Parking Management System
Page | 21
Parking Management System
Cost benefit analysis (CBA) estimates and total up the equivalent money value of the
benefits and the cost invested to for implementation the software .Cost benefit analysis
(CBA) is the weighing scale approach to decision-making. All the plus points (such as
cash flow and other intangible benefits) are put on one side all the minus points (the
cost and disadvantages) are put on the other side. Both sides should be weighed and
benefits should be evaluated.
Cost Estimation:
A cost estimate is the approximation of the cost of a program, project, or operation.
The cost estimate is the product of the cost estimating process. The cost estimate
has a single total value and may have identifiable component values.
For a given set of requirements, it is desirable to know how much it will cost to develop
the software to satisfy a given requirement, and how much time development will take.
The cost of a project is a function of many parameters. Foremost among them is the
size of the project. Other factors that effects the cost are programmer ability, experience
of the developers in the area , complexity of the project, and reliability requirements of
the software, hardware and human resources
Benefits:
• Improves business processes leading to annual cost decrease.
• Due to availability of information, better decision making is possible leading to
additional cash flows.
Page | 22
Parking Management System
How it works:
containing markup with custom template tags) to tokens, which can be either
statements (TokenType.BLOCK).
The Parser() class takes a list of tokens in its constructor, and its parse()
method returns a compiled template -- which is, under the hood, a list of
Node objects.
Each Node is responsible for creating some sort of output -- e.g. simple text
logic (IfNode), results of looping (ForNode), or anything else. The core Node
types are TextNode, VariableNode, IfNode and ForNode, but plugin modules can
Each Node has a render() method, which takes a Context and returns a string of
the rendered node. For example, the render() method of a Variable Node returns
the variable's value as a string. The render() method of a ForNode returns the
Page | 23
Parking Management System
Usage:
The only thing you should ever use directly in this file is the Template
Sample code:
>>> t = template.Template(s)
>>> t.render(c)
'<html><h1>Hello</h1></html>'
>>> t.render(c)
Page | 24
Parking Management System
'<html></html>'
"""
import inspect
import logging
import re
FILTER_SEPARATOR = '|'
FILTER_ARGUMENT_SEPARATOR = ':'
VARIABLE_ATTRIBUTE_SEPARATOR = '.'
Page | 25
Parking Management System
BLOCK_TAG_START = '{%'
BLOCK_TAG_END = '%}'
VARIABLE_TAG_START = '{{'
VARIABLE_TAG_END = '}}'
COMMENT_TAG_START = '{#'
COMMENT_TAG_END = '#}'
TRANSLATOR_COMMENT_MARK = 'Translators'
SINGLE_BRACE_START = '{'
SINGLE_BRACE_END = '}'
# what to report as the origin for templates that come from non-loader sources
# (e.g. strings)
# match a variable or block tag and capture the entire tag, including start/end
# delimiters
tag_re = (_lazy_re_compile('(%s.?%s|%s.?%s|%s.*?%s)' %
(re.escape(BLOCK_TAG_START), re.escape(BLOCK_TAG_END),
re.escape(VARIABLE_TAG_START), re.escape(VARIABLE_TAG_END),
re.escape(COMMENT_TAG_START), re.escape(COMMENT_TAG_END))))
logger = logging.getLogger('django.template')
class TokenType(Enum):
Page | 26
Parking Management System
TEXT = 0
VAR=1
BLOCK = 2
COMMENT = 3
class VariableDoesNotExist(Exception):
self.msg = msg
self.params = params
def _str_(self):
class Origin:
self.name = name
self.template_name = template_name
self.loader = loader
def _str_(self):
return self.name
Page | 27
Parking Management System
return (
self.loader == other.loader
@property
def loader_name(self):
if self.loader:
return '%s.%s' % (
self.loader._module, self.loader.class.name_,
class Template:
# e.g. Template('...').render(Context({...}))
if engine is None:
engine = Engine.get_default()
if origin is None:
Page | 28
Parking Management System
origin = Origin(UNKNOWN_SOURCE)
self.name = name
self.origin = origin
self.engine = engine
self.nodelist = self.compile_nodelist()
def _iter_(self):
return self.nodelist.render(context)
with context.render_context.push_state(self):
if context.template is None:
with context.bind_template(self):
context.template_name = self.name
return self._render(context)
else:
return self._render(context)
def compile_nodelist(self):
Page | 29
Parking Management System
"""
template source.
"""
if self.engine.debug:
lexer = DebugLexer(self.source)
else:
lexer = Lexer(self.source)
tokens = lexer.tokenize()
parser = Parser(
self.origin,
try:
return parser.parse()
except Exception as e:
if self.engine.debug:
raise
Page | 30
Parking Management System
"""
is provided:
message
source_lines
line
total
top
Page | 31
Parking Management System
bottom
start
end
"""
context_lines = 10
line = 0
upto = 0
source_lines = []
line = num
before = escape(self.source[upto:start])
during = escape(self.source[start:end])
after = escape(self.source[end:next])
source_lines.append((num, escape(self.source[upto:next])))
upto = next
Page | 32
Parking Management System
total = len(source_lines)
# string.
try:
message = str(exception.args[0])
return {
'message': message,
'source_lines': source_lines[top:bottom],
'before': before,
'during': during,
'after': after,
'top': top,
'bottom': bottom,
'total': total,
'line': line,
'name': self.origin.name,
'start': start,
'end': end,
Page | 33
Parking Management System
def linebreak_iter(template_source):
yield 0
p = template_source.find('\n')
while p >= 0:
yield p + 1
p = template_source.find('\n', p + 1)
yield len(template_source) + 1
class Token:
"""
token_type
contents
position
An optional tuple containing the start and end index of the token
Page | 34
Parking Management System
lineno
"""
self.lineno = lineno
self.position = position
def _str_(self):
token_name = self.token_type.name.capitalize()
def split_contents(self):
split = []
bits = smart_split(self.contents)
if bit.startswith(('("', "('")):
sentinel = bit[2] +
Page | 35
Parking Management System
bit = next(bits)
trans_bit.append(bit)
split.append(bit)
return split
class Lexer:
self.template_string = template_string
self.verbatim = False
def tokenize(self):
"""
"""
in_tag = False
lineno = 1
result = []
if bit:
lineno += bit.count('\n')
return result
Page | 36
Parking Management System
"""
Convert the given token string into a new Token object and return
block_content = token_string[2:-2].strip()
self.verbatim = False
if token_string.startswith(VARIABLE_TAG_START):
elif token_string.startswith(BLOCK_TAG_START):
elif token_string.startswith(COMMENT_TAG_START):
content = ''
if token_string.find(TRANSLATOR_COMMENT_MARK):
Page | 37
Parking Management System
content = token_string[2:-2].strip()
else:
class DebugLexer(Lexer):
def tokenize(self):
"""
Split a template string into tokens and annotates each token with
its start and end position in the source. This is slower than the
lineno = 1
result = []
upto = 0
token_string = self.template_string[upto:start]
lineno += token_string.count('\n')
token_string = self.template_string[start:end]
Page | 38
Parking Management System
lineno += token_string.count('\n')
upto = end
last_bit = self.template_string[upto:]
if last_bit:
return result
class Parser:
self.tags = {} self.filters =
{} self.command_stack =
[]
if libraries is None:
libraries = {}
if builtins is None:
builtins = []
self.libraries = libraries
Page | 39
Parking Management System
self.add_library(builtin)
self.origin = origin
"""
Iterate through the parser tokens and compiles each one into a node.
"""
if parse_until is None:
parse_until = []
nodelist = NodeList()
while self.tokens:
token = self.next_token()
# Use the raw values here for TokenType.* for a tiny performance
self.extend_nodelist(nodelist, TextNode(token.contents),
if not token.contents:
token.lineno) try:
filter_expression = self.compile_filter(token.contents)
Page | 40
Parking Management System
except TemplateSyntaxError as e:
raise self.error(token, e)
var_node = VariableNode(filter_expression)
try:
command = token.contents.split()[0]
except IndexError:
if command in parse_until:
# the caller. Put the token back on the token list so the
self.prepend_token(token)
return nodelist
# Add the token to the command stack. This is used for error
# tag.
self.command_stack.append((command, token))
# Get the tag callback function from the ones registered with
# the parser.
try:
compile_func = self.tags[command]
except KeyError:
Page | 41
Parking Management System
try:
except Exception as e:
raise self.error(token, e)
self.command_stack.pop()
if parse_until:
self.unclosed_block_tag(parse_until)
return nodelist
while self.tokens:
token = self.next_token()
return
self.unclosed_block_tag([endtag])
raise self.error(
Page | 42
Parking Management System
nodelist.contains_nontext = True
# Set origin and token here since we can't modify the node _init_()
# method.
node.token = token
node.origin = self.origin
nodelist.append(node)
"""
e = TemplateSyntaxError(e)
e.token = token
return e
if parse_until:
raise self.error(
Page | 43
Parking Management System
token,
"Invalid block tag on line %d: '%s', expected %s. Did you "
token.lineno,
command,
),
raise self.error(
token,
"Invalid block tag on line %d: '%s'. Did you forget to register "
msg = "Unclosed tag on line %d: '%s'. Looking for one of: %s." % (
token.lineno,
command,
', '.join(parse_until),
def next_token(self):
return self.tokens.pop()
Page | 44
Parking Management System
self.tokens.append(token)
def delete_first_token(self):
del self.tokens[-1]
self.tags.update(lib.tags)
self.filters.update(lib.filters)
"""
"""
if filter_name in self.filters:
return self.filters[filter_name]
else:
Page | 45
Parking Management System
constant_string = r"""
(?:%(i18n_open)s%(strdq)s%(i18n_close)s|
%(i18n_open)s%(strsq)s%(i18n_close)s|
%(strdq)s|
%(strsq)s)
"""%{
'i18n_open': re.escape("_("),
'i18n_close': re.escape(")"),
filter_raw_string = r"""
^(?P<constant>%(constant)s)|
^(?P<var>[%(var_chars)s]+|%(num)s)|
(?:\s*%(filter_sep)s\s*
(?P<filter_name>\w+)
(?:%(arg_sep)s
(?:
(?P<constant_arg>%(constant)s)|
(?P<var_arg>[%(var_chars)s]+|%(num)s)
Page | 46
Parking Management System
)?
)""" % {
'constant': constant_string,
'num': r'[-+\.]?\d[\d\.e]*',
'var_chars': r'\w\.',
'filter_sep': re.escape(FILTER_SEPARATOR),
'arg_sep': re.escape(FILTER_ARGUMENT_SEPARATOR),
class FilterExpression:
"""
string), and return a list of tuples of the filter name and arguments.
Sample::
>>> p = Parser('')
>>> fe = FilterExpression(token, p)
>>> len(fe.filters)
'variable'>
Page | 47
Parking Management System
"""
self.token = token
matches = filter_re.finditer(token)
var_obj = None
filters = []
upto = 0
start = match.start()
if upto != start:
"%s|%s|%s" %
(token[:upto], token[upto:start],
token[start:]))
if var_obj is None:
if constant:
try:
var_obj = Variable(constant).resolve({})
except VariableDoesNotExist:
var_obj = None
else:
Page | 48
Parking Management System
var_obj = Variable(var)
else:
filter_name = match['filter_name']
args = []
if constant_arg:
args.append((False, Variable(constant_arg).resolve({})))
elif var_arg:
args.append((True, Variable(var_arg)))
filter_func = parser.find_filter(filter_name)
filters.append((filter_func, args))
upto = match.end()
if upto != len(token):
self.filters = filters
self.var = var_obj
if isinstance(self.var, Variable):
try:
obj = self.var.resolve(context)
except VariableDoesNotExist:
Page | 49
Parking Management System
if ignore_failures:
obj = None
else:
string_if_invalid = context.template.engine.string_if_invalid if
string_if_invalid:
if '%s' in string_if_invalid:
else:
return string_if_invalid
else:
obj = string_if_invalid
else:
obj = self.var
arg_vals = []
if not lookup:
arg_vals.append(mark_safe(arg))
else:
arg_vals.append(arg.resolve(context))
else:
Page | 50
Parking Management System
obj = mark_safe(new_obj)
else:
obj = new_obj
return obj
provided = list(provided)
alen = len(args)
return True
args_check = staticmethod(args_check)
Page | 51
Parking Management System
def _str_(self):
return self.token
class Variable:
"""
may be a hard-coded string (if it begins and ends with single or double
quote marks)::
>>> Variable('article.section').resolve(c)
'News'
>>> Variable('article').resolve(c)
{'section': 'News'}
>>> c = AClass()
"""
self.var = var
Page | 52
Parking Management System
self.literal = None
self.lookups = None
self.translate = False
self.message_context = None
raise TypeError(
try:
# Note that this could cause an OverflowError here that we're not
# probably OK.
self.literal = float(var)
# "2." is invalid
if var.endswith('.'):
raise ValueError
else:
self.literal = int(var)
except ValueError:
Page | 53
Parking Management System
# time.
self.translate = True
var = var[2:-1]
try:
self.literal = mark_safe(unescape_string_literal(var))
except ValueError:
var)
self.lookups = tuple(var.split(VARIABLE_ATTRIBUTE_SEPARATOR))
value = self._resolve_lookup(context)
else:
Page | 54
Parking Management System
value = self.literal
if self.translate:
if self.message_context:
else:
return gettext_lazy(msgid)
return value
def _repr_(self):
def _str_(self):
return self.var
"""
Page | 55
Parking Management System
instead.
"""
current = context
current = current[bit]
raise AttributeError
raise
current = current[int(bit)]
Page | 56
Parking Management System
"[%s] in %r",
if callable(current):
pass
current =
context.template.engine.string_if_invalid else:
current = current()
except TypeError:
signature = inspect.signature(current)
try:
signature.bind()
else:
raise
except Exception as e:
'unknown' logger.debug(
'%s'.", bit,
Page | 57
Parking Management System
template_name,
exc_info=True,
current = context.template.engine.string_if_invalid
else:
raise
return current
class Node:
# Set this to True for nodes that must be first in the template (although
must_be_first = False
child_nodelists = ('nodelist',)
token = None
"""
"""
pass
Page | 58
Parking Management System
"""
try:
return self.render(context)
except Exception as e:
e.template_debug =
context.render_context.template.get_exception_info(e, self.token)
raise
def _iter_(self):
yield self
"""
Return a list of all nodes (within this node and its nodelist)
"""
nodes = []
if isinstance(self, nodetype):
Page | 59
Parking Management System
nodes.append(self)
if nodelist:
nodes.extend(nodelist.get_nodes_by_type(nodetype))
return nodes
class NodeList(list):
# extend_nodelist().
contains_nontext = False
bits = []
if isinstance(node, Node):
bit = node.render_annotated(context)
else:
bit = node
bits.append(str(bit))
return mark_safe(''.join(bits))
Page | 60
Parking Management System
nodes = []
nodes.extend(node.get_nodes_by_type(nodetype))
return nodes
class TextNode(Node):
self.s = s
def _repr_(self):
return self.s
"""
Page | 61
Parking Management System
if context.autoescape:
value = str(value)
return conditional_escape(value)
else:
return str(value)
class VariableNode(Node):
self.filter_expression = filter_expression
def _repr_(self):
try:
output = self.filter_expression.resolve(context)
except UnicodeDecodeError:
# quietly.
return ''
Page | 62
Parking Management System
kwarg_re = _lazy_re_compile(r"(?:(\w+)=)?(.+)")
"""
that is to be checked for arguments. Valid arguments are removed from this
list.
is reached.
"""
if not bits:
return {}
match = kwarg_re.match(bits[0])
Page | 63
Parking Management System
if not kwarg_format:
if not support_legacy:
return {}
return {}
kwargs = {}
while bits:
if kwarg_format:
match = kwarg_re.match(bits[0])
return kwargs
del bits[:1]
else:
return kwargs
del bits[:3]
kwargs[key] = parser.compile_filter(value)
if bits[0] != 'and':
return kwargs
del bits[:1]
return kwargs
Page | 64
Parking Management System
Page | 65
Parking Management System
Page | 66
Parking Management System
Page | 67
Parking Management System
Page | 68
Parking Management System
Page | 69
Parking Management System
Page | 70
Parking Management System
Page | 71
Parking Management System
CHAPTER 7: COCLUSION
Page | 72
Parking Management System
CHAPTER 7: COCLUSION
This Project is minimizing the task of parking a vehicle by paying and saying
some details about customer and vehicle to save data .In this the vehicle is parked
as a safe and secure. This project is done as Efficient as possible Hereby I, the
Student of BSc(IT) 6
th
Semester concludes that the project was completely and slowly developed
by me. I also conclude that this project has helped us gain more
knowledge about the topic that we are indulged ourselves into “
Visual Studio ”. I would
be glad to enhance and promote this project if given chance and help ourselves
and society in the near future The developed application is tested with sample
inputs and outputs obtained in according to the requirement. Even though I
have tried our level best to make it a dream project. Due to time constraints I
could not add more facilities to it. The efficiency of the developed system can
be enhanced with some minor modifications. Future development can be made
in proposed system by integration more services like:
Page | 73
Parking Management System
Page | 74