Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Aditya Project

Download as pdf or txt
Download as pdf or txt
You are on page 1of 49

SGMSGM

International School
INTERNATIONAL SCHOOL
Indira Nagar, Kalyanpur, Kanpur

SESSION 2022-2023

PROJECT
File
By: Aditya Tiwari
Class: 12th A
Team Members:
Aditya Tiwari Roll no:
Vishal Singh Subject: Computer Science
Bhavishya Soni
Submitted to: Mr. HariKishan
Acknowledgement

I would like to express my special thanks of my


gratitude to my Computer Science teacher “Mr.
HariKishan” for his able guidance and support in
completing my project file.
I would also like to extend my gratitude to the
Principal Sir “Mr. Sandeep Pathak” for providing me
with all the facilities that were required.

Aditya Tiwari
12 A
ABSTRACT

“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

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. System Requirements Specification

3. SYSTEM DESIGN
3.1. Modules
3.2. Data Flow Diagram
3.3. Data Base Design
3.4. Screen Shots
3.5. Coding

4. TESTING

5. IMPLEMENTATION & MAINTENANCE

6. CONCLUSION

7. REFERENCES
CHAPTER 1
INTRODUCTION
INTRODUCTION

1.1 Basic Introduction:

Password Manager is a GUI based application that allows users to store and

generate random passwords. It is created in Python using Tkinter and Mysql

database 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:

• A Password Manager will do the work of creating the complicated

passwords you need to help protect your online accounts.

• 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 diffifcult 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 but useful 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.

The main scope and deliverables of the project would be to:

➢ Understand and prepare detailed user requirement and specifications.


➢ Prepare high level and detailed design specifications of the system.
➢ Prepare Test Plan & Test cases.
➢ Develop the system and coding.
➢ Perform unit testing, integration testing and system testing.
➢ Demonstrate a bug free application after suitable modification, if needed.
➢ Develop a GUI application using Python Tkinter.

[2]
1.3 Tools And Technologies:

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.


[3]
Tkinter is included with standard Linux, Microsoft Windows and Mac OS X

installs of Python.

MySQL:

MySQL is an open-source relational database management system

(RDBMS). language for relational database management systems. It is used for

storing, manipulating and retrieving data in databases. Its name is a combination

of "My", the name of co-founder Michael Widenius's daughter, and "SQL", the

abbreviation for Structured Query Language. A relational database organizes

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.

[4]
CHAPTER 2
SYSTEM ANALYSIS

[5]
SYSTEM ANALYSIS

2.1 System Requirement Specification:

Hardware Requirements
Memory Space:
Minimum - 32 MB

Recommended - 64 MB

PROCESSOR - Intel Pentium IV, 1GHZ or above

RAM - 256MB or above

Software Requirements

OPERATING SYSTEM - WindowsXP Professional or above

DEVELOPING LANGUAGE -

FRONT END - PYTHON (Tkinter)

BACKEND - PYTHON

DATABASE - MY SQL

[6]
CHAPTER 3
SYSTEM DESIGN

[7]
SYSTEM DESIGN

3.1 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) PIL: PIL is the Python Imaging Library adds image processing


capabilities to your Python interpreter. This library provides extensive file
format support, an efficient internal representation, and fairly powerful
image processing capabilities.

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.

a) 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.

[8]
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.

g). 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 security.

h). MySQL: MySQLdb is an interface to the popular MySQL database server


for Python.

The design goals are:

• Compliance with Python database API version 2.0


• Thread-safety
• Thread-friendliness (threads will not block each other)

[9]
3.2 Data Flow Diagram:

[10]
3.3 Database Design:

[11]
3.4 Screenshots:

[12]
[13]
3.5 CODING:

INTRO PAGE:

from tkinter import *

from PIL import ImageTk

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")

title = Label(text="Welcome to Password Manager", font=("Verdana 15


underline", 50,

"bold"),relief="groove", bg="#ea5455", fg="white")

title.place (x=0, y=150, relwidth=1)

des = Label (text="It Gives you a easy access to store,generate, and manage\n

your "

[14]
"passwords for local applications and online services.", font=("helvetica", 25,

"italic"), bg="#ea5455", fg='white')

des.place(x=330, y=350)

sign_up_btn = Button(image=btn_img, borderwidth=0, bd=0, command=lg_in,

bg="#ea5455")

sign_up_btn.place(x=650, y=550)

root.mainloop()

SignUp Page:

from tkinter import *

from tkinter import messagebox

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")

frame1 = Frame(bg="white", bd=0)

frame1.place(x=550, y=30, width=500, height=740)

