Assignment Resources Platform Capstone
A Design-Based Research capstone building an Assignment Resources platform โ automatic CI-driven assignment creation from page frontmatter, URL and file submissions embedded in every lesson, a role-gated review dashboard with inline grading and edit/delete, and a student grade viewer showing grades, feedback, and status badges.
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.
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
- 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
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
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
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
Planned Features
Mentor Dashboard
Centralized view for mentors to track assigned capstone groups, student progress, and session notes in one place.
Guest Role
Read-only access for visitors to browse public OCS content without requiring a full account.