| --- |
| title: GHSS Backend |
| emoji: 🏫 |
| colorFrom: purple |
| colorTo: indigo |
| sdk: docker |
| pinned: false |
| app_port: 7860 |
| --- |
| |
| # Gifted Hands Senior School — Backend API |
|
|
| FastAPI backend for the GHSS school management system. |
| Runs on Hugging Face Spaces (port 7860). |
|
|
| ## Environment Variables (HF Secrets) |
| | Variable | Description | |
| |---|---| |
| | `SUPABASE_URL` | Your Supabase project URL | |
| | `SUPABASE_SERVICE_KEY` | Supabase service role key | |
| | `GOOGLE_SERVICE_ACCOUNT_JSON` | Google Drive service account JSON | |
| | `SMS_API_KEY` | Africa's Talking API key | |
| | `SMS_USERNAME` | Africa's Talking username | |
| | `SMS_SENDER_ID` | Registered sender ID (leave blank for sandbox) | |
| | `JWT_SECRET` | Random secret string for JWT signing | |
| | `B2_KEY_ID` | Backblaze B2 application key ID | |
| | `B2_APPLICATION_KEY` | Backblaze B2 application key | |
| | `B2_BUCKET_NAME` | B2 bucket name (default: ghss-files) | |
| | `B2_BUCKET_ID` | B2 bucket ID | |
| | `AIRTEL_CLIENT_ID` | Airtel Money client ID | |
| | `AIRTEL_CLIENT_SECRET` | Airtel Money client secret | |
| | `AIRTEL_ENV` | sandbox or production | |
| | `MTN_CLIENT_ID` | MTN MoMo client ID | |
| | `MTN_CLIENT_SECRET` | MTN MoMo client secret | |
| | `MTN_SUBSCRIPTION_KEY` | MTN MoMo subscription key | |
| | `MTN_ENV` | sandbox or production | |
|
|
| ## Default Admin Login |
| - Login ID: `admin` |
| - Password: `admin123` |
| - **Change immediately after first login** |
|
|
| ## Login ID Formats |
| - **Teachers**: GHSS001, GHSS002 … |
| - **Students**: GHSS0012026 (auto-generated on enrolment) |
| - **Parents**: registered by email |
|
|