From aa21b14cecd53ea61a44148ebe8b3a84c1926ad9 Mon Sep 17 00:00:00 2001 From: jancabala <66017111+jancabala@users.noreply.github.com> Date: Fri, 21 Mar 2025 14:01:00 +0000 Subject: [PATCH 1/3] Add new activities and participant validation to signup function --- src/app.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/app.py b/src/app.py index fd0c462..81c2bf2 100644 --- a/src/app.py +++ b/src/app.py @@ -38,6 +38,42 @@ "schedule": "Mondays, Wednesdays, Fridays, 2:00 PM - 3:00 PM", "max_participants": 30, "participants": ["john@mergington.edu", "olivia@mergington.edu"] + }, + "Soccer Team": { + "description": "Join the school soccer team and compete in matches", + "schedule": "Tuesdays and Thursdays, 4:00 PM - 5:30 PM", + "max_participants": 22, + "participants": ["liam@mergington.edu", "noah@mergington.edu"] + }, + "Basketball Team": { + "description": "Practice and compete in basketball tournaments", + "schedule": "Wednesdays and Fridays, 3:30 PM - 5:00 PM", + "max_participants": 15, + "participants": ["ava@mergington.edu", "mia@mergington.edu"] + }, + "Art Club": { + "description": "Explore various art techniques and create your own masterpieces", + "schedule": "Thursdays, 3:30 PM - 5:00 PM", + "max_participants": 15, + "participants": ["amelia@mergington.edu", "harper@mergington.edu"] + }, + "Drama Club": { + "description": "Participate in plays and improve your acting skills", + "schedule": "Mondays and Wednesdays, 4:00 PM - 5:30 PM", + "max_participants": 20, + "participants": ["elijah@mergington.edu", "isabella@mergington.edu"] + }, + "Math Club": { + "description": "Solve challenging math problems and prepare for competitions", + "schedule": "Tuesdays, 3:30 PM - 4:30 PM", + "max_participants": 10, + "participants": ["james@mergington.edu", "charlotte@mergington.edu"] + }, + "Debate Team": { + "description": "Develop public speaking and argumentation skills", + "schedule": "Fridays, 4:00 PM - 5:30 PM", + "max_participants": 12, + "participants": ["benjamin@mergington.edu", "evelyn@mergington.edu"] } } @@ -62,6 +98,10 @@ def signup_for_activity(activity_name: str, email: str): # Get the specificy activity activity = activities[activity_name] + # Validate student is not already signed up + if email in activity["participants"]: + return {"message": f"{email} is already signed up for {activity_name}"} + # Add student activity["participants"].append(email) return {"message": f"Signed up {email} for {activity_name}"} From 96392ef8b77fe4c45d0645a904611ee0bbebb0aa Mon Sep 17 00:00:00 2001 From: jancabala <66017111+jancabala@users.noreply.github.com> Date: Fri, 21 Mar 2025 14:08:11 +0000 Subject: [PATCH 2/3] Display participants in activity details --- src/static/app.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/static/app.js b/src/static/app.js index dcc1e38..2f3b9f3 100644 --- a/src/static/app.js +++ b/src/static/app.js @@ -25,6 +25,7 @@ document.addEventListener("DOMContentLoaded", () => {
${details.description}
Schedule: ${details.schedule}
Availability: ${spotsLeft} spots left
+Participants: ${details.participants.length > 0 ? details.participants.join(", ") : "None"}
`; activitiesList.appendChild(activityCard); From 28d57ca80837a19375b4b4c7fc77cddff213eee0 Mon Sep 17 00:00:00 2001 From: jancabala <66017111+jancabala@users.noreply.github.com> Date: Fri, 21 Mar 2025 14:18:05 +0000 Subject: [PATCH 3/3] Enhance participant display in activity details with styled elements --- src/static/app.js | 6 +++++- src/static/styles.css | 10 ++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/static/app.js b/src/static/app.js index 2f3b9f3..77e162d 100644 --- a/src/static/app.js +++ b/src/static/app.js @@ -25,7 +25,11 @@ document.addEventListener("DOMContentLoaded", () => {${details.description}
Schedule: ${details.schedule}
Availability: ${spotsLeft} spots left
-Participants: ${details.participants.length > 0 ? details.participants.join(", ") : "None"}
+Participants: ${ + details.participants.length > 0 + ? details.participants.map(participant => `${participant}`).join(" ") + : "None" + }
`; activitiesList.appendChild(activityCard); diff --git a/src/static/styles.css b/src/static/styles.css index a533b32..a2fb328 100644 --- a/src/static/styles.css +++ b/src/static/styles.css @@ -74,6 +74,16 @@ section h3 { margin-bottom: 8px; } +.activity-card .participant { + background-color: #e8f5e9; + color: #2e7d32; + padding: 2px 5px; + border-radius: 3px; + display: inline-block; + margin-right: 5px; + margin-bottom: 5px; +} + .form-group { margin-bottom: 15px; }