AI-Powered Creator & Brand Sponsorship Marketplace Platform
SponsorForge is an end-to-end marketplace connecting Brands and Content Creators. Powered by AI Vector Embeddings (pgvector + SentenceTransformers), SponsorForge delivers semantic matching between campaign requirements and creator profiles. It streamlines sponsorship workflows through an escrow points system, live deadline timers, automated 24-hour payout guarantees, and real-time email notifications.
- β¨ Key Features
- π Platform Workflow Diagram
- π οΈ Tech Stack
- π Getting Started
- π Seeding Sample Data
- π API Endpoints Overview
- π€ Contributing
- 384-Dimensional Embeddings: Powered by
SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2'). - High-Performance Cosine Search: Uses
pgvectorHNSW index in PostgreSQL to calculate cosine distance between campaign goals and creator bios/niches. - Smart Recommendations: Recommends top matching creators for brand campaigns and top relevant campaigns for creators.
- Campaign Creation Wizard: Specify target platform (YouTube, Instagram, TikTok, Twitch), niche, required subscriber count, duration, points reward, and deliverable instructions.
- Direct Creator Offers: Send targeted campaign offers directly to specific creators or publish publicly.
- Application Portal: Review applicant pitches, channel analytics, engagement rates, and previous work portfolios.
- Work Review & Approval: Inspect submitted deliverable links, rate creators (1-5 stars), leave feedback, or reject with clear context.
- AI Match Feed: See instant compatibility scores for active brand campaigns.
- Direct Offer Inbox: Receive and accept/reject direct sponsorship offers from brands.
- Deliverable Submission Portal: Submit work proof URL before the submission deadline with live countdown timers.
- Points & Ratings Portfolio: Earn platform reward points and build verified rating history from completed campaigns.
- Scheduled & Active States: Auto-transitions scheduled campaigns to
activewhen start time arrives. - Live Deadline Timers: Displays precise countdowns for submission deadlines.
- Auto-Expiration: Applications with missed deadlines automatically transition to
expiredstatus. - 24-Hour Auto-Payout Guarantee: If a brand does not review submitted work within 24 hours, the backend automatically transfers reward points to the creator and marks the work completed.
- Integration with Node.js Nodemailer to deliver HTML notifications for account registration, campaign creation, direct offers, submissions, approvals, ratings, payouts, and deadline expirations.
- JWT Authentication: Secure Access & Refresh tokens handled via Django REST Framework SimpleJWT.
- Google OAuth 2.0: One-click social authentication for both Brand and Creator profiles.
flowchart TD
%% Roles & Auth
subgraph Auth["π Authentication & Role Assignment"]
A[User Access] -->|Sign Up / Login / Google OAuth| B{Select Role}
B -->|Brand Entity| C[Brand Profile]
B -->|Creator Node| D[Creator Profile]
end
%% Campaign Creation & AI Match
subgraph CampaignFlow["π― Campaign Lifecycle & AI Matching"]
C -->|1. Create Campaign| E[Campaign Form]
E -->|Generate Vector Embedding| F[(PostgreSQL + pgvector)]
D -->|Vector Embedding Generated| F
F -->|2. Cosine Distance Calculation| G[AI Match Engine]
G -->|Match Score| H[Creator Recommendations / Campaign Feed]
end
%% Application & Offers
subgraph ApplicationFlow["π Application & Offer Workflow"]
H -->|Direct Offer from Brand| I[Creator Direct Offer Inbox]
H -->|Creator Applies with Pitch| J[Brand Application Review]
I -->|Accept Offer| K[Hire Creator / Set Deadline]
J -->|Accept Application| K
end
%% Deliverables & Payout
subgraph ExecutionFlow["β±οΈ Execution, Review & Payout"]
K --> L[Creator Submits Work Link]
L --> M{Brand Reviews within 24 Hours?}
M -->|Yes: Approved & Rated| N[Points Transferred & Rating Saved]
M -->|No: 24h Timeout Passed| O[Automated Escrow Payout]
M -->|Rejected with Reason| P[Work Rejection Notification]
O --> N
end
%% Notifications
subgraph EmailEngine["π§ Nodemailer Service"]
K -.->|Email Alert| Q[Email Notification]
L -.->|Email Alert| Q
N -.->|Email Alert| Q
end
- Framework: React 19 + Vite
- Routing: React Router DOM v7
- Styling: Tailwind CSS v4
- Icons: Lucide React
- HTTP Client: Axios
- Authentication:
@react-oauth/google
- Framework: Django 6.0 + Django REST Framework
- AI / Embeddings:
sentence-transformers(all-MiniLM-L6-v2) - Vector Search:
pgvector-python - Authentication:
djangorestframework-simplejwt - CORS:
django-cors-headers
- Database: PostgreSQL 15+ with
pgvectorextension - Email Dispatch: Node.js with
nodemailer(invoked securely via Python subprocess)
Follow these instructions to set up and run SponsorForge locally.
Make sure you have the following installed on your system:
- Node.js (v18.0.0 or higher)
- Python (v3.10 or higher)
- PostgreSQL (v15+ recommended) with
pgvectorextension installed.
-
Open your PostgreSQL console (
psqlor pgAdmin) and create a new database:CREATE DATABASE sponserforge_db;
-
Connect to
sponserforge_dband enable the vector extension:\c sponserforge_db; CREATE EXTENSION IF NOT EXISTS vector;
-
Restore Included Project Database: You can populate the database using either the included SQL dump or Django fixture:
- Option A (Native PostgreSQL Restore):
psql -U postgres -d sponserforge_db -f backend/sponserforge_db_backup.sql
- Option B (Django Loaddata):
cd backend python manage.py loaddata database_data.json
- Option A (Native PostgreSQL Restore):
-
Update database credentials in
backend/core/settings.pyif necessary:DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'sponserforge_db', 'USER': 'postgres', 'PASSWORD': 'YOUR_POSTGRES_PASSWORD', 'HOST': 'localhost', 'PORT': '5432', } }
-
Navigate to the backend directory:
cd backend -
Create and activate a virtual environment:
- Windows:
python -m venv env .\env\Scripts\activate - Linux/macOS:
python3 -m venv env source env/bin/activate
- Windows:
-
Install Python Dependencies:
pip install -r requirements.txt
-
Install Node Dependencies (Required for Nodemailer service):
npm install
-
Run Database Migrations:
python manage.py makemigrations python manage.py migrate
-
Start the Django Development Server:
python manage.py runserver
The backend API will run on
http://127.0.0.1:8000/.
-
Open a new terminal and navigate to the frontend directory:
cd frontend -
Install Frontend Dependencies:
npm install
-
Start the Vite Development Server:
npm run dev
-
Access the Application: Open your browser and navigate to:
http://localhost:5173
To quickly populate the database with realistic sample brands, creator profiles, active campaigns, vector embeddings, and history, run the seed script from the backend folder:
python seed_rich_data.pyThis populates demo accounts for instant testing:
- Brand Accounts:
techcorp,gameverse,fitlife - Creator Accounts:
alextech,gamer_girl,fit_sarah - Default password for test accounts:
password123
| Method | Endpoint | Description | Access |
|---|---|---|---|
POST |
/api/auth/signup/ |
Register Brand or Creator user | Public |
POST |
/api/auth/login/ |
Obtain JWT tokens & user profile | Public |
POST |
/api/auth/google/ |
Authenticate via Google OAuth | Public |
GET/PUT |
/api/auth/profile/ |
View or update active profile | Authenticated |
GET |
/api/campaigns/ |
List all active/scheduled campaigns | Authenticated |
POST |
/api/campaigns/ |
Create a new campaign (Brand only) | Authenticated |
GET |
/api/campaigns/<id>/match/ |
AI matching creators for campaign | Authenticated |
GET |
/api/creator/match-campaigns/<id>/ |
AI matching campaigns for creator | Authenticated |
GET/POST |
/api/applications/ |
List or submit campaign applications | Authenticated |
POST |
/api/applications/<id>/submit_work/ |
Creator submits deliverable link | Authenticated |
POST |
/api/applications/<id>/complete_payout/ |
Brand approves work & pays points | Authenticated |
GET |
/api/users/search/ |
Search & filter profiles by niche/platform | Authenticated |
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Made with β€οΈ by the SponsorForge Team.