Logo Lanfrica

Rancho-1001/sukuu

Domain:

education

Record type:

software
Creator:
Ran
Host:
School fee management for schools in Ghana — track tuition, feeding and uniform fees, take online payments in installments, and see who owes what. FastAPI + React + Postgres + Stripe. # Sukuu — School Fee Management System > A school management platform that lets administrators track student fees (tuition, feeding, uniforms), lets parents pay online and in installments, and gives staff a clean view of who owes what. **Sukuu** means "school" in Twi. This was built after teaching in Ghana, where fee and feeding-payment tracking was largely manual and error-prone — spreadsheets, paper receipt books, and a bursar reconciling by hand. > **Status:** In development. See docs/spec.md for the full specification and Roadmap for what is deliberately out of scope. --- ## What this project is about Three things, deliberately: 1. **Full-stack with real payments** — React frontend, FastAPI backend, Postgres, Stripe integration with webhook-driven reconciliation. 2. **Access control that is actually enforced** — three roles with real permission boundaries in backend middleware, JWT auth, and an audit log. Not UI-only guards. 3. **Financial correctness** — partial payments, installments, overpayment rejection under concurrency, and money stored as exact decimals rather than floats. ## Core loop ``` Admin sets up school (students, classes, fee types) → assigns fees to students → parents/staff see what's owed → payments recorded (online via Stripe, or cash by staff) → dashboard shows paid vs. outstanding ``` ## Roles & permissions | Capability | Admin | Staff/Bursar | Parent | |---|:---:|:---:|:---:| | Manage students & classes | ✅ | ❌ | ❌ | | Define/edit fee structures | ✅ | ❌ | ❌ | | Assign fees to students/classes | ✅ | ❌ | ❌ | | Record offline (cash) payments | ✅ | ✅ | ❌ | | View all payments & reports | ✅ | ✅ | ❌ | | View own child's fees only | — | — | ✅ | | Pay fees online (Stripe) | — | — | ✅ | | View own payment history | — | — | ✅ | Every boundary above is enforced server-side. The UI hides what a role cannot do; the API refuses it. ## Tech stack | Layer | Choice | |---|---| | Backend | FastAPI (Python 3.14) | | Database | PostgreSQL | | O …

Licenses