# User Progress Backend ## Purpose `user_progress` stores current-user progress for narrow staff workflows such as learned sign language items and zone check-ins. The backend owns tenant scope, user ownership, and persistence. ## API All routes require JWT authentication. - `GET /api/user_progress?progress_type=`: returns current user's progress rows for the requested type. - `GET /api/user_progress?progress_type=&item_id=`: returns current user's progress for one item. - `POST /api/user_progress`: creates or updates one progress item and returns the saved DTO. - `DELETE /api/user_progress/by-item?progress_type=&item_id=`: deletes current user's progress for one item. ## Supported Initial Types - `sign_learned` - `zone_checkin` ## Data Contract Required mutation fields: - `progress_type` - `item_id` Optional mutation fields: - `value` - `score` - `metadata` The backend assigns `organizationId`, `campusId`, and `userId` from the authenticated user. Frontend-provided user names or roles are not trusted for ownership.