Kikoba Platform
# Simba Bingwa Kikoba Endelevu (SBK)
**Simba Bingwa Kikoba Endelevu (SBK)** is a comprehensive React Native/Expo mobile application with a Next.js web admin dashboard designed for managing community savings groups (Vikoba). It handles member management, transaction tracking (contributions, loans, repayments), and provides detailed reporting and audit logs.
---
## 📑 Table of Contents
1. Features
2. Project Quick Start
3. Member ID System
4. Bulk Transaction Upload
5. Standard Loan Interest (10%)
6. Email Reminder System
7. Firestore Security Rules
8. Security & Type Safety
9. Deployment Instructions
10. Project Structure
11. Testing & Troubleshooting
---
## 🚀 Features
- ✅ **Member Management**: Authentication and role-based access (Admins & Members).
- ✅ **Member ID System**: Automatic generation of IDs (SBK001, SBK002) for all members.
- ✅ **Bulk Upload**: Batch process contributions from Excel files.
- ✅ **Transaction Tracking**: Record contributions (Hisa, Jamii), loans (Standard, Dharura), and repayments.
- ✅ **Interest Logic**: Automatic 10% interest application for Standard loans.
- ✅ **Email Reminder System**: Automated and manual reminders for contributions and loan repayments.
- ✅ **Reporting**: Monthly statistics and reports for both individuals and the entire group.
- ✅ **Audit Trail**: Detailed activity logging for all administrative actions.
- ✅ **Security**: Secure credential management and input validation.
- ✅ **Cross-Platform**: Mobile app (iOS/Android) and Web Admin Portal.
---
## 🛠️ Project Quick Start
### 1. Prerequisites
- Node.js & npm
- Expo CLI
- Firebase Project
### 2. Environment Setup
Create a `.env.local` file in both the root directory (for mobile) and the `/web` directory.
**Mobile App (.env.local):**
```env
EXPO_PUBLIC_FIREBASE_API_KEY=your_api_key
EXPO_PUBLIC_FIREBASE_AUTH_DOMAIN=your_auth_domain
EXPO_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
EXPO_PUBLIC_FIREBASE_STORAGE_BUCKET=your_bucket
EXPO_PUBLIC_FIREBASE_MESSAGING_SE …