Lightning Pass is using Python, PyQt and MySQL
- 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 [email protected]:kucera-lukas/lightning-pass.git
- Install dependencies
poetry install
Create a .env
file and copy the contents of .env.example
file into the .env
file
cp .env.example .env
mysql -u user -e "CREATE DATABASE lightning_pass";
python ligtning_pass
pytest
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
Both light and dark mode stylesheets are located in the static folder
- Random password generation based on mouse movement
- Account manager
- Password manager
- Secure password storage in database
- 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,...
- 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!
Tested on Linux and Windows 10
pre-commit install
Developed under the MIT license