| Version 1 (modified by , 8 days ago) ( diff ) |
|---|
UC0003 - RSVP or Announce Absence for Activity Session
Initiating actor: Member
A Member views upcoming activity sessions, submits an RSVP, or announces an absence. The scenario uses Nikola Spasovski as the logged-in member.
Scenario
- The Member opens the list of upcoming activity sessions.
- The application lists upcoming sessions with the member's current RSVP and attendance status.
SELECT
a.at_name,
a.as_start_time,
a.as_location,
COALESCE(p.rsvp_status, 'no_response') AS rsvp_status,
p.rsvp_at,
COALESCE(p.attendance_status, 'not_checked') AS attendance_status
FROM activity_sessions a
LEFT JOIN participation p
ON p.at_name = a.at_name
AND p.as_start_time = a.as_start_time
AND p.as_location = a.as_location
AND p.student_index = 230014
WHERE a.as_start_time >= CURRENT_TIMESTAMP
ORDER BY a.as_start_time, a.at_name;
- The Member chooses the IT workshop and marks that they are going.
- The application stores the RSVP.
INSERT INTO participation (
student_index,
at_name,
as_start_time,
as_location,
rsvp_status,
rsvp_at,
attendance_status
)
VALUES (
230014,
'IT Workshop',
TIMESTAMP '2026-11-26 17:00:00',
'Base42',
'going',
CURRENT_TIMESTAMP,
'not_checked'
);
- The Member enters an absence reason for the Hackathon core team meeting.
- The application stores the absence announcement.
INSERT INTO announces_absence (
student_index,
at_name,
as_start_time,
as_location,
reason,
announced_at
)
VALUES (
230014,
'Core Team Meeting',
TIMESTAMP '2026-12-01 18:30:00',
'BEST Office',
'Faculty obligations at the same time.',
CURRENT_TIMESTAMP
);
- The application updates the participation status for the same session.
UPDATE participation
SET
rsvp_status = 'not_going',
rsvp_at = CURRENT_TIMESTAMP,
attendance_status = 'excused'
WHERE student_index = 230014
AND at_name = 'Core Team Meeting'
AND as_start_time = TIMESTAMP '2026-12-01 18:30:00'
AND as_location = 'BEST Office';
- The application shows the saved absence and updated participation status.
SELECT
p.student_index,
p.at_name,
p.as_start_time,
p.as_location,
p.rsvp_status,
p.rsvp_at,
p.attendance_status,
aa.reason,
aa.announced_at
FROM participation p
LEFT JOIN announces_absence aa
ON aa.student_index = p.student_index
AND aa.at_name = p.at_name
AND aa.as_start_time = p.as_start_time
AND aa.as_location = p.as_location
WHERE p.student_index = 230014
AND p.at_name = 'Core Team Meeting'
AND p.as_start_time = TIMESTAMP '2026-12-01 18:30:00'
AND p.as_location = 'BEST Office';
Note:
See TracWiki
for help on using the wiki.
