- Get a list of members (applicants) filtered by status (accepted/undecided/waitlisted/rejected) with appropriate details (as columns)
- Get a list of members (applicants) filtered by inactivity (either graduation year passed or low attendance) with appropriate details (as columns)
- Update applicant statuses (accept/waitlist/reject) with ability to mass select applicants
- Notify (email) selected members (applicants) using predefined email templates or custom email template
- Get a list of members/attendees with their attendance across sessions and tech hours
- Mark attendance for members and attendees alike
NOTE: Attendees are defined as people who attend our sessions, but are not necessarily members. The attendance tracking should track for both attendees (including members) and members who are not attendees.
- React (TypeScript): Ideal tooling for building web applications, especially in context of future projects. Usage of TypeScript ensures strong typing, with added work for creating custom typings for non-typed npm packages.
- Firebase Cloud Functions (TypeScript): CICapi is built on Flask, so we could either integrate it into this (monolith), or deploy as microservices. Using Firebase Functions allow us to not worry about deploying CICapi on
HerokuRender anymore, while providing easier interfacing with Firebase Realtime Database. - Firebase Realtime Database (Firebase): Currently, the members are stored on a Firebase Realtime Database instance.