NIL Game Plan — Complete Feature Inventory
NIL Game Plan — Complete Feature Inventory
Overview
NIL Game Plan (nilgameplan.com) is one of 4 production tenants (nilgameplan, agilenetwork, vtnil, speedofai) running on the shared Peeq/VelocityZ platform. It targets Name, Image, Likeness (NIL) deals connecting fans with college athletes.
This document catalogs all features currently deployed to production, informing the NextGen rewrite.
Sitemap Structure
From nilgameplan.com sitemap.xml:
| Route | Feature | Priority |
|---|---|---|
/ |
Homepage | 0.5 |
/discover |
Expert discovery/browse | 0.9 |
/membership |
Subscription tiers | 0.5 |
/shoutout |
Shoutout marketplace | 0.9 |
/events |
Event listings | 0.9 |
/celebrity |
Expert profile pages | 0.9 |
/content |
Content library | 0.9 |
1. User Identity & Authentication
| Feature | Description | Tech Stack |
|---|---|---|
| Expert Profiles | Athletes/coaches create profiles with bio, images, banners, video | celebrity service |
| Fan Profiles | Subscribers with follow/unfollow, saved media | fan service |
| Handler Profiles | Agent/manager access for experts | Keycloak roles |
| Magic Link Auth | Passwordless email/SMS login | Custom Keycloak SPI + Twilio |
| OAuth2/OIDC | Standard authentication flows | Keycloak 26.3.2 |
| Follow System | Fans follow experts, with audit trail | fan service |
| Referral Codes | Expert referral tracking with limits | celebrity service |
Data Model
celebrity_profiles— 22 Flyway migrations, 6 entitiesfan_profiles— 11 Flyway migrations, 5 entities- All user IDs are Keycloak UUIDs (no local identity generation)
External Dependencies
- Keycloak 26.3.2 (identityx-26)
- Twilio (Magic Link SMS)
- MailChimp (fan mailing list)
2. Content & Media
| Feature | Description | Tech Stack |
|---|---|---|
| Video Content | Upload, transcode, playback | Mux + content/media services |
| Articles/Resources | Written content with file attachments | content service + NFS |
| SEU/PDU Tracking | Continuing education credit tracking | content service |
| Photo Processing | Thumbnails, resize, crop, blur variants | vips-ffm + FFmpeg |
| Categories | Content organization hierarchy | content service |
| Content Ratings | User ratings on content | content service |
| Tags | Cross-domain tagging system | tags service |
| Blogs/News | Written content with featured images | media service |
Data Model
- Content schema: 12 Flyway migrations, 7 entities
- Media schema: 26 Flyway migrations, 13 tables
- Files stored on NFS (Spring Content filesystem)
External Dependencies
- Mux (video upload, transcoding, playback, thumbnails)
- Google Cloud Storage (media blobs)
- vips-ffm (photo processing)
- FFmpeg (video processing)
3. Shoutouts (Cameo-style)
| Feature | Description | Tech Stack |
|---|---|---|
| Shoutout Offers | Experts set price, description, duration | shoutout service |
| Order Flow | Fan purchase → Expert notification | GraphQL + RabbitMQ |
| Video Recording | Expert records personalized message | Mux upload |
| Media Generation | Watermarks, intros via FFmpeg | shoutout service |
| Admin Review | Approval/rejection workflow | shoutout-bpm (CIB Seven) |
| Delivery | Fan receives video + notification | email + SSE |
| Expiration | Auto-cancel + refund if not fulfilled | BPM timers + wallet |
Workflow States
OfferCreated → OrderPlaced → CelebrityNotified → Recording → VideoUploaded
→ MediaGeneration → PendingReview → Approved → FanDelivery → Complete
→ Rejected → CelebrityNotified (re-record)
→ Expired → RefundProcessed → Cancelled
Data Model
- Shoutout schema: 23 Flyway migrations, 6 entities
- BPM: CIB Seven 2.0 process instances with timer events
External Dependencies
- Mux (video asset storage)
- FFmpeg (video compositing)
- CIB Seven 2.0 (workflow orchestration)
4. Events & Classes
| Feature | Description | Tech Stack |
|---|---|---|
| Webinars | Live video events via Zoom | webinar service |
| Calendar Sync | Google Calendar integration | webinar service |
| Registration | User signup for events | webinar service |
| Recordings | Post-event video playback | Zoom recordings |
| Courses | Structured educational content | class-catalog service |
| Sessions | Individual class meetings | class-catalog service |
| Office Hours | 1:1 appointment booking | class-catalog service |
| Learning Credits | CEU/PDU certificate issuance | class-catalog service |
| Tickets | Event ticketing system | class-catalog + inventory |
| Onsite Events | In-person event check-in | onsite-event service |
Data Model
- Webinar schema: 24 Flyway migrations, 24 tables (most complex in domain)
- Class-catalog schema: 32 Flyway migrations, 15+ entities
- Onsite-event schema: 2 Flyway migrations, 2 entities
External Dependencies
- Zoom (webinar creation, registration, recordings)
- Google Calendar (event sync)
5. Payments & Commerce
| Feature | Description | Tech Stack |
|---|---|---|
| Checkout | One-time purchases | Stripe Checkout |
| Subscriptions | Recurring billing | Stripe Subscriptions |
| Virtual Currency | “Coins” with exchange rates | stripe + wallet services |
| Discount Codes | Percentage/fixed discounts | stripe service |
| Promo Codes | Promotional pricing | stripe service |
| Purchase Flow | Full BPM-orchestrated fulfillment | purchase-request-bpm |
| Fan Wallet | Coin balance + transaction history | wallet service |
| Expert Payouts | Payment recording (manual) | transaction service |
| Entitlements | Access grants after purchase | inventory service |
| Inventory Catalog | Central product catalog | inventory service |
Purchase Flow
Fan clicks Purchase → Stripe Checkout → Webhook: checkout.session.completed
→ BPM: InventoryItemPurchaseRequested → Wallet debit → Entitlement created
→ Email notification → Purchase finalized
Data Model
- Stripe schema: 13 Flyway migrations, 7 tables
- Subscriptions schema: 13 Flyway migrations, 4 tables
- Inventory schema: 36 Flyway migrations, 7+ entities (central product catalog)
- Wallet schema: 3 Flyway migrations, 3 tables
- Transaction schema: 6 Flyway migrations, 1 table
External Dependencies
- Stripe (checkout, subscriptions, webhooks, customer portal)
- CIB Seven 2.0 (purchase fulfillment BPM)
6. Communication
| Feature | Description | Tech Stack |
|---|---|---|
| Chat Channels | Expert-fan messaging | Stream Chat SDK |
| Message Boards | Forum-style discussions | message-board + Redis SSE |
| Email Notifications | Transactional emails | Mandrill |
| SMS Notifications | Text message alerts | Twilio |
| Push Notifications | Real-time SSE push | sse service |
| Notification Subscriptions | User delivery preferences | notifications service |
| Weekly Digest | Email summary of activity | notifications service |
Notification Pipeline
Any Service → SendNotification → Notifications Service
→ Match subscriptions by channelPattern
→ Filter by user delivery preferences
→ Route to: Email (Mandrill) | SMS (Twilio) | SSE push
→ Track delivery status
Data Model
- Email/SMS shared schema: 9 Flyway migrations
- Notifications schema: 10 Flyway migrations
- Chat schema: 3 entities (channels, membership, terms)
- Message-board schema: 5 Flyway migrations, 3 entities
- SSE schema: 2 Flyway migrations, 2 entities
External Dependencies
- Stream Chat (hosted chat platform)
- Mandrill (email delivery) — Note: lutung library deprecated
- Twilio (SMS delivery)
- Redis (SSE pub/sub, group membership cache)
7. Discovery & Organization
| Feature | Description | Tech Stack |
|---|---|---|
| Expert Discovery | Browse/search experts | search + tags services |
| Tags System | Multi-domain tagging | tags service |
| Group Profiles | Organization pages | group-profile service |
| Org Manager | Organization administration | org-manager service |
Data Model
- Tags service manages cross-domain tagging
- Group profiles for organizational entities
- Search via Elasticsearch
External Dependencies
- Elasticsearch (full-text search)
8. Analytics & Tracking
| Feature | Description | Tech Stack |
|---|---|---|
| User Tracking | Behavior analytics | tracking service |
| Journey Tracking | User funnel analysis | journey service |
| Dashboards | BI reporting | Superset |
External Dependencies
- Google Analytics (GTM-MH32L6G4, G-JYTRHSHP7V)
- Superset (BI dashboards)
Features NOT Deployed (Confirmed Inactive)
| Feature | Status | Evidence | Reason |
|---|---|---|---|
| Livestream/Broadcast | Never deployed | No ArgoCD app | Mux Spaces deprecated |
| Dwolla ACH | Retired | No ArgoCD app, no Gen 2 code | Replaced by Stripe |
| Jitsi Video | Retired | Docker container only | Replaced by Zoom webinars |
| Meet-and-Greet | Deprecated | Gen 1 BPM inactive | Feature removed |
| Conference SSE | Deprecated | No ArgoCD app | Tied to meet-and-greet |
| Recommendation Engine | Never deployed | No ArgoCD app | Not implemented |
Production Services Summary
Deployed to nilgameplan (35 services)
Frontend (3) - mono-web, admin-fe, celeb-fe
Identity (5) - identityx-26, users, celebrity, fan, group-profile
Content & Media (3) - content, media, webinar
Events (4) - shoutout, shoutout-bpm, inventory, class-catalog
Payments (5) - stripe, subscriptions, purchase-request-bpm, wallet, transaction
Communication (6) - email, sms, notifications, chat, message-board, sse
Discovery (2) - tags, org-manager
Analytics (2) - tracking, journey
Infrastructure (5) - pgbouncer, rabbitmq, redis, superset, cdn
External Service Dependencies
| Service | Purpose | API Keys Required |
|---|---|---|
| Mux | Video upload, transcode, playback | Mux API key/secret |
| Stripe | Payments, subscriptions, checkout | Stripe API keys |
| Zoom | Live webinars, recordings | Zoom OAuth app |
| Stream Chat | Real-time chat | Stream API key/secret |
| Twilio | SMS delivery + Magic Link | Twilio SID/token |
| Mandrill | Email delivery | Mandrill API key |
| Google Calendar | Event scheduling | Service account |
| Keycloak | Identity/OAuth2 | Realm config |
| Redis | SSE groups, caching | Connection string |
| Elasticsearch | Search indexing | Cluster config |
| Google Analytics | Web tracking | GTM container ID |
NextGen Rewrite Implications
Consolidation Opportunities
| Current Services | Recommended Gen 3 | Rationale |
|---|---|---|
| email + sms + notifications | Delivery Service | Shared DB, pipeline relationship |
| content + media | Content Service | Both use Mux, overlapping concerns |
| shoutout + shoutout-bpm | Shoutout Service | Replace BPM with state machine |
| celebrity + fan | Profile Service | Similar architecture |
| stripe + subscriptions | Billing Service | Tightly coupled via Stripe |
Technical Debt to Address
- BPM Engine — CIB Seven (Camunda 7 fork) EOL risk; replace with state machines
- Mandrill Library —
lutung0.0.8 unmaintained; replace with modern SDK - NFS Storage — Migrate content files to GCS (already used by media)
- Video Platform — Remove Phenix RTS and 100ms SDKs (unused)
- Frontend Unification — Merge peeq-mono and frontends into single codebase
Data Migration Considerations
- 25+ database schemas with Flyway migrations
- Keycloak UUIDs used as foreign keys across all services
- Mux asset IDs and Stripe product IDs are permanent external references
- In-flight BPM process instances must drain before migration
Related Documentation
- Platform Overview
- Current Architecture State
- User Identity Domain
- Content & Streaming Domain
- Events Business Logic
- Payment Processing
- Communication Infrastructure
- Domain Glossary
Last updated: 2026-02-01 Source: Knowledge base analysis + nilgameplan.com sitemap Review by: 2026-05-01 Staleness risk: Low — production deployment is stable