-
Notifications
You must be signed in to change notification settings - Fork 1
Admin attendance #168
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Admin attendance #168
Conversation
PrachodK
commented
Nov 7, 2025
- Add isMandatory checkbox to events modal
- Show all staff members in event attendance tab with Present/Excused/Absent status
- Add toggle button to mark staff as excused
- Use isMandatory field for filtering mandatory events
- Optimize API calls (50% faster loading)
…min-site into admin-attendance
- Add isMandatory checkbox to events modal (defaults to checked for staff events) - Show all staff members in event attendance tab with status indicators (Present/Excused/Absent) - Add excuse button to mark staff as excused/absent with toggle functionality - Update attendance page to use isMandatory field instead of event name filtering - Optimize attendance loading by reducing redundant API calls (50% reduction) - Use local state updates for excuse toggle to prevent page refresh
✅ Deploy Preview for hackillinois-admin ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work on this so far @PrachodK ! Once suggestions 1-3 are implemented we should be ready to ship this feature.
- Manually check someone in: Make the status clickable, so admin site users can manually set members as present if they have trouble signing in / forget to. Admin site users should also be able to uncheck someone as present, if they mark the wrong person as present, for instance.
Edit: We're currently blocked on this since there's no endpoint to do this.
- Only display active members: We don't have an endpoint to do this. For now, I can send a list of all active members' emails for filtering them out. I'll send a list via Discord.
Edit: We're using a workaround right now -- a list of the emails of all 2026 HackIllinois staffmembers. This will be changed as soon as the API team has a working endpoint for this.
- This should apply to the event attendance (the one pictured above) page and /attendances pages.
- Attendance modal:
- Sort the dates in ascending order (1, 8, 15, ... -- opposite of what it is now)
Edit: These are done.
-
Left-align the month with the dates
-
I tested with an AI-generated list of dummy attendances to see what this will look like a few months from now:
- Can you increase the maximum width of the modal so that all of the months are visible? This was the list I tested with:
{ date: '2025-09-01', status: 'PRESENT', eventName: 'Sprint Planning' },
{ date: '2025-09-08', status: 'PRESENT', eventName: 'Guest Talk' },
{ date: '2025-09-15', status: 'PRESENT', eventName: 'Project Check-in' },
{ date: '2025-09-22', status: 'EXCUSED', eventName: 'Workshop: Git Basics' },
{ date: '2025-09-29', status: 'PRESENT', eventName: 'Demo Day Prep' },
{ date: '2025-10-06', status: 'PRESENT', eventName: 'Sprint Planning' },
{ date: '2025-10-13', status: 'PRESENT', eventName: 'Weekly Standup' },
{ date: '2025-10-20', status: 'PRESENT', eventName: 'Guest Talk' },
{ date: '2025-10-27', status: 'ABSENT', eventName: 'Project Check-in' },
{ date: '2025-11-03', status: 'PRESENT', eventName: 'Code Review' },
{ date: '2025-11-10', status: 'PRESENT', eventName: 'Workshop: Git Basics' },
{ date: '2025-11-17', status: 'EXCUSED', eventName: 'Demo Day Prep' },
{ date: '2025-11-24', status: 'PRESENT', eventName: 'Weekly Standup' },
{ date: '2025-12-01', status: 'PRESENT', eventName: 'Guest Talk' },
{ date: '2025-12-08', status: 'PRESENT', eventName: 'Project Check-in' },
{ date: '2025-12-15', status: 'ABSENT', eventName: 'Code Review' },
{ date: '2025-12-22', status: 'PRESENT', eventName: 'Sprint Planning' },
{ date: '2025-12-29', status: 'PRESENT', eventName: 'Weekly Standup' },
{ date: '2026-01-05', status: 'PRESENT', eventName: 'Workshop: Git Basics' },
{ date: '2026-01-12', status: 'EXCUSED', eventName: 'Guest Talk' },
{ date: '2026-01-19', status: 'PRESENT', eventName: 'Project Check-in' },
{ date: '2026-01-26', status: 'PRESENT', eventName: 'Demo Day Prep' },
{ date: '2026-02-02', status: 'ABSENT', eventName: 'Weekly Standup' },
{ date: '2026-02-09', status: 'PRESENT', eventName: 'Code Review' },
{ date: '2026-02-16', status: 'PRESENT', eventName: 'Guest Talk' },
{ date: '2026-02-23', status: 'PRESENT', eventName: 'Sprint Planning' },
Other issues we should address later:
- Speed up attendance page load times: The page takes 5 seconds to load. It would probably be faster if all queries were performed on the backend and we only made one call to the backend for the data.
|
Also, I merged in |
- Sort attendance dates in ascending order - Left-align month headers with dates - Increase modal width to fit more months - Filter to show only active staff members - Fix linting and type errors - Update SDK from latest API spec
| AdmissionDecision, | ||
| AdmissionService, | ||
| RegistrationApplication, | ||
| RegistrationApplicationDraft, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This page broke as a result of the new registration drafts system. That's unrelated to this PR, but I changed RegistrationApplication to RegistrationApplicationDraft so the build test will pass.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This page should be fixed in a separate PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's ship this!
Once the API team completes the necessary endpoints, we need to add the following:
- Ability to manually update check-in statuses
- Only display attendances for active users
- Page load time speed-up