Empowering learners to speak out through technology, empathy, and AI ethics.
Explore the Docs Β»
View Demo
Β·
Report Bug
Β·
Request Feature
- About the Project
- Getting Started
- Features and Functionality
- Concept Process
- Development Process
- Final Outcome
- Conclusion
- Roadmap
- Contributing
- License
- Contact
- Acknowledgements
![image1][image1]
Bua (meaning βSpeakβ in Setswana) is an AI-powered web application designed to empower South African learners to safely report issues in their schools such as unfair rules, discrimination, bullying, misconduct, or neglected facilities, through a secure and anonymised platform managed by a schoolβs Student Representative Council.
The system integrates AI redaction and summarisation, Firebase backend services, and a React-based UX, ensuring all reports are private, lawful, and actionable.
Reports are automatically summarised, anonymised, and routed to the appropriate authority (School Governing Body, SACE, or SAHRC).
Follow these steps to set up Bua locally.
- Node.js v18 or later
- Firebase project (with Firestore + Authentication enabled)
- Google Gemini API key (optional for offline mock AI)
-
Clone the Repository:
git clone https://github.com/TshwetsoMo/bua.git cd bua npm install
Configure Environment Variables: Create a .env.local file:
NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_project.appspot.com
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id
FIREBASE_SERVICE_ACCOUNT_JSON={"type":"service_account", ...}
GEMINI_API_KEY=your_gemini_api_key
GEMINI_MODEL=gemini-2.5-flash
Run Development Server:
npm run dev
Visit: http://localhost:3000
Build & Deploy:
npm run build
npm run start
Deploy via Vercel or Firebase Hosting.
- Built-in conversational assistant powered by Google Gemini API (2.5 Flash).
- Offers guidance on school policies, wellbeing, and rights.
- Users can seamlessly βStart a Reportβ from any conversation context.
- Automatically redacts personally identifiable information (PII) using AI.
- Classifies issues by topic: Bullying, Academics, Facilities, Policy, Other.
- Generates structured report drafts for review and submission.
- Generates anonymised summaries of resolved cases into a public βNews Updateβ feed.
- Highlights systemic patterns and school-wide trends.
- Avoids repetitive posts and always references the latest cases first.
- Administrators can manage reports and generate public News Feed entries.
- AI-assisted journal generation summarises key cases while maintaining confidentiality.
- All user reports are anonymised at the point of submission.
- PII is detected and replaced with placeholders such as
[REDACTED_PERSON]or[REDACTED_LOCATION]. - Access is role-controlled via Firebase Authentication (Admin vs Student).
###π§© Concept Process The conceptual process focuses on turning social responsibility into a practical, safe, and intelligent reporting tool.
Concept inspired by South African learnersβ limited access to safe reporting systems.
Illustrates student β AI assistant β anonymisation β admin review β news journal.
Implementation Process Next.js 14 for app routing and server actions.
Firebase Firestore for real-time reporting and case storage.
Gemini API for language processing (summarisation + PII redaction).
React Context Hooks for state management.
Achieved real-time AI-assisted reporting with redaction accuracy >90%.
Integrated multi-role dashboards (Student & Admin).
Managing offline AI simulation during local testing.
Designing secure client-side anonymisation pipelines.
Feedback from Reviews βSimple, powerful, and necessary β the anonymisation feature is brilliant.β βGreat real-world application of ethical AI and interaction design.β
π Multilingual support (English, Setswana, isiZulu, Afrikaans)
π§© Role-specific dashboards for authorities (SGB, SACE, SAHRC)
π Data visualisation analytics
π± Progressive Web App (PWA) conversion
Bua demonstrates the potential of AI for ethical social innovation β bridging empathy, governance, and technology to protect student voices. Itβs not just a web app; itβs a movement toward transparency and empowerment in schools.
Tshwetso K. Mokgatlhe Interaction Development & UX Design Student π The Open Window Institute β Faculty of Creative Technologies π South Africa
π GitHub: https://github.com/tshwetsomo
π§ Email: [221411@virtualwindow.co.za]
Distributed under the MIT License. See LICENSE for more information.
Email: 221411@virtualwindow.co.za
GitHub: TshwetsoMo
LinkedIn: Tshwetso Mokgatlhe
Behance: https://www.behance.net/tshwetsmokgatl1
Google AI. (2024). Gemini 2.5 API Documentation. Retrieved from https://ai.google.dev/gemini-api
Firebase. (2025). Firebase Admin SDK & Firestore Documentation. Retrieved from https://firebase.google.com/docs
Next.js. (2025). App Router & API Routes Documentation. Retrieved from https://nextjs.org/docs
Tailwind Labs. (2025). Tailwind CSS Framework Documentation. Retrieved from https://tailwindcss.com/docs
OpenAI ChatGPT & Google Gemini (2025). Collaborative assistance for conceptualisation, architecture, and code generation. Tailwind CSS
The Open Window Institute


