Files

155 lines
4.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Falah Mobile — Islamic Lifestyle Platform
**Falah Mobile** is the mobile frontend for the Falah OS ecosystem — a Shariah-compliant digital economy platform. Built with Next.js 16 and Prisma (SQLite), it serves as a Progressive Web App (PWA) at [falahos.my/mobile](https://falahos.my/mobile).
---
## Features
### 🌐 Souq — Halal Service Marketplace
| Feature | Route | Status |
|---------|-------|--------|
| Browse services w/ categories + search | `/souq` | ✅ |
| Advanced filters (price range, sort, delivery days) | `/souq` | ✅ |
| Create listing (packages, tags, images) | `/souq/create` | ✅ |
| Listing detail w/ packages (3 tiers) | `/souq/[id]` | ✅ |
| Seller profile w/ stats & listings | `/souq/seller/[id]` | ✅ |
| Order placement | `/souq/[id]` | ✅ |
| Orders list (buyer/seller tabs) | `/souq/orders` | ✅ |
| Order detail w/ chat, progress stepper | `/souq/orders/[id]` | ✅ |
| Review submission (star rating 1-5) | `/souq/orders/[id]` | ✅ |
| Delivery file upload | `/souq/orders/[id]` | ✅ |
| Seller workflow (start, deliver, confirm) | `/souq/orders/[id]` | ✅ |
### 💰 Wallet & FLH Token
- **FLH Balance** with live display
- **Top-up** via Polar.sh (5 tiers: 50050,000 FLH)
- **Cash out** FLH balance
- **Mock mode** for development (falls back when Polar unconfigured)
- **Premium multiplier** (2x FLH for premium members)
### 🤖 Nur AI Coach
- AI-powered Islamic lifestyle coaching
- Customizable personas (Scholar, Mentor, Friend)
- Prayer tracking, Dhikr counter, Qibla compass
- Daily verses and reminders
### 📚 Learn — Micro-Learning Platform
- Structured courses with modules
- Certificate generation on completion
- Progress tracking & quiz assessments
- TTS audio for hands-free learning
### 👥 Community
- **Forum** with Shariah content moderation
- **Private Groups** with invite codes
- **Gamification**: XP, streaks, achievements, levels
- **Referral system** with FLH rewards
### 📱 PWA Features
- Installable on iOS/Android home screen
- Offline support
- Push notifications
- Audio playback (Dhikr, TTS, Adhan)
---
## Tech Stack
| Layer | Technology |
|-------|-----------|
| Framework | Next.js 16 (App Router, Standalone output) |
| Database | SQLite via Prisma ORM |
| Auth | Ummah ID (OIDC) + JWT (jose) |
| Payments | Polar.sh (FLH top-ups) |
| AI Chat | OpenAI-compatible API (configurable) |
| Storage | Local filesystem (public/ directory) |
| Deployment | Docker (port 4013 prod / 4014 staging) |
---
## Architecture
```
Falah Mobile (Next.js 16, standalone output)
├── /mobile/ ← basePath (Traefik reverse proxy)
├── /mobile/souq/* ← Integrated marketplace
├── /mobile/wallet ← FLH wallet + top-up
├── /mobile/learn/* ← Micro-learning courses
├── /mobile/nur ← AI coaching
├── /mobile/forum/* ← Community forum
├── /mobile/api/souq/* ← Souq API endpoints
├── /mobile/api/wallet/* ← Wallet API
├── /mobile/api/webhooks/* ← Polar.sh + external webhooks
└── Prisma SQLite ← Single dev.db volume
```
### API Routes
| Route | Description |
|-------|-------------|
| `GET /api/souq/listings` | Listings with filters (category, price, sort, delivery) |
| `GET /api/souq/listings/[id]` | Listing detail with seller & reviews |
| `POST /api/souq/listings` | Create listing (auth required) |
| `GET /api/souq/categories` | Category list |
| `GET/POST /api/souq/orders` | Order CRUD |
| `PATCH /api/souq/orders/[id]` | Update order status, messages, delivery files |
| `POST /api/souq/reviews` | Create review (auth required) |
| `GET /api/souq/sellers/[id]` | Seller profile with stats |
| `POST /api/souq/upload` | File upload for deliveries |
| `POST /api/wallet/top-up/create-checkout` | Polar.sh checkout for FLH purchase |
| `POST /api/webhooks/polar-checkout` | Polar.sh webhook (credits FLH) |
---
## Development
```bash
# Install dependencies
npm ci
# Build
npm run build
# Build Docker image
docker build -t falah-mobile:latest .
# Run production
docker compose up -d
# Run staging
docker compose -f docker-compose.staging.yml up -d
```
### Environment Variables
See `.env.example` for all required vars:
- `JWT_SECRET` — JWT signing key (required)
- `DATABASE_URL` — SQLite path (`file:./dev.db`)
- `POLAR_ACCESS_TOKEN` — Polar.sh API token (optional, mock mode used otherwise)
- `POLAR_FLH_*` — Product price IDs for each FLH pack
- `LLM_API_KEY` — OpenAI-compatible API key for AI chat
---
## Deployment
| Environment | Host | Port |
|------------|------|------|
| Production | `falahos.my` (via Traefik) | 4013 |
| Staging | `falahos.my/mobile-staging` | 4014 |
Both run as Docker containers with persistent SQLite volumes.
---
## Related Repositories
- **Falah OS Core** — Backend services, Netlify functions, landing pages
- **Ummah ID** — Identity service (OIDC provider)
- **iStore** — App marketplace (store.falah-os.com)
---
*Built for the Ummah. Shariah-compliant by design.*