Logo Lanfrica

mekonnenassefa/namuna

Domain:

socioeconomic

Record type:

software
Creator:
mek
Host:
Namuna is a two-sided digital marketplace for Ethiopia that connects businesses needing market research with everyday Ethiopians who complete surveys for cash rewards paid via Telebirr. # Namuna — "Your Voice, Rewarded." Namuna is a two-sided digital marketplace for Ethiopia that connects businesses needing market research with everyday Ethiopians who complete surveys for cash rewards paid via Telebirr. This repository holds all three parts of the product plus the backend that powers them. ``` namunaz/ ├── mobile/ Flutter app for survey respondents (Android + iOS) ├── backend/ Supabase (PostgreSQL) schema, migrations, seed data, edge functions ├── client-portal/ React + Vite + TS web app for businesses/NGOs (SaaS) ├── namuna_build.md The ordered step-by-step build plan └── README.md You are here ``` ## Architecture at a glance - **Mobile app** — Flutter (Dart), clean architecture (presentation / domain / data), Riverpod for state management, dark-mode-first design system. - **Backend** — Supabase: PostgreSQL, real-time subscriptions, phone-based OTP auth, Edge Functions, Row-Level Security. SQL migrations live in `backend/migrations`. - **Client portal** — React + Vite + TypeScript + Tailwind CSS. - **Payments** — Telebirr Mini-Program SDK (sandbox/mock first). - **Analytics / fraud / trust-score** — Python + Pandas on the server side. - **Hosting** — Supabase Cloud / AWS. ## Shared design tokens All three surfaces share the same brand color tokens so the mobile app and web portal stay visually consistent. The canonical values live in: - Flutter: `mobile/lib/core/theme/app_colors.dart` - Web: `client-portal/src/theme/tokens.ts` (and mirrored into `tailwind.config.js`) The system is **dark-mode-first** with **one confident accent per context**: | Context | Token | Hex | | ------------ | ---------- | --------- | | Wallet/cash | `wallet` | `#22E4A6` | | Streak | `streak` | `#FF6A2C` | | Rank/Aleka | `rank` | `#8B5CFF` | | Surveys | `survey` | `#2F8BFF` | --- ## Running each piece locally ### Prerequisites - Flutter SDK (stable channel) + Android Studio / Xcode - Node.js 1 …