Skip to content

kingoftech-v01/my_password_manager

my_password_manager

A self-hosted Django web application for storing, organizing, and generating passwords. Each user signs in to their own account and can keep track of their online credentials in one place, with a simple dashboard, per-site records, and a built-in password generator.

Educational / personal-use project. Passwords are stored in a local SQLite database as part of the Account model - this project is not a replacement for production-grade password managers like Bitwarden or 1Password.

Features

  • User authentication - sign up, log in, log out (accounts app)
  • Account manager - add, view, update and delete stored credentials (accountmanager app)
    • Site name, site URL, email, username, password, phone, and free-form notes
    • Creation timestamp per entry
    • One-to-one link between a saved account and the logged-in user
  • Dashboard - overview page after login (main app) with a profile view and a basic security-analysis page
  • Password generator - generate new passwords on demand (passwordgenerator app)

Tech stack

  • Backend: Django 5 (Python 3.12/3.13)
  • Database: SQLite (default Django dev database)
  • Frontend: Django templates + HTML

Project layout

my_password_manager/        # Django project (settings, urls, wsgi)
accounts/                   # Login / signup / logout
accountmanager/             # CRUD for saved account credentials
main/                       # Dashboard, profile, security analysis
passwordgenerator/          # Password generator
manage.py

Getting started

git clone https://github.com/kingoftech-v01/my_password_manager.git
cd my_password_manager

python -m venv .venv
source .venv/bin/activate

pip install "django>=5.0"

python manage.py migrate
python manage.py createsuperuser
python manage.py runserver

Then open http://127.0.0.1:8000/ and sign up a user.

Security notes

  • Passwords are currently stored as plain CharField values. Do not deploy this as-is for real secrets - at minimum add field-level encryption (e.g. django-cryptography) and a strong SECRET_KEY via environment variables before any public deployment.
  • The bundled db.sqlite3 in the repo is a development artifact and should not be reused.
  • CSRF protection is enabled on the add-account flow; keep it enabled everywhere.

Contributing

Issues and pull requests are welcome - especially around hardening password storage, adding tests, and improving the security-analysis view. Please open an issue describing the change before submitting a large PR.

License

No license file is currently attached, which means default copyright applies. If you want to use this code, please open an issue first.

About

Self-hosted Django password manager with user auth, per-site credential storage, dashboard and password generator (educational project)

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors