Lightning Pass
Lightning Pass is using Python, PyQt and MySQL
Installation
Install instructions
- Install Python https://www.python.org/
- Install Poetry https://python-poetry.org/docs/
- Install MySQL https://dev.mysql.com/doc/mysql-installation-excerpt/5.7/en/
- Clone this repository
git clone git@github.com:kucera-lukas/lightning-pass.git
- Install dependencies
poetry install
.env
file
Create the Create a .env
file and copy the contents of .env.example
file into the .env
file
cp .env.example .env
Initialize database
mysql -u user -e "CREATE DATABASE lightning_pass";
Development
GUI window
python ligtning_pass
Tests
pytest
Qt Creator
qtcreator lightning_pass/gui/static/qt_designer/*.ui
# generate python code from `main.ui`
pyuic5 lightning_pass/gui/static/qt_designer/main.ui -o lightning_pass/gui/static/qt_designer/output/main.py
Qt Style Sheets
Both light and dark mode stylesheets are located in the static folder
Features
- Random password generation based on mouse movement
- Account manager
- Password manager
- Secure password storage in database
What I've learned
- Python - Advanced decorator, descriptor and context manager usage. Gained more familiarity with standard library modules like functools or contextlib
- PyQT - QSS files and stylesheets, QtDesigner, QtSlots - mouse tracking, QStackedWidget, QInputDialog and many more...
- Cryptography - hashing and symmetric encryption by deriving a key from "master password"
- SQL/MySQL - table relationships, unique keys, proper way to handle SQL injection
- VCS and GitLab - pre-commit hooks, continuous integration, git rollbacks,...
Preview
- This is how loading looks like!
- This is how password generation looks like!
- This is how login looks like!
- This is how the vault looks like!
OS Support
Tested on Linux and Windows 10
Contributing
pre-commit install
License
Developed under the MIT license