[15]
lbl_sign_up = Label(text="SIGN UP", font=("times new roman", 30, "bold"),

bg="white", fg="black")

lbl_sign_up.place(x=690, y=70)

username = Label(text="Enter your Email", font=("helvetica", 15,), bg="white")

username.place(x=600, y=200)

user_mail = Entry(text="hell", font=("helvetica", 15), bg="white",


relief="ridge", borderwidth=1)

user_mail.place(x=600, y=260, width=300)

user_mail.focus()

paswd = Label(text="New Password", font=("helvetica", 15,), bg="white")

paswd.place(x=600, y=330)

new_pswd = Entry(font=("helvetica", 15), show="*", relief="ridge",


borderwidth=1)

new_pswd.place(x=600, y=380, width=300)

cfrm_paswd = Label(text="Confirm Password", font=("helvetica", 15,),


bg="white")

cfrm_paswd.place(x=600, y=440, height=35)

cnfrm_pswd = Entry(font=("helvetica", 15), show="*", relief="ridge",


borderwidth=1)

cnfrm_pswd.place(x=600, y=490, width=300)

def regs():

if new_pswd.get() == "" or cnfrm_pswd.get() == "" or user_mail.get() == "":

messagebox.showerror("Error", "All fields are Required")

[16]
elif new_pswd.get() != cnfrm_pswd.get():

