Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions src/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,42 @@
"schedule": "Mondays, Wednesdays, Fridays, 2:00 PM - 3:00 PM",
"max_participants": 30,
"participants": ["john@mergington.edu", "olivia@mergington.edu"]
},
"Basketball Team": {
"description": "Competitive basketball training and games",
"schedule": "Tuesdays and Thursdays, 4:00 PM - 6:00 PM",
"max_participants": 15,
"participants": []
},
"Swimming Club": {
"description": "Swimming training and competitions",
"schedule": "Mondays and Wednesdays, 3:30 PM - 5:00 PM",
"max_participants": 20,
"participants": []
},
"Art Studio": {
"description": "Express creativity through various art mediums",
"schedule": "Wednesdays, 3:30 PM - 5:30 PM",
"max_participants": 15,
"participants": []
},
"Drama Club": {
"description": "Theater arts and performance training",
"schedule": "Tuesdays and Thursdays, 3:30 PM - 5:00 PM",
"max_participants": 25,
"participants": []
},
"Debate Team": {
"description": "Learn argumentation and public speaking skills",
"schedule": "Mondays, 4:00 PM - 5:30 PM",
"max_participants": 16,
"participants": []
},
"Science Club": {
"description": "Hands-on experiments and scientific exploration",
"schedule": "Fridays, 3:30 PM - 5:00 PM",
"max_participants": 20,
"participants": []
}
}

Expand All @@ -62,6 +98,10 @@ def signup_for_activity(activity_name: str, email: str):
# Get the specific activity
activity = activities[activity_name]

#Validate student does not already exist
if email in activity["participants"]:
raise HTTPException(status_code=400, detail="Student already signed up")

# Add student
activity["participants"].append(email)
return {"message": f"Signed up {email} for {activity_name}"}
9 changes: 9 additions & 0 deletions src/static/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,15 @@ document.addEventListener("DOMContentLoaded", () => {
<p>${details.description}</p>
<p><strong>Schedule:</strong> ${details.schedule}</p>
<p><strong>Availability:</strong> ${spotsLeft} spots left</p>
<div class="participants-section">
<h5>Current Participants:</h5>
${details.participants.length > 0
? `<ul class="participants-list">
${details.participants.map(email => `<li>${email}</li>`).join('')}
</ul>`
: '<p>No participants yet</p>'
}
</div>
`;

activitiesList.appendChild(activityCard);
Expand Down
32 changes: 32 additions & 0 deletions src/static/styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,38 @@ section h3 {
margin-bottom: 8px;
}

.participants-section {
margin-top: 12px;
padding-top: 12px;
border-top: 1px solid #ddd;
}

.participants-section h5 {
color: #555;
font-size: 0.9em;
margin-bottom: 8px;
}

.participants-list {
list-style-type: none;
margin-left: 10px;
}

.participants-list li {
color: #666;
font-size: 0.85em;
padding: 2px 0;
position: relative;
padding-left: 15px;
}

.participants-list li::before {
content: "•";
position: absolute;
left: 0;
color: #1a237e;
}

.form-group {
margin-bottom: 15px;
}
Expand Down