Assignment Resource Management System

Complete ecosystem for managing assignment submissions, grading, and file delivery. Covers automatic assignment creation from frontmatter, URL/file submissions, a role-gated review dashboard, and a student grade viewer โ€” all secured by JWT and server-side role enforcement.

CSA Capstone ยท Spring Boot + Jekyll Team: Backend Boyz ยท Shayan B, Darshan S, Rudra J, Dhyan S, Harrish A, Lucas M, Zhengli L, Jacob C, Arnav P
Backend Boyz
Team Backend Boyz

Mentor Auth

Google OAuth-verified signup with role-based access between student and admin

  • โœ“ROLE_MENTOR added to Spring Security between ROLE_TEACHER and ROLE_ADMIN
  • โœ“Google OAuth signup โ€” PUSD emails get immediate access, others await admin approval
  • โœ“GitHub student ID validated before mentor account is activated
  • โœ“Scoped capstone project dashboard visible only to mentors and above
  • โœ“Real-time team chat via SockJS/STOMP WebSocket per capstone group
Spring Security Google OAuth2 SockJS / STOMP JWT GitHub API
  • JWTs invalidated immediately on password change โ€” no stale tokens
  • Reset tickets rate-limited per IP to block brute-force abuse
  • POST /mvc/person/reset/ticket is permitAll โ€” fixed auth requirement that blocked unauthenticated resets
  • Plaintext password sync to Flask refused over non-loopback, non-TLS URIs
  • OAuth + student ID double-verification before password reset is issued
  • POST /api/authenticate/mentor
  • POST /mvc/person/reset/ticket
  • GET /api/person/mentor/projects

Live Features

Password Reset

OAuth + student ID verified reset flow with rate-limited tickets and JWT invalidation

  • โœ“Reset ticket issued after Google OAuth + GitHub ID verification
  • โœ“Per-IP rate limiting blocks brute-force requests
  • โœ“All active JWTs invalidated on password change
Google OAuth2JWTRate Limiting

Mentor Role & Verification

ROLE_MENTOR added to Spring Security between teacher and admin with scoped dashboard access

  • โœ“New role between ROLE_TEACHER and ROLE_ADMIN
  • โœ“GitHub student ID validated before account activates
  • โœ“Scoped capstone dashboard โ€” mentors see only their groups
Spring SecurityGitHub APIJWT

Mentor Login

Google OAuth signup โ€” PUSD emails get immediate access, others await admin approval

  • โœ“Sign in via Google โ€” no separate password needed
  • โœ“PUSD domain auto-approved, external emails admin-reviewed
  • โœ“Real-time team chat per capstone group via WebSocket
Google OAuth2SockJSSTOMP

General Security

Password complexity enforced on frontend and backend โ€” bypassing the UI still gets rejected

  • โœ“Password complexity required at account creation
  • โœ“Spring and Flask both reject weak passwords on direct API calls
  • โœ“Plaintext password sync blocked over non-TLS connections
Spring BootFlaskTLS

Planned Features

Planned

Mentor Dashboard

Centralized view for mentors to track assigned capstone groups, student progress, and session notes in one place.

Planned

Guest Role

Read-only access for visitors to browse public OCS content without requiring a full account.