messagebox.showerror("Error", "Password and Confirm Password doesn't


match")

else:

try:

db = mysql.connector.connect(

host='localhost',

user='root',

passwd='root',

database="password_manager")

cur = db.cursor()

cur.execute("INSERT INTO UserAccounts (mail_id, password)


VALUES(%s, %s)",

(user_mail.get(), new_pswd.get()))

db.commit()

db.close()

root.destroy()

import log_in

except EXCEPTION as e:

messagebox.showerror("Error", f"Error Due to {e}")

reg_btn = Button(image=img_reg,bg="white", bd=0, command=regs)

reg_btn.place(x=600, y=560)

[17]
root.mainloop()

Login Page:

from tkinter import *

from tkinter import messagebox

import mysql.connector

from PIL import ImageTk

root = Tk()

root.geometry("1590x800+0+0")

root.title("PASSWORD MANAGER")

root.config(bg="#ea5455")

def login():

if email_txt.get() == "" or paswd_txt == "":

messagebox.showerror("Error", "All fields are Required")

else:

try:

db = mysql.connector.connect(

[18]
host='localhost',

user='root',

passwd='root',

database="password_manager")

cur = db.cursor()

cur.execute("SELECT * FROM UserAccounts WHERE mail_id=%s and


password=%s",

(email_txt.get(), paswd_txt.get()))

# cur.execute("ALTER TABLE UserAccounts userID int PRIMARY

KEY AUTO_INCREMENT")

row = cur.fetchone() # fetches that user credentials in a single tuple

if row is None:

messagebox.showerror("Error", "Invalid Username or Password")

else:

root.destroy()

import main

except EXCEPTION as e:

messagebox.showerror("Error", f"Error Due to {e}")

frame1 = Frame(bg="white", bd=0)

[19]
frame1.place(x=550, y=30, width=500, height=740)

btn_login = PhotoImage(file="images/button_log-in.png")

title = Label(text="Log In", bg="white", font=("Californian FB", 35, "bold"))

title.place(x=710, y=80)

label = Label(text="Username", compound=LEFT, font=("helvetica", 18),


bg="white")

label.place(x=600, y=200)

email_txt = Entry(text="hell", font=("helvetica", 15), bg="white",


relief="sunken", bd=1)

email_txt.place(x=600, y=260, width=300)

email_txt.focus()

pass_lbl = Label(text="Password", font=("helvetica", 18), bg="white")

pass_lbl.place(x=600, y=320)

paswd_txt = Entry(font=("helvetica", 15), show="*", relief="sunken", bd=1)

paswd_txt.place(x=600, y=380, width=300)

sign_in = Button(image=btn_login, bd=0, bg="white", command=login)

sign_in.place(x=610, y=500)

root.mainloop()
[20]
Password Manager:

from tkinter import *

from PIL import ImageTk

from random import *

import pyperclip

from tkinter import messagebox

import mysql.connector

from tkinter import ttk

import string

def clear():

website_entry.delete(0, END)

password_entry.delete(0, END)

mail_entry.delete(0, END)

username_entry.delete(0, END)

# # -------------------------------Password Saver ---------------------------

def save():

website = website_entry.get()

username = username_entry.get()

password = password_entry.get()

[21]
mail_id = mail_entry.get()

if website == "" or username == "" or password == "" or mail_id == "":

messagebox.showerror(title="Oops", message="Please don't leave any


fields empty. ")

else:

is_ok = messagebox.askyesno(title="Website", message=f"Do you confirm


to add the details entered")

if is_ok:

try:

db = mysql.connector.connect(

host='localhost',

user='root',

passwd='root',

database="password_manager")

cur = db.cursor()

cur.execute("INSERT INTO UserData (Website, Username,


Password, mail_id) VALUES(%s, %s, %s, %s )",

(website, username, password, mail_id))

db.commit()

db.close()

fetch_data()

[22]
clear()

except EXCEPTION as e:

messagebox.showerror("Error", f"Error Due to {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()

cur.execute("UPDATE UserData SET Username=%s, Password=%s,


mail_id=%s WHERE Website=%s",

(username, password, mail_id, website))

db.commit()

db.close()

[23]
fetch_data()

clear()

except EXCEPTION as e:

messagebox.showerror("Error", f"Error Due to {e}")

def delete():

website = website_entry.get()

db = mysql.connector.connect(

host='localhost',

user='root',

passwd='root',

database="password_manager")

cur = db.cursor()

cur.execute("DELETE FROM UserData WHERE Website= %s",

(website,))

db.commit()

db.close()

fetch_data()

clear()

window = Tk()

[24]
window.geometry("1590x800+0+0")

window.title("PASSWORD MANAGER")

window.config(bg="#ea5455")

frame1 = Frame(width=1482, height=740, bg="white")

frame1.place(x=20, y=30)

frame2 = Frame(frame1, width=600, height=570, bg="white", borderwidth=1,


relief="solid")

frame2.place(x=30, y=150)

frame3 = LabelFrame(frame1, text='Password Generator', font=("helvetica",


18), width=800, height=260,

bg="white", borderwidth=1, relief="solid")

frame3.place(x=650, y=140)

def check():

upper = upper_var.get()

lower = lower_var.get()

number = number_var.get()

symbol = symbol_var.get()

ps = ''”

if upper == 'on':
[25]
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)

generate_entry.insert(0, "Please check any one option")

return ps

def generate(ev):

pswrd = check()

password = ''

for i in range(0, slider.get()):

password = password + choice(pswrd)

generate_entry.delete(0, END)

password_entry.delete(0, END)

generate_entry.insert(0, password)

password_entry.insert(0, password)

pyperclip.copy(password)

[26]
upper_var = StringVar()

lower_var = StringVar()

number_var = StringVar()

symbol_var = StringVar()

label = Label(frame3, text='Customize Your Password', font=("helvetica", 18,


'underline'), bg='white')

label.place(x=100, y=80)

slider = Scale(frame3, label='Password Length', font=("helvetica", 12),


from_=0, to=50, length=250, resolution=1,

orient=HORIZONTAL, troughcolor='white', relief='groove',


activebackground="#ea5455", bg='#ffcccb',

bd=0, command=generate)

slider.place(x=100, y=140)

upper_check = Checkbutton(frame3, text='Uppercase', variable=upper_var,


font=("helvetica", 13), bg='white',

onvalue='on', offvalue='off')

upper_check.place(x=380, y=130)

upper_check.select()

lower_check = Checkbutton(frame3, text='Lowercase', variable=lower_var,


font=("helvetica", 13), bg='white',

onvalue='on', offvalue='off')

lower_check.place(x=380, y=180)

[27]
lower_check.select()

number_check = Checkbutton(frame3, text='Numbers', variable=number_var,


font=("helvetica", 13), bg='white',

onvalue='on', offvalue='off')

number_check.place(x=525, y=130)

number_check.deselect()

symbol_check = Checkbutton(frame3, text='Symbols', variable=symbol_var,


font=("helvetica", 13), bg='white',

onvalue='on', offvalue='off')

symbol_check.place(x=525, y=180)

symbol_check.deselect()

generate_entry = Entry(frame3, width=40, font=("helvetica", 15),


relief="ridge", borderwidth=1)

generate_entry.place(x=150, y=20, height=35)

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 = Label(text="Password Manager", font=("Oswald", 30, "bold"),


bg="white")

[28]
title.place(x=590, y=60)

web_label = Label(frame2, text="Website or App Name", font=("helvetica",


20), bg="white")

web_label.place(x=40, y=50)

username_label = Label(frame2, text="Username", font=("helvetica", 20),


bg="white")

username_label.place(x=40, y=150)

password_label = Label(frame2, text="Password", font=("helvetica", 20,),


bg="white")

password_label.place(x=40, y=250)

mail_label = Label(frame2, text="Email Id", font=("helvetica", 20),


bg="white")

mail_label.place(x=40, y=350)

website_entry = Entry(frame2, width=40, font=("helvetica", 15), relief="ridge",


borderwidth=1)

website_entry.focus()

website_entry.place(x=40, y=100, height=25)

[29]
username_entry = Entry(frame2, width=40, font=("helvetica", 15),
relief="ridge", borderwidth=1)

username_entry.place(x=40, y=200, height=25)

password_entry = Entry(frame2, width=40, font=("helvetica", 15),


relief="ridge", borderwidth=1)

password_entry.place(x=40, y=300, height=25)

mail_entry = Entry(frame2, width=40, font=("helvetica", 15), relief="ridge",


borderwidth=1)

mail_entry.place(x=40, y=400, height=25)

add_btn = Button(frame2, image=add_image, borderwidth=0, bg="white",


command=save)

add_btn.place(x=15, y=480)

update_btn = Button(frame2, image=update_img, bg="white", borderwidth=0,


command=update)

update_btn.place(x=210, y=480)

delete_btn = Button(frame2, image=delete_img, bg="white", borderwidth=0,


command=delete)

delete_btn.place(x=410, y=480)

[30]
# ==================== 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 = Frame(frame1, width=800, height=300, bg="white", borderwidth=1,


relief="solid")

frame4.place(x=650, y=420)

style = ttk.Style()

style.configure("Treeview", rowheight=28)

style.map("Treeview", background=[('selected', '#ea5455')])

password_tree = ttk.Treeview(frame4, columns=("website", "username",


"password", "mail_id"))

password_tree.tag_configure('oddrow', background='white')

password_tree.tag_configure('evenrow', background='#ffcccb')

password_tree.column("website", width=140)
[31]
password_tree.heading("username", text="Username", anchor="w")

password_tree.heading("website", text="Website", anchor="w")

password_tree.heading("password", text="Password", anchor="w")

password_tree.heading("mail_id", text="Email", anchor="w")

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()

cur.execute("SELECT * FROM UserData ")

rows = cur.fetchall()

if len(rows) != 0:

password_tree.delete(*password_tree.get_children())

for row in rows:

if count % 2 == 0:

[32]
password_tree.insert(parent='', index=END, values=row, tags='evenrow')

db.commit()

else:

password_tree.insert(parent='', index=END, values=row, tags='oddrow')

db.commit()

count += 1

db.close()

fetch_data()

window.mainloop()

Database Creation & Connection:

# ---------------Database Creation------------

import mysql.connect

db = mysql.connector.connect(

host='localhost',

user='root',

passwd='root')

cur = db.cursor()

cur.execute(“CREATE DATABASE password_manager”)

#----------Table Creation----------

import mysql.connect

[33]
db = mysql.connector.connect(

host='localhost',

user='root',

passwd='root',

database="password_manager")

cur = db.cursor()

cur.execte(“CREATE TABLE useraccounts (userID int PRIMARY KEY


AUTO_INCREMENT, Username VARCHAR(30), Password VARCHAR(30)”
)

cur.execte(“CREATE TABLE userdata (Website VARCHAR(50), Username


VARCHAR(30), Password VARCHAR(30), Email_id VARCHAR(30)” )

db.commit()

[34]
CHAPTER 4

TESTING

[35]
SYSTEM TESTING

Testing is an important phase encountered in any developed product or


framework is the testing phase. It is because, the developed product should be
free 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.

[36]
VERIFICATION & VALIDATION TESTING

The 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.

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

• 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.

TEST RESULTS:

All the test cases mentioned above passed successfully. No defects encountered.

[37]
CHAPTER 5
IMPLEMENTATION
&
MAINTENANCE

[38]
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 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

[39]
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 cost-


effective support to a software system. Activities are performed during the pre-
delivery 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

[40]
and operating a help-desk.

There are number of reasons, why modifications are required like


● 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:

• Correct faults

• Improve the design

• Implementation enhancement

• Interface with other systems

• Perfecting existing functions

[41]
6. CONCLUSION

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.

The following are the future enhancement of the project

• Enhancement of UI of application

• Converting the Desktop application into Web application.

Advantages:

• The password manager stores all your passwords in a single


account.

[42]
• Password manager can generate random passwords for each
account.

• Simple access to multiple accounts.

• You can share passwords to joint accounts with family or co-


workers.

[43]
7. REFERENCES

1) https://www.python.org/doc/

2) https://docs.python.org/3/library/tk.html

3) https://www.udemy.com/course/100-days-of-code/

4) https://stackoverflow.com

5) Computer Science with Sumita Arora and Preeti Arora

[44]

You might also like