rpmjp/portfolio
rpmjp/projects/skillbridge/api-reference.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%
api-reference.md

REST API Reference

SkillBridge exposes a FastAPI backend across 16 routers. Full OpenAPI docs are auto-generated at /docs. Every endpoint (except auth and the public demo logins) requires a JWT bearer token and is scoped to the authenticated user's tenant and role.

A selection of the most important endpoints below.


Auth

EndpointMethodDescription
/auth/loginPOSTEmail + password → JWT
/auth/login/formPOSTForm-based login (Swagger Authorize button)
/auth/demo/{role}POSTOne-click demo login for student / instructor / parent
/auth/meGETCurrent authenticated user

Academy & users (admin)

EndpointMethodDescription
/academyGET, PATCHTenant settings for the current academy
/usersGET, POSTList and create users within the academy
/users/{id}GET, PATCH, DELETEManage a user (soft delete)

Courses, enrollments, assignments

EndpointMethodDescription
/coursesGET, POSTCourses in the academy; instructor-scoped on read
/courses/{id}GET, PATCH, DELETEManage a course
/enrollmentsGET, POSTEnroll students in courses
/assignmentsGET, POSTAssignments, with rubric and tutor mode
/assignments/{id}GET, PATCH, DELETEManage an assignment

Submissions & grading

EndpointMethodDescription
/submissionsGET, POSTStudent submissions to assignments
/submissions/{id}GET, PATCHView / grade a submission
/submissions/{id}/filesPOSTAttach files to a submission

Quizzes (AI generation + grading)

EndpointMethodDescription
/quizzesGET, POSTList and create quizzes
/quizzes/generatePOSTAI-generate a quiz draft from topic / standard / file
/quizzes/{id}/submitPOSTStudent submits answers
/quizzes/submissions/{id}GET, PATCHInstructor reviews AI pre-grading, approves / overrides

Tutor

EndpointMethodDescription
/tutor/sessionsGET, POSTTutor sessions bound to an assignment
/tutor/sessions/{id}/messagePOSTSend a message to the Socratic tutor (text + optional images)
/tutor/insights/{student_id}GETPer-student weak-spot insights for instructors

Exams & practice

EndpointMethodDescription
/examsGETAvailable practice exams
/exams/{id}/questionsGETQuestions, including QC and multiple-select types
/practiceGET, POSTAdaptive practice sessions

Study plans, parents, gamification

EndpointMethodDescription
/study_plans/{student_id}GET, POSTPersonalized weekly study plan
/parents/summaryGETAI-generated progress summary for the linked child
/gamification/leaderboardGETXP and badge leaderboard

Health

EndpointMethodDescription
/healthGETLiveness check

Design notes

Thin routers, fat services. Routers parse, authorize, and delegate. All logic is in the service layer. See architecture.md.

Role-gated by dependency. require_role(...) runs before handler code. No endpoint can skip the role check.

Tenant-scoped by identity. Every query derives its tenant from the authenticated user, never from a request parameter.

OpenAPI for free. FastAPI generates the full spec from Pydantic schemas; /docs is the live interactive reference.