Project Overview
Nova is a small, user-friendly password manager written in Python using tkinter, customtkinter, and Pillow. It allows you to save account records (account name and password), view saved accounts, copy passwords to clipboard, and delete saved accounts.
- Save new account records (account name + password)
- View saved accounts with the ability to copy passwords ✂️
- Delete saved accounts 🔥
- Temporarily show/hide passwords
- Simple GUI with optional background image support
- Python 3.8+
- Required Python packages:
pip install customtkinter pillowYou can also add a requirements.txt with the following content:
customtkinter
pillow
From the project folder (where Password Manager application.py is located) run:
python "Password Manager application.py"On Windows you can also launch the file by double-clicking if .py files are associated with Python.
Password Manager application.py— main application UIBasic/— modular components (settings, storage, accounts window, effects)Basic/config.py— theme constants (colors, fonts)Basic/storage.py— load/save/delete functions (accounts.jsonstores the data)Basic/accounts_window.py— window for viewing and managing saved accounts
accounts.json— JSON file that stores saved accountsimg/— images (optional background)
Passwords are currently saved in plain text inside accounts.json. This is not secure for real-world use. Strongly recommended improvements:
- Encrypt passwords before saving (for example using the
cryptographylibrary or a master password-based scheme). - Or use a secure, dedicated password storage solution.
I can help implement a simple encryption layer or add a master-password protection flow if you want.
- Add encryption for stored data
- Add a master password for unlocking the app
- Add encrypted export/import functionality
- Add automated tests and package the app into an executable for distribution (e.g., using
pyinstaller)
This project is provided as an educational example. Add an appropriate license (e.g., MIT) if you plan to share it publicly.
If you want, I can also add an English README.md (this file), create a requirements.txt, or implement an example encryption flow—tell me which and I'll prepare it ✅