Skip to content

A secure, full-stack Password Manager Web App built with Flask, MySQL, and HTML/CSS/JS. It features user authentication, password generation, encrypted storage, edit/delete actions with admin confirmation, and a responsive dashboard for managing credentials easily and safely.

License

Notifications You must be signed in to change notification settings

shivamprasad1001/password_manager_system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ” Password Manager System

Secure, Local, and Simple Password Storage

A local password manager built with Python Flask that securely hashes your credentials, backs them up, and gives you full control via a modern web dashboard.

App Logo


πŸ“œ Overview

The Password Manager System is a secure, locally-hosted web app that lets users register, log in, and manage their credentials in one place. Passwords are hashed, not stored in plain text, and users can add, edit, delete, and copy them from a beautiful dashboard. All actions are logged, and a JSON backup is automatically created for added reliability.


🌟 Features

  • πŸ” User Registration & Login
  • 🧠 Unique User ID System
  • 🧾 Hashed Password Storage (SHA256)
  • πŸ’Ύ Automatic Backup File (JSON)
  • πŸ›‘οΈ Secure Deletion with Re-Authentication
  • πŸ“Š Password Count, Audit Log, and Dashboard
  • βœ‚οΈ Copy, Edit, and Delete Stored Passwords

πŸ“‚ Project Flow

graph TD
    A[Visit App] --> B{Is User Registered?}
    B -- Yes --> C[Login]
    B -- No --> D[Register]
    D --> E[Generate Unique User ID]
    C --> F[Fetch User ID from MySQL]
    F --> G[Display Dashboard]

    G --> H[View Passwords]
    G --> I[Add New Password]
    G --> J[Edit/Copy/Delete]

    I --> K[Hash + Store in DB]
    K --> L[Update Xlsx Backup & Logs]

    J --> M{User Verified?}
    M -- Yes --> N[Delete/Edit Action]
    N --> L
Loading

🧰 Tech Stack

Layer Tech/Tool
Backend Python Python, Flask Flask
Frontend HTML5 HTML, CSS3 CSS, JavaScript JS, Bootstrap Bootstrap
Database MySQL MySQL
Logging & Backup Local logs/, backup/passwords.json

πŸ“Έ Dashboard Preview

Dashboard Screenshot


πŸ“ File Structure

password-manager-system/
β”‚
β”œβ”€β”€ static/                 # CSS, JS files
β”œβ”€β”€ templates/              # Flask HTML templates
β”œβ”€β”€ password_backup.xlsx    # Auto-generated xlsx backups
β”œβ”€β”€ password_manager.log    # Logs of user activity
β”œβ”€β”€ app.py                  # Main Flask app
β”œβ”€β”€ requirements.txt        # Python dependencies
└── README.md

πŸ§ͺ How to Run Locally

βœ… Prerequisites

  • Python 3.8+
  • MySQL Server
  • pip (pip install -r requirements.txt)

βš™οΈ Setup

# Clone the repo
git clone https://github.com/yourusername/password-manager-system.git
cd password-manager-system

# Create virtual environment (optional)
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

πŸ”§ Configure Database

  1. Open MySQL

  2. Create database:

    CREATE DATABASE password_manager;
  3. πŸ” users Table

CREATE TABLE users (
  id CHAR(36) NOT NULL PRIMARY KEY,
  username VARCHAR(255) NOT NULL UNIQUE,
  password_hash VARCHAR(255) NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Field Type Key Description
id char(36) Primary Key UUID for each user
username varchar(255) Unique Unique username
password_hash varchar(255) SHA256 hashed password
created_at timestamp Account creation time

  1. πŸ”‘ passwords Table

CREATE TABLE passwords (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  salt VARCHAR(255) NOT NULL,
  username VARCHAR(255) NOT NULL,
  password_hash TEXT NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  user_id CHAR(36),
  FOREIGN KEY (user_id) REFERENCES users(id)
);
Field Type Key Description
id int Primary Key Auto-incremented ID for each password entry
salt varchar(255) Salt used in AES encryption
username varchar(255) Username of the app/site account
password_hash text Encrypted (hashed + AES) password
created_at timestamp Entry creation time
user_id char(36) Foreign Key Links to the users table via users.id

πŸ”„ Relationships

users.id (char[36])  ←──  passwords.user_id (char[36])
[1 User] β†’ [Many Passwords]

πŸš€ Run the App

python app.py

Visit: http://localhost:5000


πŸ” Security Notes

  • All passwords are SHA256 hashed
  • User authentication required for all operations
  • Deletion is double-verified
  • Regular logs and JSON backups maintained locally

πŸš€ Future Roadmap

  • πŸ”‘ Export encrypted vault
  • πŸ“² Mobile-friendly UI
  • πŸ”’ Add 2FA/MFA login option
  • πŸ“Š Insights: weak vs strong password detection

πŸ‘¨β€πŸ’» Author

Made with πŸ–€ by Shivam Prasad πŸ”— Connect: LinkedIn


πŸ“ License

This project is licensed under the MIT License.


⭐ Star the repo if you like it. Pull requests and feedback welcome!

About

A secure, full-stack Password Manager Web App built with Flask, MySQL, and HTML/CSS/JS. It features user authentication, password generation, encrypted storage, edit/delete actions with admin confirmation, and a responsive dashboard for managing credentials easily and safely.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •