Skip to content

Conversation

@Custard7
Copy link
Collaborator

@Custard7 Custard7 commented Nov 25, 2025

🏪 App Store CRUD & Partner Portal

Loom Overview

https://www.loom.com/share/6407963de5d943a997a80843972af863

Summary

This PR introduces a complete App Store ecosystem for LearnCard, enabling partners to publish, manage, and distribute their apps to users. It includes a full Partner Portal for app submission, an Admin Dashboard for review/approval, and integration with the LaunchPad for app discovery and installation.

Features

🚀 Partner Portal

  • Elegant onboarding flow - New partners see a "Publish Your App" landing page with inline project creation
  • Multi-step app submission wizard with:
    • App details (name, tagline, description, icon, category)
    • Launch type selection (Embedded iframe, Direct Link, Consent Redirect, AI Tutor, etc.)
    • Launch configuration with integration guides
    • Screenshot & highlight uploads
    • Hero background color customization
    • Preview & diagnostics panels
  • Draft management - Save drafts, edit, and submit for review
  • Status tracking - View apps across Draft, Pending Review, Published, and Rejected tabs
  • Mobile-optimized UI - Responsive sidebar/detail layout for all screen sizes

👑 Admin Dashboard

  • Review pending app submissions
  • Approve, reject, or send back to draft
  • Set promotion levels (Featured Carousel, Curated List, Standard)
  • Manage app lifecycle
  • Preview options dropdown with:
    • Preview Modal - See app as it appears in LaunchPad
    • Preview Page - View the public listing page
    • Test Embed - Test embedded iframe apps in fullscreen
  • Mobile-responsive layout - Sidebar hidden on mobile when viewing details, with back navigation

📱 LaunchPad Integration

  • Featured Carousel for promoted apps
  • App Store listing pages with hero background colors, screenshots, highlights
  • Install flow with consent modal for data sharing permissions
  • Coming Soon apps powered by LaunchDarkly flags
  • Apple-style "Developer Program" CTA - Gradient promotional card linking to Partner Portal (controlled by joinOurDeveloperCommunityAd LaunchDarkly flag)
  • Preview mode - Yellow banner indicates preview, install button disabled

🔔 Notifications

  • APP_LISTING_SUBMITTED - Notifies admins when a developer submits a listing for review
  • APP_LISTING_APPROVED - Notifies developers when their app is approved and live
  • APP_LISTING_REJECTED - Notifies developers when their app needs changes
  • Custom notification cards with color-coded variants (green/amber/indigo) and navigation to relevant dashboards

🔧 Backend

  • New AppStoreListing model in Neo4j with full CRUD operations
  • Access layer for listings with relationship management
  • tRPC routes for partner and admin operations
  • Integration with existing LCNIntegration system
  • Support for highlights_json, screenshots_json, hero_background_color fields
  • Notification queue integration for app store events

🎨 UX Improvements

  • Partner Portal accessible from Admin Tools menu
  • Integration selector in header for multi-project management
  • Syntax-highlighted code blocks in integration guides
  • Default signing authority setup assistance
  • Consent flow contract creation inline
  • Responsive design for iPhone SE and other small screens
  • Stacked action buttons on mobile to prevent overflow

New Launch Types

  • AI_TUTOR - For AI-powered learning apps
  • Enhanced EMBEDDED_IFRAME with optional consent flow contracts
  • CONSENT_REDIRECT with redirect URL configuration

New Notification Types

  • APP_LISTING_SUBMITTED
  • APP_LISTING_APPROVED
  • APP_LISTING_REJECTED

Testing

  • Create a new project in Partner Portal
  • Submit an app listing through all wizard steps
  • Verify admin can review and approve/reject
  • Confirm approved apps appear in LaunchPad
  • Test app installation with consent flow
  • Test all launch config types (Embedded, Direct Link, etc.)
  • Verify mobile responsiveness on Admin Dashboard and Partner Portal
  • Test admin preview options (modal, page, embed)
  • Confirm preview mode disables install button
  • Verify notifications are sent on submit/approve/reject
  • Check notification cards render correctly and navigate to appropriate pages

✨ PR Description

Purpose: Add comprehensive App Store developer portal with CRUD operations, admin dashboard, and Partner Connect SDK integration to enable third-party app publishing and management in LearnCard wallet.

