100% found this document useful (1 vote)
380 views27 pages

Password Manager Project Report

This project report is based on the password manager project which is based on the python programing language .

Uploaded by

kamal joshi
Copyright
© © All Rights Reserved
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
100% found this document useful (1 vote)
380 views27 pages

Password Manager Project Report

This project report is based on the password manager project which is based on the python programing language .

Uploaded by

kamal joshi
Copyright
© © All Rights Reserved
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 Sharma DECLARATION 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 Student CERTIFICATE 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 Ghaziabad 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 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. Modules 4. 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 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: (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 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 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 security CHAPTER-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 _ in range(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) #Entries width=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 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. 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. 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 null lists/ 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 TESTING Unit 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 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 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 design U 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.

You might also like