rpmjp/portfolio
rpmjp/projects/skillbridge/README.md
CompletedFebruary – April 2026

SkillBridge AI — Test Prep Academy Platform

Multi-tenant AI learning platform for test prep academies. Socratic AI tutor that refuses to give answers, AI quiz generation from uploaded files, async pre-grading, weak-spot detection, and AI parent summaries. Full role-based platform across admin, instructor, student, and parent.

LIVE DEMO
Python 3.12FastAPIPostgreSQL 16SQLAlchemy 2.0ReactTypeScriptTailwindGroq / Llama
Languages
Python54.2%
TypeScript45.1%
CSS0.3%
JavaScript0.2%
Dockerfile0.1%
Mako0.1%
README.md

SkillBridge AI — Test Prep Academy Platform

A multi-tenant AI learning platform for test prep academies (SAT, ACT, GRE, MCAT, NJSLA). Built end-to-end as a single engineer: FastAPI backend, React frontend, PostgreSQL, and an AI layer that does real pedagogical work — a Socratic tutor that refuses to hand over answers, quiz generation from uploaded files, async pre-grading, weak-spot detection, and AI-written parent progress summaries.

This is the project I'm proudest of. It's not a demo or a coursework assignment — it's a product, with a business model, a multi-tenant architecture, and AI features that solve problems real academies have.

▶ Try the live demo

skillbridge.robertjeanpierre.com

The login page has one-click demo roles — no password needed. Click Student, Instructor, or Parent and you're in. Each role sees a completely different application:

  • Student — practice with the AI tutor, follow a weekly study plan, take practice exams
  • Instructor — review courses, grade submissions, inspect per-student AI tutoring activity
  • Parent — read AI-generated progress summaries, grades, and study plans for their child

The admin role sits behind the regular login by design — it's the sensitive tenant-management surface, so it's not exposed as a public demo account.


At a glance

ProductMulti-tenant B2B SaaS for test prep academies
User roles4 — admin, instructor, student, parent
TenancyFull multi-tenant isolation, tenant_id on every row
AI providerGroq (Llama 3.3 70B + Llama-4 Scout vision), abstracted for swap
AI tutor modes4 — Hint, Scaffold, Check, Explain
BackendFastAPI, 16 routers, ~35 service modules
DatabasePostgreSQL 16, JSONB for rubrics / plans / tutor messages
Exam bankSAT + GRE, including quantitative comparison and multiple-select
Math renderingKaTeX, server-validated, production-build hardened
DeploymentDocker on VPS, GitHub Actions auto-deploy on push to main

What makes it different

The AI tutor refuses to give answers. Most "AI tutor" features are a chat box wired to an LLM that will happily solve the homework. SkillBridge's tutor is built around a Socratic system prompt with explicit hard rules: never give the final answer, redirect answer-extraction attempts, end every response with a question or next step. There are four modes — Hint, Scaffold, Check, Explain — each with distinct behavior. See ai-features.md.

Multi-tenancy by construction. Every academy is a tenant. Every row that could leak across tenants carries a tenant_id, and the backend returns role-filtered data so a student can't see another student's work and an academy can't see another academy's data. See multi-tenancy.md.

AI does real work, not decoration. Quiz generation from an uploaded worksheet. Async pre-grading that suggests scores and feedback for instructor review. Weak-spot detection across a student's history. Parent summaries written from real performance data. The AI is plumbed into the actual workflows, not bolted on. See ai-features.md.


Tech stack

LayerTechnology
BackendPython 3.12, FastAPI
DatabasePostgreSQL 16 with JSONB
ORMSQLAlchemy 2.0
MigrationsAlembic
ValidationPydantic v2
AuthJWT bearer tokens, role-based dependencies
AIGroq — Llama 3.3 70B (text), Llama-4 Scout (vision)
AI abstractionProvider interface — swap Groq/Anthropic via one env var
FrontendReact, TypeScript, Vite
StylingTailwind CSS
Math renderingKaTeX
ContainersDocker, docker-compose
CI/CDGitHub Actions, auto-deploy to VPS on push to main

Where to go from here

  • architecture.md — system design, the AI provider abstraction, async pre-grading flow
  • multi-tenancy.md — tenant isolation, role-filtered data, how cross-tenant leakage is prevented
  • ai-features.md — the Socratic tutor, quiz generation, pre-grading, weak-spot detection, parent summaries
  • database-design.md — schema, JSONB design, soft delete, string-over-enum decisions
  • exam-engine.md — question bank, GRE question types, the KaTeX production-build bug
  • challenges.md — the hardest problems and how I solved them
  • api-reference.md — endpoints across the 16 routers
  • links/live-demo.url — try it yourself, one click to a demo role