[P1] Complete Instructor Role implementation (#42) #95

Open
opened 2026-07-07 16:21:55 +12:00 by fastie81 · 0 comments
Owner

Problem

Issue #42 "Implement Instructor Role" is open but role exists partially:

  • app/core/entities/models.py defines Instructor in USER_ROLES (line 9)
  • ROLE_PERMISSIONS has minimal permissions for Instructor (lines 27-35)
  • No dedicated Instructor dashboard/page in frontend
  • No instructor-specific API endpoints

Expected Behavior

  • Instructor can mark attendance for their classes
  • Instructor can view class rosters
  • Instructor can enter grading results
  • Instructor dashboard in frontend (frontend/src/pages/dashboard/InstructorDashboard.tsx)
  • API endpoints for instructor actions

Current Permissions (models.py)

"Instructor": {
    "manage_clubs": False,
    "manage_system_admins": False,
    "manage_oauth2": False,
    "manage_users": False,
    "view_all_clubs": False,
    "manage_club_data": False,
    "edit_members": False,
    "mark_attendance": True,   # Only this permission
    "manage_gradings": False,
}
  • app/core/entities/models.py (USER_ROLES, ROLE_PERMISSIONS)
  • frontend/src/pages/dashboard/ (need InstructorDashboard.tsx)
  • app/core/operations/attendance_ops.py (mark_attendance permission check)
  • API routes in app/interfaces/api/
### Problem Issue #42 "Implement Instructor Role" is open but role exists partially: - `app/core/entities/models.py` defines `Instructor` in `USER_ROLES` (line 9) - `ROLE_PERMISSIONS` has minimal permissions for Instructor (lines 27-35) - No dedicated Instructor dashboard/page in frontend - No instructor-specific API endpoints ### Expected Behavior - Instructor can mark attendance for their classes - Instructor can view class rosters - Instructor can enter grading results - Instructor dashboard in frontend (`frontend/src/pages/dashboard/InstructorDashboard.tsx`) - API endpoints for instructor actions ### Current Permissions (models.py) ```python "Instructor": { "manage_clubs": False, "manage_system_admins": False, "manage_oauth2": False, "manage_users": False, "view_all_clubs": False, "manage_club_data": False, "edit_members": False, "mark_attendance": True, # Only this permission "manage_gradings": False, } ``` ### Related Files - `app/core/entities/models.py` (USER_ROLES, ROLE_PERMISSIONS) - `frontend/src/pages/dashboard/` (need InstructorDashboard.tsx) - `app/core/operations/attendance_ops.py` (mark_attendance permission check) - API routes in `app/interfaces/api/`
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
fastie81/honbu-manager#95
No description provided.