Admin Spec — Scheduling

Scheduling

Domain 5 of the Enhanced Candidate A navigation structure. Contains: Calendar View (NEW), Live Sessions, Upcoming Appointments, TA Schedules, Holidays. Primary workflow served: WF5 (Scheduling — reduced from 4-6 screens to 1-2 screens) Key new screen: Calendar View — unified calendar showing all live sessions and 1:1 appointments across all TAs


1. Domain Overview

Scheduling groups all time-based events: live sessions and 1:1 appointments. Previously these were split between Program (Live Sessions) and Appointments (Upcoming, TA Schedules, Holidays). In Enhanced Candidate A, they're unified under one domain with a new Calendar View providing the unified overview the admin requested (Interview: "Calendar view of all live sessions and 1:1 appointments across all TAs, filterable by gender").

Key changes:


2. Screen: Calendar View (NEW)

2.1 Purpose

Unified visual calendar of all live sessions and 1:1 appointments across all TAs. Addresses interview request for "calendar view filterable by gender."

2.2 Entry Points

2.3 Layout

Calendar grid with filter bar above. Supports week view (default) and month view toggle.

2.4 Data Displayed

Events on calendar:

Event Type Source Display Color
Live Session live_sessions table Time block with session title, level badge Blue
1:1 Appointment appointments table Time block with student name, TA name Green
Cancelled appointments with cancelled status Strikethrough, faded Gray
Rescheduled appointments where re_schedule=1 Original time shown faded, new time highlighted Orange

2.5 Filters

Filter Options Default
View Week / Month Week
TA All TAs / specific TA All
Gender All / Male / Female All (filters by TA gender)
Level All / Level 0-4 / Year 2 All
Event Type All / Live Sessions / Appointments All

2.6 Actions

Action Trigger Permission Behavior
Create Live Session "+" button on time slot or "New Session" Admin Opens create session modal
Create Appointment Click empty TA slot Admin Opens create appointment modal
View/Edit Event Click existing event Admin (edit), All (view) Opens event detail modal
Navigate Weeks ◀ ▶ arrows All Shifts week/month view
Today "Today" button All Returns to current week/month
Export "Export" button Admin Exports visible events as CSV

2.7 States

State Display
Has events Calendar with color-coded events
Empty week Calendar grid with no events. "No sessions or appointments this week."
Loading Skeleton calendar grid
Error "Unable to load schedule data." + Retry

2.8 Role Visibility


3. Screen: Live Sessions

3.1 Purpose

Schedule group learning sessions. Relocated from Program > Live Sessions.

3.2 Entry Points

3.3 Layout

Filter bar + data table

3.4 Key Changes from Current

3.5 Data Displayed

Column Source Sortable
Session Title live_sessions title Yes
Date/Time live_sessions date Yes
Level level assignment Yes
Semester semester scope Yes
Status active/completed Yes

3.6 Existing Capabilities (preserved)

3.7 Actions

All existing CRUD preserved. Admin only.

3.8 States

Standard (loaded, empty: "No live sessions for this semester.", loading, error)

3.9 Role Visibility

Admin: Full CRUD. View-Only: View only. TA: Hidden from nav (sees events on Calendar/My Schedule).


4. Screen: Upcoming Appointments

4.1 Purpose

View and manage scheduled 1:1 sessions. Relocated from Appointments > Upcoming Appointments.

4.2 Entry Points

4.3 Layout

Filter bar + data table

4.4 Data Displayed

Column Source Sortable
Date/Time appointments.apt_time Yes
Student student name via enrollment Yes
TA users.name via appointments.ta_id Yes
Group group_name.name via appointments.group_id Yes
Status Derived (upcoming/completed/cancelled/rescheduled) Yes
Rescheduled To appointments.new_apt_time No

4.5 Existing Capabilities (preserved)

4.6 Actions

Action Trigger Permission Behavior
Create Group Appointment "Create" button Admin Modal: select group, date, TA
Create Individual Appointment "Add Student Appointment" Admin Modal: search student, select date, TA
Cancel Cancel icon on row Admin Destructive confirmation
View Student Student name click All → Student Detail Page
View in Calendar "Calendar" link All → Calendar View filtered to this TA/date

4.7 States

Standard list states

4.8 Role Visibility


5. Screen: TA Schedules

5.1 Purpose

Configure when TAs are available for 1:1 booking. Relocated from Appointments > TA Schedules.

5.2 Entry Points

5.3 Layout

TA selector + weekly availability grid

5.4 Data Displayed

Field Source
TA Name Selected TA
Timezone users.timezone for selected TA
Weekly Grid Days × time slots with available/unavailable indicators
TA Holidays Personal holidays for this TA

5.5 Existing Capabilities (preserved)

5.6 Actions

Action Trigger Permission
Select TA TA dropdown Admin
Toggle Slot Click time slot Admin
Set Timezone Timezone dropdown Admin
Add TA Holiday "Add Holiday" button Admin
Clone Schedule (NEW) "Clone to [New Semester]" button Admin — copies this TA's schedule to next semester

5.7 States

5.8 Role Visibility


6. Screen: Holidays

6.1 Purpose

Define system-wide non-working days. Merged: system holidays (from Appointments > Holidays) + live session holidays (from dissolved Students Management grab-bag #14).

6.2 Entry Points

6.3 Layout

Calendar view or list view (toggle)

6.4 Data Displayed

Column Source
Holiday Name holiday title
Date holiday date
Type (NEW) System-wide / Live Sessions only / Appointments only
Affects What this holiday blocks (all sessions, appointments only, etc.)

6.5 Key Change from Current

6.6 Existing Capabilities (preserved)

6.7 Actions

Action Trigger Permission
Add Holiday "Add Holiday" button Admin
Edit Edit icon Admin
Remove Delete icon Admin (destructive)

6.8 States

Standard (loaded, empty: "No holidays configured.", loading, error)

6.9 Role Visibility

Admin: Full CRUD. View-Only: View only. TA: Hidden.