- Python 3.9 or higher (3.12 recommended)
- Git installed
python -m venv .venvActivate the virtual environment:
- On Windows (PowerShell):
.venv\Scripts\Activate.ps1- On macOS/Linux:
source .venv/bin/activateDevelopment mode (recommended):
pip install -e .[dev]Runtime only (minimal install):
pip install -e .- Run the shim launcher at project root:
python main.pyWe use pre-commit hooks to enforce style and quality checks (black, flake8, etc.).
pip install pre-commitpre-commit installNow, checks will run automatically before each commit. To run them manually on all files:
pre-commit run --all-filesOur configuration lints all .py files in src/, tests/, and the project root (e.g. main.py).
-Use pip==25.2.3 to ensure compatibility with pip-tools 7.5.1
Example:
src/ │ ├── main.py # Entry point │ ├── controllers/ │ ├── init.py │ ├── auth_controller.py # Login, logout, password recovery │ ├── notification_controller.py # Notification CRUD operations │ └── navigation_controller.py # Screen navigation │ ├── models/ │ ├── init.py │ ├── database.py # Database connection & setup │ ├── student.py # Student model │ ├── admin.py # Administrator model │ └── notification.py # Notification model │ ├── views/ │ ├── init.py │ ├── login.py # Login UI │ ├── forgot_password.py # Password recovery UI │ └── notification_detail.py # Detail page UI │ └── utils/ ├── init.py └── config.py # Configuration settings