wiki:UseCase0004

Version 1 (modified by 236024, 8 days ago) ( diff )

--

UC0004 - Check Full Member Meeting Attendance

Initiating actor: Board Member

A Board Member records attendance for a Full Member Meeting. The scenario checks attendance for the Full Member Meeting held on 12 March 2026.

Scenario

  1. The Board Member opens the attendance screen for the Full Member Meeting.
  1. The application lists full members with their RSVP, attendance status, and absence reason if one exists.
SELECT
    s.student_index,
    s.first_name,
    s.last_name,
    COALESCE(p.rsvp_status, 'no_response') AS rsvp_status,
    COALESCE(p.attendance_status, 'not_checked') AS attendance_status,
    aa.reason
FROM full_members fm
JOIN students s
    ON s.student_index = fm.student_index
LEFT JOIN participation p
    ON p.student_index = fm.student_index
   AND p.at_name = 'Full Member Meeting'
   AND p.as_start_time = TIMESTAMP '2026-03-12 18:00:00'
   AND p.as_location = 'BEST Office'
LEFT JOIN announces_absence aa
    ON aa.student_index = fm.student_index
   AND aa.at_name = 'Full Member Meeting'
   AND aa.as_start_time = TIMESTAMP '2026-03-12 18:00:00'
   AND aa.as_location = 'BEST Office'
ORDER BY s.last_name, s.first_name;
  1. The Board Member marks Mila Jovanovska as excused.
  1. The application updates the attendance status.
UPDATE participation
SET attendance_status = 'excused'
WHERE student_index = 230005
  AND at_name = 'Full Member Meeting'
  AND as_start_time = TIMESTAMP '2026-03-12 18:00:00'
  AND as_location = 'BEST Office';
  1. The application refreshes the attendance list.
SELECT
    p.student_index,
    s.first_name,
    s.last_name,
    p.rsvp_status,
    p.rsvp_at,
    p.attendance_status
FROM participation p
JOIN students s
    ON s.student_index = p.student_index
WHERE p.at_name = 'Full Member Meeting'
  AND p.as_start_time = TIMESTAMP '2026-03-12 18:00:00'
  AND p.as_location = 'BEST Office'
ORDER BY s.last_name, s.first_name;
Note: See TracWiki for help on using the wiki.