Logo Lanfrica

Jeremiaheth/Sharelink

Domain:

digital infrastructure

Record type:

softwareproject
Creator:
Jer
Host:
ISP-agnostic broadband sharing platform in Nigeria. Hosts safely monetize excess fiber bandwidth with neighbors through QoS-protected access and public HubSpots. # ShareLink NG **ISP-agnostic broadband sharing economy platform for Nigeria.** Fiber subscribers (Hosts) safely monetize excess bandwidth by sharing with neighbors through controlled, QoS-protected access. The platform also supports public HubSpots for time-based paid guest access. ## Features (MVP) - **Authentication**: Phone number + OTP signup/login with JWT - **Host Onboarding**: ISP selection + automatic MikroTik router provisioning (Queue Trees + PCQ QoS + Hotspot) - **Payments**: Paystack integration (transaction initialization, webhook verification with signature validation) - **Guest Access**: Unique short voucher codes, time-based sessions (hourly/daily), auto-expiry and activation - **Earnings**: Real-time calculation from completed paid sessions (today / this month / lifetime) with automatic sync to Host balance - **Payouts**: Hosts can request payouts (minimum ₦5,000) with pending balance tracking ## Tech Stack - **Backend**: NestJS (TypeScript) - **Database**: PostgreSQL via Supabase - **Payments**: Paystack (API + Webhooks) - **Router Management**: MikroTik RouterOS API (QoS + Hotspot) - **Testing**: Jest (unit + integration/e2e) ## Project Structure ``` Sharelink/ ├── backend/ # NestJS API │ ├── src/ │ │ ├── modules/ │ │ │ ├── auth/ # Phone OTP + JWT │ │ │ ├── hosts/ # Onboarding, earnings, payouts │ │ │ ├── sessions/ # GuestSession + voucher system │ │ │ ├── payments/ # Paystack integration │ │ │ ├── routers/ # MikroTikService (QoS + Hotspot) │ │ │ └── ... │ │ └── prisma/ # Prisma client + service │ └── prisma/ # Schema, migrations, seed ├── ShareLink_NG_Developer_Specification.md └── README.md ``` ## Getting Started (Backend) ```bash cd backend cp .env.example .env # Add your Supabase + Paystack + JWT secrets npm install npm run db:migrate # Apply schema to Supabase npm run db:seed …