Influencer Campaign Management Platform
From campaign creation to influencer payout — fully tracked.
Infloww is a production-grade influencer campaign management platform built for marketing teams. It supports a multi-role workflow across Managers, Influencers, and Sub-Admins — handling campaign assignment, work submission with proof tracking, deadline enforcement with automated alerts, and manual payment management.
src/
├── modules/<feature>/
│ ├── <feature>.validation.ts # Zod input schemas
│ ├── <feature>.interface.ts # TypeScript types
│ ├── <feature>.service.ts # Business logic & DB queries
│ ├── <feature>.controller.ts # catchAsync request handlers
│ └── <feature>.route.ts # Express router + middleware chain
│
├── middlewares/
│ ├── auth.middleware.ts # JWT verification + RBAC
│ └── purifyRequest.ts # Input sanitization
│
└── utils/
├── catchAsync.ts
├── ServerError.ts
└── twilio.client.ts
Every module follows a strict 5-layer pattern:
validation → interface → service → controller → route
Core
- 👥 Multi-role system — Manager, Influencer, Sub-Admin with scoped permissions
- 📣 Campaign creation and assignment workflow
- 📎 Proof submission — influencers upload screenshots and links as work evidence
- ⏰ Deadline tracking with automatic late alerts via Twilio SMS
- 💰 Manual payment management with submission and performance tracking
- 📊 Campaign performance overview per influencer and per campaign
Technical
- 🔒 JWT access + refresh token rotation
- 🛡️ Zod validation on all inputs
- 🐳 Fully containerized with Docker Compose
- 📱 Twilio SMS notifications for deadline breaches and alerts
| Layer | Technology |
|---|---|
| Runtime | Node.js 20+, TypeScript (strict) |
| Framework | Express.js |
| Database | MongoDB + Mongoose |
| Auth | JWT (access + refresh rotation) |
| Notifications | Twilio SMS |
| Validation | Zod |
| Containerization | Docker + Docker Compose |
POST /api/v1/auth/register
POST /api/v1/auth/login
POST /api/v1/auth/refresh
POST /api/v1/auth/logout
POST /api/v1/auth/forgot-password
POST /api/v1/auth/reset-password
GET /api/v1/campaigns
GET /api/v1/campaigns/:id
POST /api/v1/campaigns
PATCH /api/v1/campaigns/:id
DELETE /api/v1/campaigns/:id
POST /api/v1/campaigns/:id/assign
POST /api/v1/submissions # Influencer submits proof
GET /api/v1/submissions/my # Influencer's own submissions
GET /api/v1/submissions/:campaignId # Manager views campaign submissions
PATCH /api/v1/submissions/:id/approve # Manager approves submission
PATCH /api/v1/submissions/:id/reject # Manager rejects submission
POST /api/v1/payments
GET /api/v1/payments/:influencerId
PATCH /api/v1/payments/:id/mark-paid
# Clone the repository
git clone https://github.com/shaishab316/infloww.git
cd infloww
# Install dependencies
npm install
# Configure environment
npm run seed-env
# Start development server
npm run devdocker-compose up --buildShaishab Chandra Shil Self-taught Backend Developer · Dhaka, Bangladesh
Built with persistence, raw documentation, and zero tutorials. 🔥