Mobile platform connecting users with nearby POS merchants for cash withdrawals and deposits across West Africa.
# P-Port
P-Port is a mobile fintech platform designed for regions where ATM infrastructure is limited and POS agents are the primary access point for cash withdrawal and deposit services.
Instead of users searching for a POS merchant, P-Port enables on-demand matching between customers and nearby merchants, allowing cash access through a request → offer → negotiation → transaction → confirmation workflow.
---
## 🚀 Core Idea
A "mobile ATM network" where POS merchants move toward demand instead of users searching for availability.
---
## 📱 Tech Stack
- Frontend: Kotlin (Android Studio)
- Backend: Supabase (Auth, Database, Triggers)
- Server Logic: Supabase Edge Functions
- Real-time updates via Supabase subscriptions
---
## 🔄 Core User Flow
Customer → creates cash request
Merchant → sees request → sends offer
Customer → accepts or counters offer
Merchant → accepts final terms
System → creates transaction
Both parties → confirm completion
Customer → rates merchant
Receipt → generated automatically
---
## ✅ What Works End-to-End (Current Production State)
### 🔐 Authentication
- Email/password sign-up & login
- Role selection (Customer / Merchant)
- Country selection (ISO2 format)
- Session token + user ID stored locally
### 👤 Profile System
- Auto-profile creation via database trigger
- Stores: user ID, role, country
### 📍 Customer Side
- Map container renders successfully
- Cash request creation works
- Requests are written to `requests` table
- Calls `create-request` Edge Function
### 🧑💼 Merchant Side
- Can view open & negotiating requests
- Fetches live request list from backend
- Sends offers stored in `offers` table
### 🤝 Offer System
- Customers receive offers in real time
- Customers can:
- Accept offer
- Counter offer
- Accept triggers `accept-offer` Edge Function
### 💳 Transaction System
- Transaction created after offer acceptance
- Both parties must confirm completion
- Once both confirm → transaction closes
### ⭐ Ratings
- Customer can ra …