We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 27
A PROJECT REPORT
ON
“Password Manager”
BACHELOR OF TECHNOLOGY
‘Submitted in partial fulfilment of the requirement for the award of degree of
Babu Banarasi Das Institute of Technology Ghaziabad
Department of Computer Science & Engineering
By
Sahitya Tyagi
Aman
Under the Guidance Of
Miss. Anvisha SharmaDECLARATION
We the projct team members, Sahitya Tyagi Aman, hereby
declare that the Project Report titled “Password Manager”
submitted to BBDIT Ghaziabad in paritial fulfilment of the
requirements for the award of the Degree of Bechelor of
Technology . We have not plagiarized or submitted the same
work for the award of any other examination. In case this
declaration is found incorrect we accept that our certificates
may be unconditionally withdrawn.
February 2024
Place:- Babu Banarasi Das institute of Technology Ghaziabad
Signature of StudentCERTIFICATE
This is to certify that the project
“Password Manager” submitted by
Sahitya Tyagi Roll No. 2200350109007 to
BBDIT Ghaziabad, in partial fulfillment of
the requirement for the award the
Bechelor of Technology
Miss. Anvisha Sharma
Project Coordinator
Department of computer science & engineering
Babu Banarasi Das institute of Technology GhaziabadABSTRACT
“Password Manager” is a small-scale project used for storing
your login information for all the websites you use and
generating random passwords for users. The user will have the
access to add, update and remove his details and he can fetch his
data whenever needed. It’s an GUI based application simple and
easy to use. It has a lot’s of feature which makes user experience
better. In this application Passwords can be stored for various
applications and details required for maintaining the Passwords
are application or website name, username, password and email
id. You would not get any problem while using it because it’s
simple and user friendly UI will make your work easy, faster and
gives you a better resultTABLE OF CONTENTS
1. INTRODUCTION
1.1. Basic introduction of Project
1.2. Objective and Scope
1.3. Tools and Technologies used
2. SYSTEM ANALYSIS
2.1. Feasibility Study
3. SYSTEM DESIGN
3.1. Project Planning
3.2. Modules4. Coding
5.Testing
6.Implementation and Maintenance
CHAPTER -1
INTRODUCTION
1.1 Basic Introduction:
Password Manager is an GUI based application that allows users to store and.
generate random passwords. It is created in Python using Tkinter to manage
passwords for several application. A password manager is a program that houses all
your passwords, as well as other information, in one convenient location with one
master password. The benefits of using Password Manager are:11 A Password Manager will do the work of creating the complicated passwords
you need to help protect your online accounts.
11 You need to remember only the password manager's password. That single
password will give you access to all of your others.
Not only do password managers help securely house your passwords, but they can
also generate passwords that are unique and complex, which makes them more
difficult to crack or guess. It also simplifies your life by making account access
easier for you and more diffifeult for hackers, You don’t have to memorize any
passwords except for the password to your password manager. That means you can
actually follow unpleasant butuseful security advice, like never reusing a password
and always using long, strong and complex passwords
1.2 Objectives and scope:
In this project, we will build an application which will store the User's password, as
well as other information, in one convenient location with one master password.
Python Features and methods are used to implement in this project. Today, people
have a large number of passwords for social media sites, work logins, shopping
pages, online banking and much more, While it is important to use strong passwords
and to use different passwords on each site, it can be a difficult task to remember all
them. With a password manager, you simply enter the GUI app, provide the masterpassword you set for the password manager in that software, then log in to the GUI
app and the username and password will be stored for you. However, the primary
purpose of this project to make Password Manager application user-friendly so that
any individual can interact with the system. The main scope and deliverables of the
project would be to:
(J Understand and prepare detailed user requirement and specifications.
(1 Prepare high level and detailed design specifications of the system.
_. Prepare Test Plan & Test cases.
11 Develop the system and coding.
(1 Perform unit testing, integration testing and system testing,
11 Demonstrate a bug free application after suitable modification, if needed,
11 Develop a GUI application using Python Tkinter
ols And Technologie:
Python: - Python is an interpreted high-level and general-purpose
programming language. Its language constructs and object-oriented.approach aim to help programming write clear, logical code for small
and large-scale projects. Python is dynamically-typed and garbage-
collected. It supports structured, Object-oriented and functional
programming. Python was created in the late 1980’s, and first released
in 1991, by Guido Van Rossum at Centrum Wiskunde & Informatica
in the Netherlands as a successor to ABC programming language.
Python GUI Framework: A Graphical User Interface (GUI) is the
first thing your user sees and interacts with when he opens your
application or website. Having a good GUI goes a long way in
increasing your platform’s reputation and user count. A user interface
usually includes a host of visual elements like icons, buttons, graphics,
displayed text, and several other forms of input, like checkbox, text
input boxes, and such.Tkinter: Often referred to as the go-to GUI toolkit by a majority of
Python developers, Tkinter was created to equip modern developers
with a standard interface to the Tk GUI toolkit with its Python.
bindings. The name Tkinter comes from Tk interface. Tkinter was
written by Fredrik Lundh and it is free software released under a
Pyhton license.
Random Module: The Python Random module is a built-in module
for generating random integers in Python. These numbers occur
randomly and does not follow any rules or instructuctions. We can
therefore use this module to generate random numbers, display a
random item for a list or string, and so on
Pyperclip: In Python, pyperclip allows you to copy text to the
clipboard, paste text from the clipboard, and even monitor the
clipboard for updates. asweigart/pyperclip: Python module for
cross-platform clipboard functions
Frame : |n Tkinter, the Frame widget is the basic unit of
organization for complex layouts. A frame is a rectangular area that
can contain other widgets.CHAPTER-2
2.3 Feasibility Study: Feasibility study is most
important and it concerns great to the student and
faculty which new system is to be developed. It includes
the study of success and level of satisfaction of the user
will get from the system. Feasibility means possibilities
(to some extent), i.e., this study the possibility of
implementation of new system as a substitute to old
system removing all shortcomings and including all new
requirements. A feasibility study is a detailed analysis
that considers all of the critical aspects of a proposed
project in order to determine the likelihood of it
succeeding. Success in business may be defined
primarily by return on investment, meaning that the
project will generate enough profit to justify the
investment.CHAPTER-3
3.1 Project planning: Project management begins
with planning, which perhaps the single largest
responsibility of the project management Proper
planning is recognized as a critical ingredient for a
successful project. The project plan provides the
fundamental basis for project management. A
software plan is usually produced before the
development activity begins and is updated as
development proceeds and data about progress of
the project become available. The major activities
of project planning is :
¢ Cost estimation
e Schedule and Milestone determination
Project-Staffing
@ Quality control plans
¢ Controlling and monitoring plan
Cost and schedule estimation is the amount of
total cost and time nedded for successfully
completing the project. In addition, cost and
schedule for the different activities of development
process to be used are also estimated, as thedevelopment process only specifies the activities,
not the cost and time requirement for them. In this
project, the cost is calculated on the effort of the
hardware and software cost. Activities carried out
are scheduling the project according to the time
limit and obtaining the correct output. The project
plans for all the software quality assurance
activities that needed to be performed in order to
ensure the quality objectives are met. A project
plan also provides methods for handling change
and methods for monitoring a project. Project
planning is the single most important management
activity and output of this forms the basis of
monitoring and control.3.2 Modules:
a) Pyperclip: Pyperclip is the cross-platform
Python module which is used for copying and
pasting the text to the clipboard.
b) Random: The random module is a built-in
module to generate the pseudo-random variables.
It can be used perform some action randomly such
as to get a random number, selecting a random
elements from a list, shuffle elements randomly,
etc.
c) User : User privileges are provided to the user,
where he is able to to store and generate random
passwords.
i. Add Data: This module provides features for
adding the password or other details of user in the
database. The user must register/signup himself
first, so that he is able to login and store or
generate a random password for his online
accounts.ii. Update Data: This module enables the user to
update his existing data. If he wants update his
data that he has already stored in the database.
iii. Remove Data: When an user wants to remove
his data from his database, he is able to do it with
the help of this module and is able to successfully
remove that specific data.
d). Password Generator: This module generates
passwords based on the customization that you
set to create an unpredictable strong password for
your accounts. It helps to create a random and
customized password for users that helps them to
create a strong password which provides greater
securityCHAPTER-4
Coding-
from tkinter import *
from tkinter import messagebox
from random import choice, randint, shuffle
import pyperclip
#Password Generator Project
def generate_password():
letters = fa’, 'b’, 'c','d','e’, ‘fF, 'g’ th’, f.'k Tm’,
'n’, 'o', 'p', 'q
Sr 's', ty tu’, ‘v4, tw
password_letters = [choice(letters) for _ in
range(randint(8, 10))]
password_symbols = [choice(symbols) for _ in
range(randint(2, 4))]
password_numbers = [choice(numbers) for _ inrange(randint(2, 4))]
password_list = password_letters +
password_symbols + password_numbers
shuffle(password_list)
password = ""join(password_list)
password_entry.insert(0, password)
pyperclip.copy(password)
#
SAVE PASSWORD -
def save():
website = website_entry.get()
email = email_entry.get()
password = password_entry.get()
if len(website) == 0 or len(password) == 0:
messagebox.showinfo(title="Oops",
message="Please make sure you haven't left any
fields empty.")
else:
is_ok = messagebox.askokcancel(title=website,
message=f" These are the details entered: \nEmail:
{email} "
f'\nPassword: {password} \nls it ok to save?")
if is_ok:with open("data.txt", "a") as data_file:
data_file.write(f"{website} | {email} |
{password}\n")
website_entry.delete(0, END)
password_entry.delete(0, END)
window = Tk()
window.title("Password Manager")
window.config(padx=50, pady=50)
canvas = Canvas(height=200, width=200)
logo_img = Photolmage(file="logo.png")
canvas.create_image(100, 100, image=logo_img)
canvas.grid(row=0, column=1)
#Labels
website_label = Label(text="Website:")
website_label.grid(row=1, column=0)
email_label = Label(text="Email/Username:")
email_label.grid(row=2, column=0)
password_label = Label(text="Password:")
password_label.grid(row=3, column=0)
#Entrieswidth=35
row=1, column=1
columnspan=2
width=35
row=2, column=1, columnspan=2
0, "[email protected]
width=21
row=3, column=1
# Buttons
text="Generate Password"
command
row=3, column=2
text="Add", width=36.
command
row=4, column=1, columnspan=2
CHAPTER-5
Testing: Testing is an important phase encountered in
any developed product or framework is the testing
phase. It is because, the developed product should befree from errors and it should be validated for accuracy.
The product should work under normal conditions as
long as the user gives proper inputs and therefore it
should be checked for its robustness and should
withstand and inform the users about the erroneous
input. The testing phase involves testing the system
using various test data. Preparation of test data plays a
vital role in the system testing. After preparing the test
data, the system is tested using those test data. Errors
are found and corrected by using the following testing
steps and corrections are recorded for future reference.
Thus a series of testing is performed on the system
before it is ready for implementation. Testing is applied
at different levels in the development lifecycle. Each
level of testing done is different in nature and has
different objectives at each level. The focus of all levels
of testing is to find errors, but different types of errors
are looked for at each level. The quality of system is
confirmed by the thoroughness of its testing. Duration
and cost of testing and debugging is a significant
fraction of the system development cycle and hence
influences overall productivity during the development.
In this phase, the errors in the programs or modules are
localized and modifications are done to eliminate them.
The testing makes a logical assumption that all parts of
the system work efficiently and the goal is achieved.
VERIFICATION & VALIDATION TESTINGThe purpose of the requirement phase is to verify all
behavioral characteristics and performance
requirements. Validation is achieved through a series of
testing that demonstrate conformity with requirements.
Both the plan and the procedures are designed to
ensure that all the functional requirements are satisfied
in the program.
¢ All behavioral characteristics are achieved.
All performance requirements are attained.
BLACK-BOX TESTING:
Black-box testing is an approach to testing where the
tests are derived from the program or component
specification. The system is a ‘block box’ whose
behavior can only be determined by studying its inputs
and the related outputs. Another name for this is
functional testing because the tester is only concerned
with the functionality and not the implementation of the
software. The following methods are commonly used:
The following methods are commonly used: +
Equivalence partitioning * Boundary-value analysis +
Error guessing.
Error Guessing: Error guessing is an ad hoc approach,
based on intuition and experience, to identify tests that
are considered likely to expose errors. The basic idea is
to make a list of possible errors or error-prone situations
and then develop tests based on the list. * Empty or nulllists/ strings * Zero instances/ occurrences + Blanks or
null characters in strings * Negative numbers.
WHITE-BOX TESTING
White box testing is conducted to ensure that internal
operations are performed according to specifications
and all internal components are adequately exercised.
This type of testing is called as white-box testing or
glass-box testing. White-box testing of software is
predicated on close examination of procedural detail.
Providing test cases that exercise specific sets of
conditions and/or loops tests logical paths through the
software. The “status of the program” may be examined
at various points to determine if the expected or
asserted status corresponds to the actual status
WHITE BOX TEST IS DONE TO
+ Guarantee that all independent paths within a module
have been exercised at least once.
+ Exercise all logical decisions on their true or false
sides
+ Execute all loops at their boundaries and within their
operational bounds.
+ Exercise internal data structure to assure their validity
UNIT TESTINGUnit testing focuses on the verification effort of the
smallest unit of design module. Attention is diverted to
individual modules, independently to locate errors. This
has enabled the detection of errors in coding and logic.
The various modules of the system are tested in unit
testing method. Using the detailed description as a
guide, important control parts are tested to uncover
errors within the boundary of the module. The relative
complexity of tests and the error detected as a result is
limited by the constrained scope established for unit
testing. This test focuses on each module individually,
ensuring that it functions properly as a unit, and hence
the name Unit Testing.
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-6
Implementation and maintenance
SYSTEM IMPLEMENTATION & MAINTENANCE
Implementation means converting a new system or
revised system into an operational one. Conversion is
main aspect of implementation. It is the process of
designing from the old system to the new one, Several
procedures and documents are carried during the
conversion phase. Implementation of a modified
application to replace an existing one. Using the same
computer this type of conversion is relatively easy to
handle, provided there are no major changes in the files.
In implementation, the training for the system user, how
to work with this software should be given. The
development of operating procedure to repair and
enhance the system should be done. The installation
new computers with required hardware and software
specification are to be performed, if the present system
is working manually. If the hardware specification of the
present system is below the recommended specification
the existing system should be replaced with new one or
up gradation of the existing system should be done. It is
necessary to check whether the required application
should be working properly. Implementation is the stagein the project where the theoretical design is turned
in to a working system and is giving confidence on the
new system for the users, which will work efficiently and
effectively. It involves careful planning investigation of
the current system and its constraints. If the
implementation neither is nor carefully planned it can
cause confusion. Thus it can be considered as the most
crucial stage in achieving a successful new system and
in giving the users confidence that the new system will
work be effective. It is during the implementation phase
the system takes shape. The main stages in the
implementation are
+ Planning
* Training
+ System Testing
MAINTENANCE
Software development efforts result in the delivery of a
software product which satisfies user requirements.
Accordingly, the software product must change or
evolve. Once in operation, defects are uncovered,
operating environments change, and new user
requirements surface. Software maintenance is an
integral part of a software life cycle. The software
maintenance is defined as the totality of activities
required to provide cost effective support to software.
The software life cycle processes essentially depicts
maintenance as one of the primary life cycle processes,and describes maintenance as the process of a software
product undergoing modification to code and associated
documentation due to a problem or the need for
improvement. The objective is to modify the existing
software product while preserving its integrity. Software
maintenance is the totality of activities required to
provide costeffective support to a software system.
Activities are performed during the predelivery stage as
well as the post-delivery stage. Pre-delivery activites
include planning for post-delivery operations,
supportabilty and logistics determionation Post-delivery
activities include software modification, training and
operating a help-desk. There are number of reasons,
why modifications are required like
e Client requirement
@ Host Modifications
@ Organization changes
Need for maintenance: Maintenance is needed to
ensure that the software continues to satisfy user
requirements. Maintenance is applicable to software
developed using any life cycle model (for example —
spiral). The system changes due to corrective and non-
corrective software actions. Maintenance must be
performed in order to:
UO Correct faults
U Improve the designU Implementation enhancement
U Interface with other systems
U Perfecting existing functions
Future Enhancement:
This project has very vast scope in future. As the user's
requirement is always going to be changed which is not
static. Project can be updated as per the user
requirement and it is very flexible in terms of expansion.
The enhancement of the project can easily be made
without changing the programming structure. The
following are the future enhancement of the project
Oj Enhancement of UI of application
U Converting the Desktop application into Web
application.