A lightweight, user-friendly desktop application built with Python and Tkinter for generating, managing, and securely storing website credentials locally.
Developed as a first-year 2nd-semester academic project by Shazid Mashrafi and Shahriar Hasnat Shafin Ahmed.
- Overview
- Key Features
- Tech Stack
- Project Structure
- Getting Started
- Usage Guide
- Data Storage Format
- Authors
The Password Manager provides a clean graphical interface (GUI) to help users generate strong, customizable passwords and save login details for various online platforms. Credentials are saved locally on the machine in a simple structured text file (Passwords.txt), eliminating reliance on cloud servers or external database dependencies.
- 🎲 Customizable Password Generator:
- Configurable password lengths (from 8 to 32 characters).
- Dynamic inclusion options for Uppercase letters, Digits, and Symbols.
- Proportional character distribution and random shuffling for high entropy.
- 💾 Local Credentials Storage:
- Record Website Name, Email/Username, and Password.
- Automatically appends records to a clean local storage file (
Passwords.txt).
- 🔄 Account Detection & Updates:
- Detects existing website/username entries to prevent unintended duplicates.
- Prompts options to update existing credentials or save as a new entry.
- ✅ Input Validation & Safety:
- Validates character inputs and username/email structure.
- Ensures password lengths adhere to security guidelines (8-32 characters).
- Clean error dialogs and confirmation popups (
tkinter.messagebox).
- 🎨 Custom GUI Design:
- Auto-centers window on desktop screen startup.
- Custom branded window icon and header banner artwork.
- Language: Python 3.x
- GUI Framework:
tkinter(Built-in Python Standard Library) - Modules Used:
random,tkinter.messagebox - Assets: Custom PNG icons and banners (
Assets/)
password-manager/
├── Assets/
│ ├── banner.png # GUI Top Header Banner
│ └── logo.png # Application Window Icon
├── Passwords.txt # Local storage for saved credentials
├── main.py # Main Application Entry Point & GUI logic
└── Readme.md # Project Documentation
- Python 3.x installed on your system.
- Linux users: If
tkinteris not pre-installed with Python, install it via package manager:sudo apt-get install python3-tk
- Linux users: If
-
Clone the Repository:
git clone https://github.com/ShazidMashrafi/Password-Manager.git cd Password-Manager -
Run the Application:
python main.py
(or
python3 main.pydepending on your system configuration)
- Enter the desired Password Length (between 8 and 32).
- Select character inclusion checkboxes: Uppercase, Digit, and/or Symbol.
- Click Generate Password to instantly populate a randomized password.
- Fill in Website Name, Email/Username, and Password.
- Click Save.
- Review and confirm details in the popup dialog box.
- If an entry matching the Website and Email/Username already exists, a dialog will ask whether to update the password or create a duplicate entry.
Credentials are stored in Passwords.txt using structured pipe-delimited format:
Website : github.com | Email/Username : user@example.com | Password : K9#pQ2!vL8
Website : google.com | Email/Username : admin@gmail.com | Password : X7$mR1@wN4
- Shazid Mashrafi - GitHub Profile
- Shahriar Hasnat Shafin Ahmed - GitHub Profile
Created as part of First Year, Second Semester coursework.