Native Android app for Zimbabwe Territorial Band (ZTB) β manages member finances, payment tracking, and band information with role-based access for Members, Treasurers, and Admins. Built with Kotlin, Jetpack Compose, and Firebase.
# ZTB (Zimbabwe Territorial Band) Android App
A native Android application built with Kotlin, Jetpack Compose, Material 3, and Firebase for the Zimbabwe Territorial Band (ZTB). The application seamlessly combines band management, member roster tracking, public/band information, and role-based financial event management.
---
## Features & Architecture
### Role-Based Access Control
- **Member**: Views home overview, roster with member performance status pills (π΄ π π’), band information (History, Leadership, Projects, Events Calendar, Public Funds chart), and profile. (No financial numbers exposed).
- **Treasurer**: All Member capabilities plus full access to the **Finance** tab (creating payment events, toggling member payment statuses, viewing financial dashboard & charts).
- **Admin**: All Treasurer capabilities plus full access to the **Admin Panel** (managing members, promoting roles, deactivating accounts, and editing all band content).
### Key Modules
1. **Auth & Security**: Firebase Auth with Email/Password & Google Sign-In support. Quick demo login accounts for testing.
2. **Performance Status Engine**:
- π’ **GREEN**: All current period payments marked Received.
- π **ORANGE**: Current period payment exists but not yet marked Received.
- π΄ **RED**: One or more previous period payments still outstanding/overdue.
3. **Finance Hub**: Event creation, automated payment generation for members, real-time status toggling, and interactive Compose Canvas pie/donut charts.
4. **Band Info**: 5-tab hub with rich historical context, leadership board, annual projects, gig calendar, and transparent public fundraising charts.
5. **Admin Panel**: Role promotion, new member provisioning, content editor.
---
## Project Structure
```
app/src/main/java/com/example/
βββ ZTBApplication.kt
βββ MainActivity.kt
βββ data/
β βββ model/
β β βββ User.kt
β β βββ PaymentEvent.kt
β β βββ Payment.kt
β β βββ BandInfo.kt
β βββ repository/
β β βββ AuthRepository.kt
β β¦