OCS Assignment Tracker — Los Chuds Capstone
A complete ecosystem for managing assignment submissions, grading, and file delivery — with automatic CI-driven assignment sync, role-gated dashboards, and secure JWT-authenticated APIs.
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.