Skip to content

feat: educator course creation and class management#65

Open
nymulinfoinlet wants to merge 1 commit intomainfrom
feat/educator-mode
Open

feat: educator course creation and class management#65
nymulinfoinlet wants to merge 1 commit intomainfrom
feat/educator-mode

Conversation

@nymulinfoinlet
Copy link
Copy Markdown
Contributor

Summary

  • Adds EducatorModule with full course/section/content CRUD, class management, enrollment, analytics, and deadlines in backend/src/modules/educator/
  • Extends Role enum with STUDENT and EDUCATOR roles; educator-only endpoints protected via @Roles(Role.EDUCATOR, Role.ADMIN)
  • Students enroll in classes via unique 8-character enrollment codes
  • Class analytics include per-section average scores, completion rates, and at-risk student detection (below 60% threshold)
  • Auto-migrating tables: courses, course_sections, section_content, classes, class_enrollments, class_deadlines

API Endpoints

  • POST /courses (educator) -- create course
  • GET /courses (educator) -- list my courses
  • POST /courses/:id/sections (educator) -- add section
  • POST /courses/sections/:id/content (educator) -- add content to section
  • POST /classes (educator) -- create class with enrollment code
  • POST /classes/enroll (any authenticated user) -- enroll via code
  • GET /classes/:id/roster (educator) -- enrolled students
  • GET /classes/:id/analytics (educator) -- class performance data
  • POST /classes/:id/deadlines (educator) -- assign deadline

Test plan

  • Create course, add sections and content as educator
  • Create class and verify unique enrollment code generated
  • Enroll student via code and verify roster
  • Verify duplicate enrollment returns 409 Conflict
  • Check analytics endpoint returns structured data
  • Confirm tsc --noEmit passes with 0 errors

Closes #50

🤖 Generated with Claude Code

Implement EducatorService with course/section/content CRUD, class creation
with enrollment codes, student enrollment, class roster, analytics with
at-risk detection, and deadline assignment. Add educator/student roles.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(educator): Course creation mode with class management and educator analytics

1 participant