Main changes:

  • Implemented full App Store listing creation, editing, submission workflow with multi-step form and preview capabilities
  • Added admin review dashboard with status management, promotion levels, and bulk operations for app approval workflow
  • Integrated Partner Connect SDK diagnostics panel with permission tracking, API call monitoring, and consent flow management
  • Created Universal Inbox integration guide and inline API token manager for server-to-server credential issuance
  • Added AI Tutor launch type with topic selection, session tracking, and personalized tutoring redirect flow
  • Implemented app installation consent modal with permission disclosure, contract preview, and automatic consent withdrawal on uninstall

Generated by LinearB AI and added by gitStream.
AI-generated content may contain inaccuracies. Please verify before using.
💡 Tip: You can customize your AI Description using Guidelines Learn how

@changeset-bot
Copy link

changeset-bot bot commented Nov 25, 2025

🦋 Changeset detected

Latest commit: 596b487

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 47 packages
Name Type
@learncard/simple-signing-service Minor
@learncard/simple-signing-client Minor
@learncard/learn-cloud-service Minor
@learncard/network-brain-service Minor
@learncard/network-brain-client Minor
@learncard/learn-cloud-client Minor
@learncard/simple-signing-plugin Minor
@learncard/nx-run-command Minor
@learncard/network-plugin Minor
@learncard/lca-api-service Minor
@learncard/claimable-boosts-plugin Minor
@learncard/did-web-plugin Minor
@learncard/dynamic-loader-plugin Minor
@learncard/lca-api-plugin Minor
@learncard/linked-claims-plugin Minor
@learncard/open-badge-v2-plugin Minor
@learncard/vc-templates-plugin Minor
@learncard/learn-cloud-plugin Minor
@learncard/snap-chapi-example Minor
@learncard/helpers Minor
@learncard/encryption-plugin Minor
@learncard/expiration-plugin Minor
@learncard/learn-card-plugin Minor
@learncard/types Minor
@learncard/ethereum-plugin Minor
@learncard/react Minor
learn-card-base Minor
@learncard/core Minor
@learncard/init Minor
@learncard/ceramic-plugin Minor
@learncard/lca-api-client Minor
@learncard/crypto-plugin Minor
@learncard/didkey-plugin Minor
@learncard/didkit-plugin Minor
@learncard/vc-api-plugin Minor
@learncard/chapi-example Minor
@learncard/chapi-plugin Minor
@learncard/vpqr-plugin Minor
@learncard/idx-plugin Minor
learn-card-app Minor
@learncard/vc-plugin Minor
@learncard/cli Patch
scoutpass-app Patch
@learncard/snap-example-dapp Patch
@learncard/create-http-bridge Patch
learn-card-discord-bot Patch
@learncard/meta-mask-snap Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@netlify
Copy link

netlify bot commented Nov 25, 2025

Deploy Preview for learncarddocs canceled.

Name Link
🔨 Latest commit 596b487
🔍 Latest deploy log https://app.netlify.com/projects/learncarddocs/deploys/694193fa02d5440008943748

@netlify
Copy link

netlify bot commented Dec 2, 2025

Deploy Preview for staging-learncardapp canceled.

Name Link
🔨 Latest commit 596b487
🔍 Latest deploy log https://app.netlify.com/projects/staging-learncardapp/deploys/694193fa65d2820008c0cffa

@netlify
Copy link

netlify bot commented Dec 2, 2025

Deploy Preview for learncardapp canceled.

Name Link
🔨 Latest commit 4e7585f
🔍 Latest deploy log https://app.netlify.com/projects/learncardapp/deploys/692f5538308ff3000840498f

Copy link
Collaborator

@goblincore goblincore left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Custard7 LGTM! I think this good to merge, was able to test and confirm the following list:

  • Create a new project in Partner Portal
  • Submit an app listing through all wizard steps
  • Verify admin can review and approve/reject
  • Confirm approved apps appear in LaunchPad
  • Test app installation with consent flow
  • Test all launch config types (Embedded, Direct Link, etc.)
  • Verify mobile responsiveness on Admin Dashboard and Partner Portal
  • Test admin preview options (modal, page, embed)
  • Confirm preview mode disables install button
  • Verify notifications are sent on submit/approve/reject
  • Check notification cards render correctly and navigate to appropriate pages

@Custard7 I can't remember if we need to update the changeset though? like after pushing commits post changeset, I think one has to add another changeset? Basically I had this issue once where the packages didn't update because of this I believe

@Custard7 Custard7 merged commit 279e049 into main Dec 16, 2025
12 of 13 checks passed
@Custard7 Custard7 deleted the feat-add-app-store-crud branch December 16, 2025 17:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants