Course Copilot

Course Copilot is an editorial learning platform that turns community contributions into structured, discoverable courses. Learners browse a course graph and course pages; contributors submit documents or trusted video links; the processing pipeline extracts, classifies, deduplicates, and routes that material; editors review the resulting queue before it becomes part of the learning experience.

Why it matters

Most learning platforms start with a fixed catalogue. Course Copilot starts with useful knowledge that people already have and gives it an editorial path into a coherent curriculum. The result is a feedback loop:

contribution -> secure processing -> AI classification -> course matching
             -> moderation/editorial review -> better course graph

What is implemented

Learner experience

  • Editorial landing page with the product story and calls to action.
  • Authenticated dashboard and responsive learner workspace.
  • Course discovery, demo catalogue data, course cards, course taxonomy, and course detail pages.
  • Course graph enrichment from approved contributions.
  • Settings with processing/privacy controls.
  • Responsive visual system for the landing page, workspace, auth, moderation, and admin surfaces.

Contribution and processing workflow

  • Authenticated contributions from text, Markdown, CSV, HTML, JSON, PDF, and DOCX uploads.
  • Secure public HTTPS YouTube and Vimeo links. The app uses fixed provider oEmbed endpoints and does not download or retain the video.
  • Private upload storage with a local filesystem adapter for development and an S3-compatible adapter for production.
  • Extraction, raw-file deletion, structured AI classification, embeddings, semantic course matching, and course enrichment.
  • Durable, checkpointed Inngest processing with retry/recovery operations.
  • Local taxonomy fallback when the OpenAI key is unavailable or classification fails; classification provenance and fallback status remain visible to moderators.
  • SHA-256 content matching and order-independent source-set signatures. An identical accepted source can reuse verified classification and course mapping without another model call.
  • Processing timeline, upload cleanup, storage reconciliation, and stale-job recovery.

Trust, safety, and editorial controls

  • Moderation queue and refactor queue for editorial decisions.
  • Educational-content policy with confidence-aware automatic rejection and escalating temporary contribution restrictions for repeated incidents.
  • Admin-only control room for course, moderation, processing, and storage operations.
  • Destructive admin actions protected by single-use, 8-digit email approval codes tied to the admin, target, and action. Codes expire after ten minutes and lock after five failed attempts.
  • Upload validation, rate limits, abuse controls, private object keys, source cleanup, and storage health/reconciliation checks.
  • Raw files and extracted source text follow deletion lifecycles; sensitive content is not placed in Inngest event payloads or step results.

Technology

  • Next.js 16 App Router, React 19, TypeScript
  • PostgreSQL with Prisma
  • Better Auth with Polar integration and tRPC
  • OpenAI through the Vercel AI SDK for structured classification and embeddings
  • Inngest for durable background processing
  • Local private storage or AWS S3/S3-compatible object storage
  • Tailwind CSS, shadcn-style UI components, Biome

The product is designed for educational content, including practical guides and game-improvement material when the primary purpose is teaching. Promotion, spam, unrelated discussion, and predominantly entertainment content are routed away from the catalogue.

Built With

Share this project:

Updates