Spaces:
Running
Running
|
Download apps/api/src/network/README.md from Benaah/MicProtocol: direct link, hf CLI and curl.
- Browser
- Download file 10 kB
-
https://huggingface.co/spaces/Benaah/MicProtocol/resolve/main/apps/api/src/network/README.md
- Command line
-
hf download hf://spaces/Benaah/MicProtocol/apps/api/src/network/README.md
-
curl -L -o README.md https://huggingface.co/spaces/Benaah/MicProtocol/resolve/main/apps/api/src/network/README.md
10 kB
Verified Guest Network API
This module implements the two-sided marketplace for MicProtocol, transforming it from a SaaS tool into a network with network effects.
Architecture Overview
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β VERIFIED GUEST NETWORK β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Reputation β β Discovery β β Graph β β
β β Engine βββββΊβ (Search) βββββΊβ Service β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β β β β
β βΌ βΌ βΌ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Guest Public Profile DB β β
β β β’ Profile data β’ Booking history β’ Reliability β β
β β β’ Expertise tags β’ Availability β’ Reviews β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βΌ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Network Queue Processor β β
β β β’ Booking notifications β’ Reputation recalc β β
β β β’ Graph ingestion β’ Weekly digests β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βΌ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β SMS/WhatsApp Service β β
β β β’ WhatsApp Business API β’ Africa's Talking β β
β β β’ Multi-language β’ USSD fallback β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Features
1. Guest Public Profiles
Guests can create public, discoverable profiles with:
- Vanity URLs (
MicProtocol.io/in/john-nduati) - Expertise tags and professional bio
- Country/city for regional discovery
- Availability windows
- Social proof and track record
2. Reputation Engine
Behavioral scoring system (not subjective endorsements):
| Dimension | Weight | Metrics |
|---|---|---|
| Responsiveness | 30% | Response time, response rate |
| Reliability | 40% | Asset delivery, show-up rate |
| Quality | 30% | Host ratings, engagement |
African Market Adaptations:
- Regional thresholds for response times (Nigeria: 72h, Kenya: 48h)
- Mobile data considerations for asset uploads
- WhatsApp response time counts
3. Discovery Search
Meilisearch-powered search with:
- Typo-tolerant full-text search
- Faceted filtering (country, expertise, language)
- Geo-search for regional discovery
- Reputation-boosted ranking
4. Social Graph
"Who knows who" network for recommendations:
- "Podcasters who booked X also booked Y"
- Trust paths between hosts and guests
- Community detection (tech hubs, countries)
5. Booking Requests
Frictionless booking flow:
- Host discovers guest via search
- One-click booking request
- Guest receives WhatsApp + Email notification
- Guest accepts β Auto-creates pipeline entry
- Host receives confirmation
6. Mobile-First Notifications
African market-optimized:
- WhatsApp Business API (primary)
- SMS fallback (Twilio, Africa's Talking)
- Multi-language (EN, Swahili, Yoruba, Zulu)
- USSD codes for feature phones (
*384*88#)
API Endpoints
Public Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /network/guests/search |
Search guest profiles |
| GET | /network/guests/trending |
Get trending guests by region |
| GET | /network/guests/:vanityUrl |
Get public profile |
| POST | /network/views |
Track profile view |
Protected Endpoints (Require Auth)
Profiles:
| Method | Endpoint | Description |
|---|---|---|
| POST | /network/profiles |
Create public profile |
| PUT | /network/profiles/me |
Update my profile |
| GET | /network/profiles/me |
Get my profile with analytics |
| GET | /network/profiles/:id/views |
Get view statistics |
Bookmarks:
| Method | Endpoint | Description |
|---|---|---|
| POST | /network/bookmarks |
Bookmark a guest |
| PUT | /network/bookmarks/:id |
Update bookmark |
| DELETE | /network/bookmarks/:id |
Remove bookmark |
| GET | /network/bookmarks |
List bookmarks |
Booking Requests:
| Method | Endpoint | Description |
|---|---|---|
| POST | /network/booking-requests |
Send booking request |
| PUT | /network/booking-requests/:id/respond |
Accept/decline |
| GET | /network/booking-requests/received |
List received |
| GET | /network/booking-requests/sent |
List sent |
Reputation:
| Method | Endpoint | Description |
|---|---|---|
| GET | /network/profiles/:id/reputation |
Get reputation insights |
| POST | /network/profiles/:id/reputation/recalculate |
Recalculate score |
Recommendations:
| Method | Endpoint | Description |
|---|---|---|
| GET | /network/profiles/:id/recommendations |
Get recommendations |
| GET | /network/profiles/:id/network-stats |
Get network stats |
Reviews:
| Method | Endpoint | Description |
|---|---|---|
| POST | /network/reviews |
Submit host review |
tRPC Router
All endpoints are also available via tRPC at network. namespace:
// Example tRPC calls
const profile = await trpc.network.getMyProfile.query();
const results = await trpc.network.search.query({
query: "fintech kenya",
minReliabilityScore: 70
});
const request = await trpc.network.requestBooking.mutate({
toProfileId: "...",
fromPodcastId: "...",
message: "Would love to have you on..."
});
Queue Jobs
The network module processes background jobs via BullMQ:
| Job | Description |
|---|---|
booking-request.notify |
Send WhatsApp/SMS + Email to guest |
booking-request.response-notify |
Notify host of response |
booking-request.accepted |
Create pipeline entry (Guest + Episode) |
reputation.recalculate |
Recalculate reputation score |
graph.ingest-profile |
Add profile to social graph |
digest.weekly |
Send weekly analytics to guests |
Configuration
Required environment variables:
# Meilisearch (Search)
MEILISEARCH_HOST=http://localhost:7700
MEILISEARCH_API_KEY=...
# Twilio (SMS/WhatsApp)
TWILIO_ENABLED=true
TWILIO_ACCOUNT_SID=AC...
TWILIO_AUTH_TOKEN=...
TWILIO_PHONE_NUMBER=+1234567890
WHATSAPP_ENABLED=true
# Africa's Talking (African SMS)
AFRICAS_TALKING_ENABLED=true
AFRICAS_TALKING_USERNAME=...
AFRICAS_TALKING_API_KEY=...
AFRICAS_TALKING_FROM=...
# App URL for action links
APP_URL=https://MicProtocol.io
Database Schema
See prisma/schema.prisma for full schema. Key models:
GuestPublicProfile- Public guest identityExpertiseTag- Skills/categoriesAvailabilityWindow- When guest can recordBookingHistory- Cross-show track recordReliabilityMetric- Behavioral scoring dataNetworkBookmark- Host savesProfileView- AnalyticsNetworkBookingRequest- Booking flowHostReview- Post-episode feedback
Regional Considerations
East Africa (Kenya, Tanzania, Uganda)
- 48-hour expected response time
- 24-hour grace for asset uploads
- Swahili language support
- M-Pesa integration ready
West Africa (Nigeria, Ghana)
- 72-hour expected response time (infrastructure)
- Mobile-first design
- Yoruba language support
- MTN Mobile Money ready
Southern Africa (South Africa)
- 36-hour expected response time
- Better infrastructure = stricter thresholds
- Zulu language support
Future Enhancements
- Mobile Money payments (M-Pesa, MTN)
- Video profiles for guests
- AI-powered matching ("Guests like you enjoyed...")
- Podcast co-host discovery
- Event/networking meetup integration