DocHub
Full partner management system with admin panel, influencer dashboard, splash screen approval, and referral tracking

Influencer Portal System

A web-based system for managing influencer/partner relationships. Admins invite influencers, influencers upload custom splash screens, admins approve them, and the app displays personalized content to referred users.

Live URLs

Component URL
Admin Panel https://hypnoelp.com/influencers/admin/
Influencer Portal https://hypnoelp.com/influencers/
Referral Page https://hypnoelp.com/share?code=XXX (dev)

Components

1. Admin Panel

  • URL: https://hypnoelp.com/influencers/admin/
  • Source: websites/influencer-admin/index.html
  • Hosted on: Hostinger (/influencers/admin/)
  • Features: Single/bulk invite sending, splash screen approval/rejection
  • Auth: None (admin-only URL)

2. Influencer Portal

  • URL: https://hypnoelp.com/influencers/
  • Source: websites/influencer-portal/index.html
  • Hosted on: Hostinger (/influencers/)
  • Auth: Supabase email/password (set up via invite link)
  • Features: View profile, referral code, upload splash screen, check approval status

3. Supabase Edge Functions

Function Purpose
create-influencer Creates influencer record + auth user + sends invite email via Resend
update-splash-screen Uploads image to storage, sets status to “pending”
approve-splash-screen Approves/rejects, generates base64 HTML on approval
get-splash-screen Returns ready-to-display HTML for app (called by Jaz’s code)

4. Referral Code Page

  • Users visit hypnoelp.com/share?code=CODE, enter email to link referral
  • Proxy (proxy.py on port 8013) handles CORS
  • Calls backend edge function to log the referral

Database

Supabase project: Influencer Portal (foxuipkuotwhitlxssyc)

Table Purpose
influencers Partner profiles: name, email, code, splash screen URL/status/HTML, auth_user_id
groups 7 content categories for influencer classification
influencer_groups Junction table linking influencers to groups
referrals Tracks which users signed up via which referral code

Key Fields on influencers

  • code — unique referral code
  • auth_user_id — linked to Supabase auth.users
  • splash_screen_url — uploaded image URL
  • splash_screen_status — pending / approved / rejected
  • splash_screen_rejected_reason — reason text if rejected
  • splash_screen_html — generated HTML with embedded base64 image (created on approval)

Splash Screen Flow

  1. Influencer uploads image via portal (auto-compressed to ~100KB)
  2. Status set to “Pending Approval”
  3. Admin sees it in “Splash Screen Approvals” tab
  4. Approve: Image fetched, converted to base64, HTML generated and stored
  5. Reject: Status set to “Rejected” with reason, influencer can re-upload
  6. App calls GET /functions/v1/get-splash-screen?code=CODE to display

Email Configuration

  • Provider: Resend
  • From: HypnoELP Partners <marketing@hypnoelp.com>
  • Reply-to: marketing@omelasai.com
  • DNS: Resend SMTP records on GoDaddy for hypnoelp.com

RLS Policies

  • Influencers can only read their own record via auth_user_id = auth.uid()
  • Supabase Site URL must be set to https://hypnoelp.com/influencers/ for password reset links

Status

Fully deployed and working. Splash screen approval flow complete. Email auto-reply handled by n8n workflow (see n8n-workflows docs). Pending: app integration for displaying splash screens to referred users, production email switch to info@omelasai.com.