Password Manager Report
Password Manager Report
ON
“Password Manager”
BANGALORE UNIVERSITY
2021
BY
Imran A F (18NCSB7013)
Ganesh M (18NCSB7011)
Vimalnath V (18NCSB7070)
Prof. Nayana K V
BENGALURU-560100
DECLARATION
report any part of it has not submitted to any other University/Institute for the
Signature of Student
CERTIFICATE
guidance during the training. I would also like to thank father Rev Dr. Roy
P.K.
and specially Prof. Nayana K V (internal guide) for giving their valuable
suggestions.
Signature of Student
(Sign of HOD) (Sign of Internal Guide)
ABSTRACT
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
It’s an GUI based application simple and easy to use. It has a lot’s of
can be stored for various applications and details required for maintaining
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
result.
TABLE OF CONTENTS
Table 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. Preliminary analysis & Information gathering
2.2. Input/outputs
2.3. Feasibility Study
2.4. System Requirements Specification
2.5. Software Engineering Model Used
2.6. Cost Estimation
2.7. Project Scheduling
3. SYSTEM DESIGN
3.1. Project Planning
3.2. Modules
3.3. Data Flow Diagram
3.4. E-R Diagram
3.5. Data Base Design
3.6. Screen Shots
4. TESTING
6. REFERENCES
CHAPTER 1
INTRODUCTION
INTRODUCTION
Password Manager is an GUI based application that allows users to store and
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 diffifcult for hackers. You don’t have
That means you can actually follow unpleasant butuseful security advice, like
never reusing a password and always using long, strong and complex
passwords.
[1]
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 master password 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.
[2]
1.3 Tools And Technologies:
Python: -
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,
[3]
interface. Tkinter was written by Fredrik Lundh and it is free software released
a) Window:
b) Widget:
The generic term for any of the building blocks that make up an
graphics).
error dialogs)
c) Themed Tk:
treeview widgets.
[4]
d) Frame:
In Tkinter, the Frame widget is the basic unit of organization for complex
e) Pack:
installs of Python.
MySQL:
data into one or more data tables in which data types may be related to each
other these relations help structure the data. SQL is used to create, modify and
extract data from the relational database, as well as control user access to the
database.
[5]
CHAPTER 2
SYSTEM ANALYSIS
[6]
SYSTEM ANALYSIS
Input Design:
Input design is the link that ties the information system into the world
of its users. The input design involves determining the inputs, validating the
data, minimizing the data entry and provides a multi-user facility. Inaccurate
inputs are the most common cause of errors in data processing. Errors entered
by the data entry operators can be controlled by input design. The user-
originated inputs are converted to a computer-based format in the input design.
Input data are collected and organized into groups of similar data. Once
identified, the appropriate input media are selected for processing. All the input
data are validated and if any data violates any conditions, the user is warned by
a message. If the data satisfies all the conditions, it is transferred to the
appropriate tables in the database. In this project the student details are to be
entered at the time of registration. A page is designed for this purpose which is
user friendly and easy to use. The design is done such that users get appropriate
messages when exceptions occur.
[7]
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.
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
[8]
new system as a substitute to old system removing all shortcomings and
including all new requirements.
Hardware Requirements
Memory Space:
Minimum - 32 MB
Recommended - 64 MB
Software Requirements
DEVELOPING LANGUAGE -
BACKEND - PYTHON
DATABASE - MY SQL
[9]
2.5 SOFTWARE ENGENEERING MODEL USED:
This document plays a vital role in the development of life cycle (SDLC) as it
describes the complete requirement of the system. It means for use by
developers and will be the basic during testing phase. Any changes made to the
requirements in the future will have to go through formal change approval
process.
SPIRAL MODEL was defined by Barry Boehm in his 1988 article, “A spiral
Model of Software Developed and Enhancement. This model was not the first
model to discuss iterative development, but it was the first model to explain by
the iteration models.
[10]
7. Planning and designing the second prototype.
8. Constructing and testing the second prototype.
9. The final system is constructed, based on the refined prototype.
[11]
2.6 Cost Estimations
Economic analysis is the most frequently used technique for evaluating the
effectiveness of a proposed system. It is commonly known as cost/benefit
analysis: the procedure is to determine the benefits and savings that are
expected from a proposed system and compare them with cost. If benefits
outweigh cost, a decision is taken to design and implement the system.
Otherwise, further justification or alternative in the proposed system will have
to be made if it is to have a chance of being approved. This is an ongoing effort
that improves in accuracy at each phase of the system life cycle. Total estimated
cost of the project.
Financing of the project in terms of its capital structure, debt e/unity ratio and
promoters share of total cost.
Existing investment by the promoter in any other business
Projected cash flow and profitability.
A project is made up of many tasks, and each task is given a start and end (or
due date), so it can be completed on time. Likewise, people have different
schedules, and their availability and vacation or leave dates need to be
documented in order to successfully plan those tasks.
[12]
Project scheduling provides the following benefits:
[13]
CHAPTER 3
SYSTEM DESIGN
[14]
SYSTEM DESIGN
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
● Project-Staffing
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 the
development 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
[15]
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:
d) SignUp: With the SignUp module, you can quickly and easily create a
Account for Password Manager GUI app. So you can access its feature.
e) Login: This module validates the user, and returns an error statement if it
doesn’t find the specified user in the data base.
[16]
f) 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.
[17]
3.3 Data Flow Diagram:
[18]
3.4 E-R Diagram:
SYMBOL MEANING
ENTITY
RELATIONSHIP
ATTRIBUTE
[19]
[20]
3.5 Database Design:
user_id int
Username varchar(50)
Password varchar(30)
useraccounts
userdata
Website varchar(50)
Username varchar(50)
Password varchar(50)
Email_id
varchar(50)
[21]
3.6 Screenshots:
Welcome Page:
[22]
SignUp Page:
Login Page:
Password Manager:
[23]
CODING:
INTRO PAGE:
root = Tk()
root.geometry("1590x800+0+0")
root.title("demo")
root.config(bg="#ea5455")
def lg_in():
root.destroy()
import register
btn_img = ImageTk.PhotoImage(file="button_sign-u.png")
des = Label (text="It Gives you a easy access to store,generate, and manage\n
[24]
your "
des.place(x=330, y=350)
bg="#ea5455")
sign_up_btn.place(x=650, y=550)
root.mainloop()
SignUp Page:
import mysql.connector
root = Tk()
root.geometry("1590x800+0+0")
root.title("demo")
root.config(bg="#ea5455")
img_reg = PhotoImage(file="images/button_sign_up.png")
[25]
frame1.place(x=550, y=30, width=500, height=740)
bg="white", fg="black")
lbl_sign_up.place(x=690, y=70)
username.place(x=600, y=200)
user_mail.focus()
paswd.place(x=600, y=330)
def regs():
[26]
if new_pswd.get() == "" or cnfrm_pswd.get() == "" or user_mail.get() == "":
else:
try:
db = mysql.connector.connect(
host='localhost',
user='root',
passwd='root',
database="password_manager")
cur = db.cursor()
(user_mail.get(), new_pswd.get()))
db.commit()
db.close()
root.destroy()
import log_in
except EXCEPTION as e:
[27]
messagebox.showerror("Error", f"Error Due to {e}")
reg_btn.place(x=600, y=560)
root.mainloop()
Login Page:
import mysql.connector
root = Tk()
root.geometry("1590x800+0+0")
root.title("PASSWORD MANAGER")
root.config(bg="#ea5455")
def login():
else:
[28]
try:
db = mysql.connector.connect(
host='localhost',
user='root',
passwd='root',
database="password_manager")
cur = db.cursor()
(email_txt.get(), paswd_txt.get()))
KEY AUTO_INCREMENT")
if row is None:
else:
root.destroy()
import main
except EXCEPTION as e:
[29]
messagebox.showerror("Error", f"Error Due to {e}")
btn_login = PhotoImage(file="images/button_log-in.png")
title.place(x=710, y=80)
label.place(x=600, y=200)
email_txt.focus()
pass_lbl.place(x=600, y=320)
[30]
sign_in = Button(image=btn_login, bd=0, bg="white", command=login)
sign_in.place(x=610, y=500)
root.mainloop()
Password Manager:
import pyperclip
import mysql.connector
import string
def clear():
website_entry.delete(0, END)
password_entry.delete(0, END)
mail_entry.delete(0, END)
username_entry.delete(0, END)
[31]
def save():
website = website_entry.get()
username = username_entry.get()
password = password_entry.get()
mail_id = mail_entry.get()
else:
if is_ok:
try:
db = mysql.connector.connect(
host='localhost',
user='root',
passwd='root',
database="password_manager")
cur = db.cursor()
[32]
(website, username, password, mail_id))
db.commit()
db.close()
fetch_data()
clear()
except EXCEPTION as e:
def update():
website = website_entry.get()
username = username_entry.get()
password = password_entry.get()
mail_id = mail_entry.get()
try:
db = mysql.connector.connect(
host='localhost',
user='root',
passwd='root',
database="password_manager")
cur = db.cursor()
[33]
cur.execute("UPDATE UserData SET Username=%s, Password=%s,
mail_id=%s WHERE Website=%s",
db.commit()
db.close()
fetch_data()
clear()
except EXCEPTION as e:
def delete():
website = website_entry.get()
db = mysql.connector.connect(
host='localhost',
user='root',
passwd='root',
database="password_manager")
cur = db.cursor()
(website,))
db.commit()
db.close()
[34]
fetch_data()
clear()
window = Tk()
window.geometry("1590x800+0+0")
window.title("PASSWORD MANAGER")
window.config(bg="#ea5455")
frame1.place(x=20, y=30)
frame2.place(x=30, y=150)
frame3.place(x=650, y=140)
def check():
upper = upper_var.get()
lower = lower_var.get()
[35]
number = number_var.get()
symbol = symbol_var.get()
ps = ''”
if upper == 'on':
ps += string.ascii_uppercase
if lower == 'on':
ps += string.ascii_lowercase
if number == 'on':
ps += string.digits
if symbol == 'on':
ps += string.punctuation
else:
generate_entry.delete(0, END)
return ps
def generate(ev):
pswrd = check()
password = ''
[36]
generate_entry.delete(0, END)
password_entry.delete(0, END)
generate_entry.insert(0, password)
password_entry.insert(0, password)
pyperclip.copy(password)
upper_var = StringVar()
lower_var = StringVar()
number_var = StringVar()
symbol_var = StringVar()
label.place(x=100, y=80)
bd=0, command=generate)
slider.place(x=100, y=140)
onvalue='on', offvalue='off')
[37]
upper_check.place(x=380, y=130)
upper_check.select()
onvalue='on', offvalue='off')
lower_check.place(x=380, y=180)
lower_check.select()
onvalue='on', offvalue='off')
number_check.place(x=525, y=130)
number_check.deselect()
onvalue='on', offvalue='off')
symbol_check.place(x=525, y=180)
symbol_check.deselect()
[38]
add_image = ImageTk.PhotoImage(file="button_add.png")
update_img = ImageTk.PhotoImage(file="button_update.png")
delete_img = ImageTk.PhotoImage(file="button_delete.png")
title.place(x=590, y=60)
web_label.place(x=40, y=50)
username_label.place(x=40, y=150)
password_label.place(x=40, y=250)
mail_label.place(x=40, y=350)
[39]
website_entry = Entry(frame2, width=40, font=("helvetica", 15), relief="ridge",
borderwidth=1)
website_entry.focus()
add_btn.place(x=15, y=480)
[40]
update_btn.place(x=210, y=480)
delete_btn.place(x=410, y=480)
# ==================== Treeview================
def get_cursor(event):
cursor_row = password_tree.focus()
contents = password_tree.item(cursor_row)
row = contents['values']
clear()
website_entry.insert(0, row[0])
username_entry.insert(0, row[1])
password_entry.insert(0, row[2])
mail_entry.insert(0, row[3])
frame4.place(x=650, y=420)
style = ttk.Style()
style.configure("Treeview", rowheight=28)
[41]
style.map("Treeview", background=[('selected', '#ea5455')])
password_tree.tag_configure('oddrow', background='white')
password_tree.tag_configure('evenrow', background='#ffcccb')
password_tree.column("website", width=140)
password_tree['show'] = 'headings'
password_tree.pack(expand=True, fill=BOTH)
password_tree.bind("<ButtonRelease-1>", get_cursor)
def fetch_data():
count = 0
db = mysql.connector.connect(
host='localhost',
user='root',
passwd='root',
database="password_manager")
cur = db.cursor()
[42]
rows = cur.fetchall()
if len(rows) != 0:
password_tree.delete(*password_tree.get_children())
if count % 2 == 0:
db.commit()
else:
db.commit()
count += 1
db.close()
fetch_data()
window.mainloop()
# ---------------Database Creation------------
import mysql.connect
db = mysql.connector.connect(
host='localhost',
[43]
user='root',
passwd='root')
cur = db.cursor()
#----------Table Creation----------
import mysql.connect
db = mysql.connector.connect(
host='localhost',
user='root',
passwd='root',
database="password_manager")
cur = db.cursor()
db.commit()
[44]
CHAPTER 4
TESTING
[45]
SYSTEM TESTING
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.
[46]
VERIFICATION & VALIDATION TESTING
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:
• Equivalence partitioning
• Boundary-value analysis
• Error guessing.
Equivalence Partioining:
[47]
Equivalence partitioning is a systematic process that identifies, on the basis of
whatever information is available, a set of interesting classes of input conditions
to be tested, where each class is representative of a large, set of other possible
tests.
Boundary-value analysis:
Boundary-value analysis is a test case design technique that complements
equivalence portioning. Rather than selecting any element of an equivalence
class, BVA leads to the selection of text cases at the “edges” of the code.
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 null lists/ strings
• Zero instances/ occurrences
• Blanks or null characters in strings
• Negative numbers.
Features to be tested
WHITE-BOX TESTING
[48]
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.
• 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.
Testing was done for the grouping row and column pixels.
[49]
• Decision/condition coverage: Each statement is executed at least once;
each decision takes on all possible outcomes at least once; each condition
in a decision takes on all possible outcomes at least once.
• Multiple/condition coverage: Each statement is executed at least once; all
possible combinations of condition outcomes in each decision occur at
least once.
• Whether correct statistical values are getting from the given grouped
rows, grouped pixels.
UNIT TESTING
INTEGRATION TESTING
The program as a whole is integrated into a single component and checked with
test data. This is to check that the whole program works together correctly. The
various modules are integrated first. Then the system is tested as a whole. The
[50]
behavior of each module with another is identified in this testing. Any
misbehavior will lead to dangerous problems or errors in the system. All these
problems can be filtered off using this testing.
We combined all the modules into a single component and tested for integrity.
We found the crude form of our project is meeting the basic requirements like
functioning of the application based on the requirement.
Bottom-up Integration: low-level components are integrated and tested
before the higher-level components have been developed.
Top-down Integration: The high-level components of a system are
integrated and tested before their design and implementing has been
completed.
After a module has been tested, an actual module and its required stubs replace
one of its stubs.
The following points must considered by a software engineer to clear the
potential interfacing problems in the process of designing the software.
1. Design error-handling paths that test all information coming from other
elements of the system.
2. Conduct a series of tests that simulate bad data or other potential errors at the
software interface.
[51]
3. Record the results of tests to use evidence if finger pointing occurs.
4. Participate in the planning and design of system testes to ensure that
software is adequately tested.
ACCEPTANCE TESTING
TEST RESULTS:
All the test cases mentioned above passed successfully. No defects encountered.
[52]
CHAPTER 5
IMPLEMENTATION
&
MAINTENANCE
[53]
SYSTEM IMPLEMENTATION & MAINTENANCE
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 stage in 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
[54]
during the implementation phase the system takes shape.
MAINTENANCE
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.
[55]
and operating a help-desk.
● Host Modifications
● Organization changes
Correct faults
Implementation enhancement
CONCLUSION
[56]
This project is designed for the users who surf through internet a lot and create a
number of online accounts and they can’t keep track or memorize all of their
online acconts login details. That’s where our Password Manager comes in use
it helps them to houses all their passwords in encrypted database. Even it helps
in generating a stronger, random and complex passwords which makes them
more difficult to crack or guess. Thus, you can have easy access for your
accounts and more difficult for hackers.
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.
Enhancement of UI of application
REFERENCES
[57]
1) https://www.python.org/doc/
2) https://docs.python.org/3/library/tk.html
3) https://www.youtube.com/watch?
v=YXPyB4XeYLA&t=15620s&ab_channel=freeCodeCamp.org
4) https://www.youtube.com/watch?
v=3vsC05rxZ8c&t=12s&ab_channel=TechWithTim
5) https://www.udemy.com/course/100-days-of-code/
6) https://stackoverflow.com
[58]
[59]