Final Document - Bank locker management System
Final Document - Bank locker management System
ABSTRACT
1.1 INTRODUCTION
A Bank Locker Management System is a software solution designed to streamline
and manage the renting and maintenance of safe deposit lockers in a bank. This system
helps both the bank staff and customers by automating and organizing various aspects
related to the locker services. The system allows for the allocation of lockers to
customers, tracking of locker usage, managing payments, and ensuring security. It
typically includes functionalities such as locker reservations, access control, customer
verification, payment tracking, and reporting.
The main objectives of the Bank Locker Management System are to:
1. Provide an easy and efficient way for customers to rent lockers.
2. Ensure the security and privacy of the customer's valuables.
3. Enable efficient management of locker availability, billing, and maintenance.
4. Streamline the verification process for accessing lockers.
5. Improve overall customer experience by automating manual tasks and reducing human
error.
This system improves operational efficiency, enhances security, and reduces the
possibility of errors associated with manual tracking and management of lockers.
1.2 OBJECTIVE
1. *Security*: To ensure the safe storage of customers' valuable items in secure lockers, with
restricted access and monitoring.
4. *User Access Control*: To establish secure and controlled access mechanisms (e.g., keys,
PINs, biometric systems) for authorized customers only.
7. *Reporting & Analytics*: To generate reports on locker usage, occupancy rates, and
other relevant metrics for better decision-making and resource allocation.
These objectives aim to provide a safe, user-friendly, and operationally effective locker
management solution.
1.2 OVERVIEW OF THE PROJECT:
SYSTEM ANALYSIS
1. *User Management*:
2. *Locker Management*:
4. *Access Control*:
Features:
- *User Interface*: A user-friendly interface for both customers and bank staff.
- *Notifications and Alerts*: Automated reminders for payment due dates, locker renewals,
and other important notices.
Potential Improvements
- Enhanced portals or mobile apps for customers to manage their lockers online, including
booking, payments, and updates.
3. *Data Analytics*:
- Incorporation of data analytics to assess locker usage patterns and optimize space
allocation.
4. *Blockchain Technology*:
- Utilize blockchain for secure and tamper-proof records of ownership and access history.
- Offer bundled services (e.g., locker rental with investment options) for customer
convenience.
6. *Feedback Mechanism*:
- Implement a system for customers to provide feedback on the locker experience, which
can help drive improvements.
- Use electronic signatures for contracts and agreements to streamline the rental process.
.
2.3 SYSTEM REQUIREMENTS
HARDWARE REQUIREMENTS
SOFTWARE REQUIREMENTS
SYSTEM IMPLEMENTATION
3.1 IMPLEMENTATION
1. Requirements Gathering
*Functional Requirements:*
- Locker reservation/booking
*Non-Functional Requirements:*
2. System Design
*Architecture:*
- *Frontend:* A web or mobile application for users to interact with the system.
- *Database:* A relational database to store user information, locker details, transactions, etc.
*Data Model:*
3. Technology Stack
*Frontend:*
*Database:*
*Additional Tools:*
*Steps:*
2. *Database Schema Creation:* Create tables as per the data model defined in the design
phase.
3. *API Development:* Create RESTful APIs for user authentication, locker management,
payment processing, etc.
SOFTWARE DEVELOPMENT
<!DOCTYPE HTML>
<html>
<head>
<title>Example</title>
</head>
<body>
<?php
echo "Hi, I'm a PHP script!";
?>
</body>
</html>
What distinguishes PHP from something like client-side JavaScript is that the code is
executed on the server, generating HTML which is then sent to the client. The client would
receive the results of running that script, but would not know what the underlying code was.
You can even configure your web server to process all your HTML files with PHP, and then
there's really no way that users can tell what you have up your sleeve.
The best things in using PHP are that it is extremely simple for a newcomer, but
offers many advanced features for a professional programmer. Don't be afraid reading the
long list of PHP's features. You can jump in, in a short time, and start writing simple scripts
in a few hours.
PHP started out as a small open source project that evolved as more and more people found
out how useful it was. Rasmus Lerdorf unleashed the first version of PHP way back in 1994.
PHP supports a large number of major protocols such as POP3, IMAP, and LDAP.
PHP4 added support for Java and distributed object architectures (COM and
CORBA), making n-tier development a possibility for the first time.
PHP can handle forms, i.e. gather data from files, save data to a file, through email
you can send data, return data to the user.
You add, delete, modify elements within your database through PHP.
Using PHP, you can restrict users to access some pages of your website.
Simplicity
Efficiency
Security
Flexibility
Familiarity
As mentioned earlier, PHP is embedded in HTML. That means that in amongst your normal
HTML (or XHTML if you're cutting-edge) you'll have PHP statements like this −
<html>
<head>
<title>Hello World</title>
</head>
<body>
</body>
</html>
Hello, World!
If you examine the HTML output of the above example, you'll notice that the PHP code is
not present in the file sent from the server to your Web browser. All of the PHP present in
the Web page is processed and stripped from the page; the only thing returned to the client
from the Web server is pure HTML output.
In order to develop and run PHP Web pages three vital components need to be installed on
your computer system.
Web Server − PHP will work with virtually all Web Server software, including
Microsoft's Internet Information Server (IIS) but then most often used is freely
available Apache Server. Download Apache for free here
− https://httpd.apache.org/download.cgi
Database − PHP will work with virtually all database software, including Oracle and
Sybase but most commonly used is freely available MySQL database. Download
MySQL for free here − https://www.mysql.com/downloads/
PHP Parser − In order to process PHP script instructions a parser must be installed
to generate HTML output that can be sent to the Web Browser. This tutorial will
guide you how to install PHP parser on your computer.
http://127.0.0.1/info.php
If this displays a page showing your PHP installation related information then it
means you have PHP and Webserver installed properly. Otherwise you have to follow given
procedure to install PHP on your computer.
This section will guide you to install and configure PHP over the following four platforms −
FuelPHP
Fuel PHP works based on Model View Control and having innovative plug ins. FuelPHP
supports router based theory where you might route directly to a nearer the input uri, making
the closure the controller and giving it control of further execution.
CakePHP
Cake PHP is a great source to build up simple and great web application in an easy
way. Some great feature which are inbuilt in php are input validation, SQL injection
prevention that keeps you application safe and secure.
Features
Build Quickly
No need to configure
MIT licence
MVC Model
Secure
Before you can do anything with MySQL, you must first connect to the MySQL server using
your specific connection values. Connection variables consist of the following parameters:
Hostname: In our case, this is localhost because everything has been installed locally.
You will need to change this to whatever host is acting as your MySQL server, if
MySQL is not on the same server.
You issue this connection command with the PHP function called mysql_connect(). As with
all of your PHP/MySQL statements, you can either put the information into variables or leave
it as text in your MySQL query.
Here’s how you would do it with variables:
$host = ‘localhost’;
$user = ‘user_name’;
$pass = ‘password’;
$db = mysql_connect($host, $user, $pass);
The following statement has the same effect:
$db = mysql_connect(‘localhost’, ‘user_name’, ‘password’);
For the most part, your specific needs and the way you are designing your table will
dictate what piece of code you use. Most people use the first method for security ‘sake and
put the variables in a different file. Then they include them wherever they need to make a
connection to the database.
phpMyAdmin is a tool written in PHP intended to handle the administration of MySQL over
the Web. Currently it can create and drop databases, create/drop/alter tables, delete/edit/add
fields, execute any SQL statement, manage keys on fields.
Features provided by the program include:
1. Web interface
9. Transforming stored data into any format using a set of predefined functions, like
displaying BLOB-data as image or download-link
There are many AMP bundles such as LAMP, XAMP, PHPTriad, WAMP, MAMP,
FoxServ, etc. consists of AMP build in itself. So, there is no need to configure AMPs
manually. Some of the AMPs which are available for various operating systems are LAMP
(for Linux); WAMP (for Windows); MAMP (for Macintosh); SAMP (for Solaris); and
FAMP (for FreeBSD).
MySQL:
MySQL, the most popular Open Source SQL database management system, is
developed, distributed, and supported by Oracle Corporation. MySQL is an Oracle-backed
open source relational database management system (RDBMS) based on Structured Query
Language (SQL). MySQL runs on virtually all platforms,
including Linux, UNIX and Windows. Although it can be used in a wide range of
applications, MySQL is most often associated with web applications and online publishing.
MySQL is an important component of an open source enterprise stack called LAMP. LAMP
is a web development platform that uses Linux as the operating system, Apache as the web
server, MySQL as the relational database management system and PHP as the object-oriented
scripting language.
Fig 1: System Architecture
MySQL software is Open Source.
Open Source means that it is possible for anyone to use and modify the software.
Anybody can download the MySQL software from the Internet and use it without paying
anything. If you wish, you may study the source code and change it to suit your needs. The
MySQL software uses the GPL (GNU General Public License), to define what you may and
may not do with the software in different situations. If you feel uncomfortable with the GPL
or need to embed MySQL code into a commercial application, you can buy a commercially
licensed version from us. See the MySQL Licensing Overview for more information.
MySQL is a Database Management System:
A relational database stores data in separate tables rather than putting all the data in one
big storeroom. The database structures are organized into physical files optimized for speed.
The logical model, with objects such as databases, tables, views, rows, and columns, offers a
flexible programming environment. You set up rules governing the relationships between
different data fields, such as one-to-one, one-to-many, unique, required or optional,
and “pointers” between different tables. The database enforces these rules, so that with a
well-designed database, your application never sees inconsistent, duplicate, orphan, out-of-
date, or missing data. The SQL part of “MySQL” stands for “Structured Query Language”.
SQL is the most common standardized language used to access databases. Depending on your
programming environment, you might enter SQL directly (for example, to generate reports),
embed SQL statements into code written in another language, or use a language-specific API
that hides the SQL syntax.
How MySQL works
If that is what you are looking for, you should give it a try. MySQL Server can run
comfortably on a desktop or laptop, alongside your other applications, web servers, and so
on, requiring little or no attention. If you dedicate an entire machine to MySQL, you can
adjust the settings to take advantage of all the memory, CPU power, and I/O capacity
available. MySQL can also scale up to clusters of machines, networked together.
MySQL Server was originally developed to handle large databases much faster than
existing solutions and has been successfully used in highly demanding production
environments for several years. Although under constant development, MySQL Server today
offers a rich and useful set of functions. Its connectivity, speed, and security make MySQL
Server highly suited for accessing databases on the Internet.
MySQL Server works in client/server or embedded systems.
MySQL Server has a practical set of features developed in close cooperation with our
users. It is very likely that your favorite application or language supports the MySQL
Database Server. The official way to pronounce “MySQL” is “My Ess Que Ell” (not “my
sequel”), but we do not mind if you pronounce it as “my sequel” or in some other localized
way.
Core MySQL features
MySQL enables data to be stored and accessed across multiple storage engines,
including InnoDB, CSV, and NDB. MySQL is also capable of replicating data and
partitioning tables for better performance and durability. MySQL users aren't required to
learn new commands; they can access their data using standard SQL commands.
To use MySQL database with Advanced Management Console, download and install
a version of MySQL Server mentioned in Software Prerequisites and System Requirements
for Advanced Management Console Components.
Installing MySQL Database for Advanced Management Console
This topic contains the following sections that describe MySQL installation and configuration
setup instructions for Advanced Management Console on different platforms:
Installing MySQL Database on Windows
Installing and Configuring MySQL on Linux
Installing MySQL Database on Windows
To install MySQL database:
1. Install the MySQL database server only and select Server Machine as the
configuration type.
2. Select the option to run MySQL as a service.
3. Launch the MySQL Command-Line Client. To launch the client, enter the following
command in a Command Prompt window: mysql -u root -p .
The -p option is needed only if a root password is defined for MySQL. Enter the
password when prompted.`
The following are example instructions to install and configure MySQL database for the
Oracle Linux distribution of Linux operating system:
1. Install the MySQL database server package.
You can use the Yum tool to install MySQL on Oracle Linux: sudo yum install mysql-
community-server.
8. [mysqld]
9. max_allowed_packet=120M
10. innodb_log_file_size=768M
DEPLOYMENT
MySQL can be built and installed manually from source code, but it is more
commonly installed from a binary package unless special customizations are required. On
most Linux distributions, the package management system can download and install MySQL
with minimal effort, though further configuration is often required to adjust security and
optimization settings. Though MySQL began as a low-end alternative to more powerful
proprietary databases, it has gradually evolved to support higher-scale needs as well. It is still
most commonly used in small to medium scale single-server deployments, either as a
component in a LAMP-based web application or as a standalone database server. Much of
MySQL's appeal originates in its relative simplicity and ease of use, which is enabled by an
ecosystem of open source tools such as phpMyAdmin. In the medium range, MySQL can be
scaled by deploying it on more powerful hardware, such as a multi-processor server with
gigabytes of memory.
There are, however, limits to how far performance can scale on a single server
('scaling up'), so on larger scales, multi-server MySQL ('scaling out') deployments are
required to provide improved performance and reliability. A typical high-end configuration
can include a powerful master database which handles data write operations and
is replicated to multiple slaves that handle all read operations. The master server continually
pushes binlog events to connected slaves so in the event of failure a slave can be promoted to
become the new master, minimizing downtime. Further improvements in performance can be
achieved by caching the results from database queries in memory using memcached
.
CHAPTER-5
SYSTEM DESIGN
1. 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.
2. 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.
3. DFD shows how the information moves through the system and how it is modified by
a series of transformations. It is a graphical technique that depicts information flow
and the transformations that are applied as data moves from input to output.
4. DFD is also known as bubble chart. A DFD may be used to represent a system at any
level of abstraction. DFD may be partitioned into levels that represent increasing
information flow and functional detail.
USE CASE DIAGRAM:
A use case diagram in the Unified Modeling Language (UML) is a type of behavioral
diagram defined by and created from a Use-case analysis. Its purpose is to present a graphical
overview of the functionality provided by a system in terms of actors, their goals (represented
as use cases), and any dependencies between those use cases. The main purpose of a use case
diagram is to show what system functions are performed for which actor. Roles of the actors
in the system can be depicted.
Start
Register
User
Login
Admin
Login
Sub banler
Monitor
Locker type
Sub banker
Assign locker
AssignStop
locker
ACTIVITY DIAGRAM:
View Details
5.3 DATABASE DESIGN
Database
:
User accounts:
CHAPTER - 6
SYSTEM DEVELOPMENT
INPUT DESIGN
The input design is the link between the information system and the user. It comprises
the developing specification and procedures for data preparation and those steps are
necessary to put transaction data in to a usable form for processing can be achieved by
inspecting the computer to read data from a written or printed document or it can occur by
having people keying the data directly into the system. The design of input focuses on
controlling the amount of input required, controlling the errors, avoiding delay, avoiding
extra steps and keeping the process simple. The input is designed in such a way so that it
provides security and ease of use with retaining the privacy. Input Design considered the
following things:
OBJECTIVES
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 user will not be in
maize of instant. Thus the objective of input design is to create an input layout that is easy to
follow.
OUTPUT DESIGN
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.
1. Designing computer output should proceed in an organized, well thought out manner; the
right output must be developed while ensuring that each output element is designed so that
people will find the system can use easily and effectively. When analysis design computer
output, they should Identify the specific output that is needed to meet the requirements.
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.
Signal important events, opportunities, problems, or warnings.
Trigger an action.
Confirm an action.
6.2 SYSTEM STUDY
FEASIBILITY STUDY:-
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. Three key considerations
involved in the feasibility analysis are
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.
6.3 SYSTEM TESTING
The purpose of testing is to discover errors. Testing is the process of trying to discover
every conceivable fault or weakness in a work product. It provides a way to check the
functionality of components, sub assemblies, assemblies and/or a finished product it is the
process of exercising software with the intent of ensuring that the Software system meets its
requirements and user expectations and does not fail in an unacceptable manner. There are
various types of test. Each test type addresses a specific testing requirement.
TYPES OF TESTS:-
UNIT 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.
INTEGRATION TESTING:-
Integration tests are designed to test integrated software components to determine if they
actually run as one program. Testing is event driven and is more concerned with the basic
outcome of screens or fields. Integration tests demonstrate that although the components were
individually satisfaction, as shown by successfully unit testing, the combination of components
is correct and consistent. Integration testing is specifically aimed at exposing the problems that
arise from the combination of components.
FUNCTIONAL TEST:-
Functional tests provide systematic demonstrations that functions tested are available as
specified by the business and technical requirements, system documentation, and user manuals.
Functional testing is centered on the following items:
SYSTEM TEST
System testing ensures that the entire integrated software system meets requirements. It
tests a configuration to ensure known and predictable results. An example of system testing is the
configuration oriented system integration test. System testing is based on process descriptions
and flows, emphasizing pre-driven process links and integration points.
White Box Testing is a testing in which in which the software tester has knowledge of the
inner workings, structure and language of the software, or at least its purpose. It is purpose. It is
used to test areas that cannot be reached from a black box level.
Black Box Testing is testing the software without any knowledge of the inner workings,
structure or language of the module being tested. Black box tests, as most other kinds of tests,
must be written from a definitive source document, such as specification or requirements
document, such as specification or requirements document. It is a testing in which the software
under test is treated, as a black box .you cannot “see” into it. The test provides inputs and
responds to outputs without considering how the software works.
Unit Testing:
Unit testing is usually conducted as part of a combined code and unit test phase of the
software lifecycle, although it is not uncommon for coding and unit testing to be conducted as
two distinct phases.
Test Strategy and Approach
Field testing will be performed manually and functional tests will be written in detail.
Test objectives
All field entries must work properly.
Pages must be activated from the identified link.
The entry screen, messages and responses must not be delayed.
Features to be tested
Verify that the entries are of the correct format
No duplicate entries should be allowed
All links should take the user to the correct page.
Integration Testing:
Software integration testing is the incremental integration testing of two or more
integrated software components on a single platform to produce failures caused by interface
defects. 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.
Acceptance Testing:
User Acceptance Testing is a critical phase of any project and requires significant
participation by the end user. It also ensures that the system meets the functional requirements.
Test Results: All the test cases mentioned above passed successfully. No defects encountered.
CHAPTER - 7
APPENDICES
7.1 SCREENSHOT
Admin Login:
Dashboard:
Create subbanker:
Create locker type:
Create Assign locker:
Profile:
Report date selection:
SOURCE CODE:
<?php session_start();
// Database Connection
include('includes/config.php');
//Validating Session
if(strlen($_SESSION['aid'])==0)
{
header('location:index.php');
}
else{ ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>BLMS | Dashboard</title>
<?php include_once('includes/sidebar.php');?>
<!-- Sidebar -->
<?php if($_SESSION['utype']==1):?>
<div class="col-lg-4 col-6">
<!-- small box -->
<div class="small-box bg-info">
<div class="inner">
<?php $query=mysqli_query($con,"select id from tblbanker where UserType=0");
$subadmincount=mysqli_num_rows($query);
?>
<p>Assigned Lockers</p>
</div>
<div class="icon">
<i class="ion ion-person-add"></i>
</div>
<a href="manage-locker-form.php" class="small-box-footer">More info <i
class="fas fa-arrow-circle-right"></i></a>
</div>
</div>
<!-- ./col -->
<!-- ./col -->
</div>
<!-- /.row -->
</div><!-- /.container-fluid -->
</section>
<!-- /.content -->
</div>
<!-- /.content-wrapper -->
<?php include_once('includes/footer.php');?>
</div>
<!-- ./wrapper -->
CONCLUSION
A Bank Locker Management System is essential for providing secure and efficient
storage solutions for clients' valuables. It enhances customer satisfaction by offering a user-
friendly interface for managing locker assignments and appointments. The system improves
operational efficiency through automation and streamlined processes, ultimately leading to
cost savings for the bank. Robust security measures safeguard client data and ensure the safe
handling of stored items. Compliance with regulatory requirements further strengthens the
system's credibility. Future developments, such as mobile applications and integration with
emerging technologies, can enhance client engagement. Overall, a well-implemented locker
management system significantly contributes to a bank's service offerings and competitive
edge. Embracing such technology is vital for modern banking institutions aiming to meet
evolving customer needs.
CHAPTER -
FUTURE WORK
As the hardware of the Bank locker advances the web app will
have room for improvements as well. For instance, we can add
fingerprint scanners to enhance the check in and check out experience
making the process a lot convenient and quick for both the users and the
admin as the timestamps will automatically be updated in the database
for each activity.New features can be added after taking feedback from
the admin and the users on how to make it better. There’s always room
for improvement for everything.
CHAPTER - 11
REFERENCE