| Version 1 (modified by , 8 days ago) ( diff ) |
|---|
UC0008 - Volunteer for Event Session
Initiating actor: Member
A Member volunteers for a selected event session. The scenario uses Dario Petreski volunteering for the Company Stands session at MFS during Job Fair 2026.
Scenario
- The Member opens the volunteer opportunities for Job Fair 2026.
- The application lists event sessions and volunteer coverage.
SELECT
es.est_name,
es.es_start_time,
es.location,
es.es_title,
est.needed_no_volunteers,
COUNT(v.student_index) AS assigned_volunteers,
GREATEST(est.needed_no_volunteers - COUNT(v.student_index), 0) AS missing_volunteers
FROM event_sessions es
JOIN event_session_types est
ON est.est_name = es.est_name
LEFT JOIN volunteers v
ON v.et_name = es.et_name
AND v.event_title = es.event_title
AND v.event_start_time = es.event_start_time
AND v.est_name = es.est_name
AND v.es_start_time = es.es_start_time
AND v.location = es.location
WHERE es.et_name = 'Job Fair'
AND es.event_title = 'Job Fair 2026'
AND es.event_start_time = TIMESTAMP '2026-03-23 09:00:00'
GROUP BY
es.est_name,
es.es_start_time,
es.location,
es.es_title,
est.needed_no_volunteers
ORDER BY es.es_start_time, es.location, es.est_name;
- The Member chooses the Company Stands session at MFS.
- The application checks whether the member already volunteers at the same start time.
SELECT
v.et_name,
v.event_title,
v.est_name,
v.es_start_time,
v.location,
v.volunteer_role
FROM volunteers v
WHERE v.student_index = 230024
AND v.es_start_time = TIMESTAMP '2026-03-24 10:00:00';
- The application stores the volunteer record.
INSERT INTO volunteers (
student_index,
et_name,
event_title,
event_start_time,
est_name,
es_start_time,
location,
volunteer_role
)
VALUES (
230024,
'Job Fair',
'Job Fair 2026',
TIMESTAMP '2026-03-23 09:00:00',
'Company Stands',
TIMESTAMP '2026-03-24 10:00:00',
'MFS',
'stand support'
);
- The application refreshes the volunteer list for the selected session.
SELECT
v.student_index,
s.first_name,
s.last_name,
v.volunteer_role
FROM volunteers v
JOIN students s
ON s.student_index = v.student_index
WHERE v.et_name = 'Job Fair'
AND v.event_title = 'Job Fair 2026'
AND v.event_start_time = TIMESTAMP '2026-03-23 09:00:00'
AND v.est_name = 'Company Stands'
AND v.es_start_time = TIMESTAMP '2026-03-24 10:00:00'
AND v.location = 'MFS'
ORDER BY s.last_name, s.first_name;
Note:
See TracWiki
for help on using the wiki.
