PassVault is a localized desktop management system built with Python, Tkinter, and MySQL. It empowers users to generate high-entropy passwords, securely record credentials, evaluate real-time password strength, and visualize vault security demographics through data analytics.
Quick Start • Key Features • System Architecture • Database Schema • Troubleshooting
https://youtu.be/cLO9fPUUmKE?si=ch6i_zKkptrdiHVT
PassVault bridges the gap between strong cybersecurity practices and user convenience. In modern digital environments, users face severe Password Fatigue, leading to weak password choices and dangerous cross-account password reuse.
PassVault resolves this challenge by delivering a localized desktop solution that:
- 🎲 Generates high-entropy random passwords with custom length and character variety parameters.
- 📊 Evaluates password strength real-time using rule-based scoring and dynamic progress indicators.
- 🗄️ Stores credentials in a relational database using MySQL (
passvault_db). - 🙈 Protects privacy with masked UI fields (
********) and on-demand password revealing. - 📈 Visualizes security statistics with interactive Pandas dataframes and Matplotlib side-by-side charts.
| Feature | Description |
|---|---|
| ⚡ Password Generator | Generates 8 to 32-character complex passwords with custom lowercase, uppercase, numeric, and special symbol toggles. |
| 🛡️ Real-time Security Analyzer | Evaluates entropy complexity, categorizes passwords into Weak, Moderate, or Strong tiers, and updates progress bars dynamically. |
| 🗃️ Relational Credential Vault | Stores credentials with fields for Platform/Account, Username/Email, Encoded Password, Category, Strength Tier, and Date. |
| 👁️ Data Privacy & Masking | Conceals password strings in table views with a single-click Reveal option for authorized verification. |
| 📊 Security Analytics Dashboard | Aggregates vault data using Pandas and renders Matplotlib bar charts (Category breakdown) and pie charts (Strength ratios). |
| 🛠️ Built-in Connection Tester | Includes test_connection.py to instantly verify MySQL password and database setup before launching. |
+-------------------------------------------------------+
| PASSVAULT GUI |
| (Tkinter / ttk Themes) |
+---------------------------+---------------------------+
|
+----------------------+----------------------+
| |
+------------v------------+ +------------v------------+
| Security & Logic | | Data Science Stack |
| (Python Standard Lib) | | (Pandas & Matplotlib) |
+------------+------------+ +------------+------------+
| |
+----------------------+----------------------+
|
+-----------v-----------+
| MySQL Database |
| (mysql-connector-py) |
+-----------------------+
| Component | Technology | Purpose |
|---|---|---|
| Language | Python 3.10+ | Core application logic and execution runtime. |
| GUI Framework | Tkinter / ttk (clam theme) |
Native desktop layout, treeview tables, styled dialogs. |
| Database Engine | MySQL Server 8.0+ | Relational storage for credential records. |
| DB Driver | mysql-connector-python |
Parameterized SQL query execution and database connectivity. |
| Data Analytics | Pandas | Data manipulation, filtering, and value_counts() aggregation. |
| Visualization | Matplotlib (pyplot) |
Rendering side-by-side bar charts and pie graphs. |
Ensure you have installed:
- Python 3.10+ (with Add Python to PATH enabled)
- MySQL Server & MySQL Workbench
Open your PowerShell or Command Prompt terminal in the project directory and run:
python -m pip install -r requirements.txt- Open MySQL Workbench and log into your local server instance.
- Open database.sql and execute the complete script (click the Lightning Bolt icon).
- This creates the database
passvault_dband tablecredentials.
Set your local MySQL password in PowerShell and launch app.py:
# Set your local MySQL password
$env:PASSVAULT_DB_HOST = "localhost"
$env:PASSVAULT_DB_USER = "root"
$env:PASSVAULT_DB_PASSWORD = "YOUR_MYSQL_PASSWORD"
$env:PASSVAULT_DB_NAME = "passvault_db"
# Optional: Run the automated connection tester
python test_connection.py
# Launch PassVault Desktop Application
python app.py| Field | Type | Nullable | Key / Default | Description |
|---|---|---|---|---|
id |
INT |
No | PRIMARY KEY (Auto Increment) | Unique identification key. |
account_name |
VARCHAR(100) |
No | None | Platform name (e.g. GitHub, Google). |
username_email |
VARCHAR(120) |
No | None | User's account login handle or email. |
encrypted_password |
VARCHAR(255) |
No | None | Base64-encoded password string. |
category |
VARCHAR(50) |
No | 'Other' |
Category (Email, Work, Social, Banking, Other). |
strength_tier |
VARCHAR(20) |
No | None | Security rating (Weak, Moderate, Strong). |
created_date |
DATE |
No | None | Date timestamp (YYYY-MM-DD). |
PassVault/
├── 📄 app.py # Main application entry point & Tkinter GUI
├── 📄 test_connection.py # Interactive MySQL database connection tester
├── 📄 database.sql # MySQL database schema initialization script
├── 📄 requirements.txt # Python package dependencies
├── 📄 SCHOOL_SETUP.md # Step-by-step school computer setup guide
├── 📄 PROJECT_REPORT.md # Complete 25-section CBSE Computer Science Project Report
├── 📄 SECURITY_REVIEW.md # Security analysis & educational disclaimer document
└── 📄 README.md # Project documentation homepage
Important
Classroom Demonstration Project Notice: PassVault is designed as a Class 12 Computer Science project to demonstrate GUI development, SQL integration, and data visualization. Passwords in this project are stored using Base64 encoding for classroom presentation simplicity.
Base64 is an encoding format, not cryptographic encryption. A production-grade password manager requires AES-256 authenticated encryption, master password key derivation (PBKDF2), and secure key storage.
- 📑 PROJECT_REPORT.md — Complete 25-section CBSE Senior School Computer Science Project Report.
- 🏫 SCHOOL_SETUP.md — Step-by-step installation guide for school computer labs.
- 🔒 SECURITY_REVIEW.md — In-depth architectural security review and analysis.
