PharmaNet connects customers, pharmacies, and platform administrators through a unified ecosystem.
Business Domains
| Domain |
Description |
| Customer Experience |
Browse products, find nearby pharmacies, place orders, track deliveries, chat with pharmacists |
| Pharmacy Operations |
Manage inventory, process orders, configure store profile, create promotions, track earnings |
| Platform Administration |
Manage users, approve pharmacies/products, configure CMS, review reports, handle payments |
User Roles
| Role |
Access |
Description |
customer |
Mobile App |
Browse, order, review, chat, manage profile |
seller |
Mobile App + Seller Web |
Manage pharmacy, products, orders, promotions |
admin |
Admin Web |
Full system management, approvals, analytics |
Data Flow
sequenceDiagram
participant C as Customer (Mobile)
participant P as Pharmacist (Mobile/Seller Web)
participant A as Admin (Admin Web)
participant S as Supabase
participant CP as Chapa
C->>S: Browse products, search, filter
S-->>C: Product data
C->>S: Add to cart, create order
C->>CP: Pay via Chapa
CP-->>C: Payment callback
C->>S: Confirm payment
S-->>P: Notify of new order
P->>S: Update order status
S-->>C: Real-time order update
A->>S: Approve pharmacy/product
S-->>P: Notification of approval
Cross-Cutting Concerns
- Authentication: Supabase Auth with email/password, OTP, Google OAuth
- Authorization: Row-Level Security (RLS) policies on all tables
- Real-time: Supabase Realtime for live order updates, chat, notifications
- Storage: Supabase Storage for product images, banners, pharmacy documents
- Payments: Chapa payment gateway with hosted checkout
- Push Notifications: Firebase Cloud Messaging (FCM) via mobile app
- Localization: English and Amharic (Flutter app via
flutter_localizations + intl)