# Contributing to Mpesa-Based Wi-Fi Hotspot Billing System
Setup |
Running Tests |
Writing Tests |
Debugging |
Internals |
Code of Conduct
---
## Setup
1. Fork & clone the repository:
# bash
git clone https://github.com//Mpesa-Based_Wi-Fi-Hotspot_Billing_System
cd Mpesa-Based_Wi-Fi-Hotspot_Billing_System
Create & activate virtual environment:
# macOS/Linux
python -m venv venv
source venv/bin/activate
# Windows
python -m venv venv
venv\Scripts\activate
Install dependencies:
pip install -r requirements.txt
Configure environment variables in .env:
FLASK_APP=app.py
FLASK_ENV=development
DATABASE_URL=sqlite:///database.db
MPESA_CONSUMER_KEY=
MPESA_CONSUMER_SECRET=
Initialize database & run:
python manage.py init-db
flask run
Running Tests
# Run all tests
pytest tests/
# Run a specific test file
pytest tests/test_payments.py
# Run a specific test function
pytest tests/test_payments.py::test_payment_success
# Run with coverage
pytest --cov=app tests/
Writing Tests
Place tests in tests/ folder with test_.py naming.
Example:
def test_hotspot_login(client):
response = client.post("/login", data={"username": "user", "password": "pass"})
assert response.status_code == 200
assert b"Welcome" in response.data
# Debugging Code
Use Python debugger:
import pdb; pdb.set_trace()
Or use breakpoints in VS Code / PyCharm.
# Internals
app.py – Flask entry point
payments.py – M-Pesa integration
hotspot.py – Hotspot login & billing
models.py – Database models
templates/ – HTML templates
static/ – CSS/JS assets
tests/ – Unit & integration tests
# Creating a New Feature / Plugin
Fork repository & create a branch.
Implement your changes.
Add tests in tests/.
Ensure all tests pass.
Submit a pull request describing your feature.
# Code of Conduct
Be respectful, welcoming, and constructive.
No harassment, personal attacks, or sharing private info.
Maintain professionalism in all interactions.
Enforcement Contact: mwakidenice@gmail.com
Full Code of Conduct: CODE_OF_CONDUCT.md