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
Accountmodel - this project is not a replacement for production-grade password managers like Bitwarden or 1Password.
- User authentication - sign up, log in, log out (
accountsapp) - Account manager - add, view, update and delete stored credentials (
accountmanagerapp)- 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 (
mainapp) with a profile view and a basic security-analysis page - Password generator - generate new passwords on demand (
passwordgeneratorapp)
- Backend: Django 5 (Python 3.12/3.13)
- Database: SQLite (default Django dev database)
- Frontend: Django templates + HTML
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
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 runserverThen open http://127.0.0.1:8000/ and sign up a user.
- Passwords are currently stored as plain
CharFieldvalues. Do not deploy this as-is for real secrets - at minimum add field-level encryption (e.g.django-cryptography) and a strongSECRET_KEYvia environment variables before any public deployment. - The bundled
db.sqlite3in the repo is a development artifact and should not be reused. - CSRF protection is enabled on the add-account flow; keep it enabled everywhere.
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.
No license file is currently attached, which means default copyright applies. If you want to use this code, please open an issue first.