Skip to content

Concepts

Sam Der edited this page Nov 20, 2024 · 2 revisions

Backend Routes

For a comprehensive list of the FastAPI routes, please refer to the generated ReDoc API documentation and the Swagger API documentation.

User IDs (UIDs)

A UID, in the context of our site, is a different representation of a user's email. It generally follows the format of the email domain in reverse, followed by the username. For example, the UID for [email protected] is edu.uci.sder.

Sometimes, a username can contain dots in it. In these cases, we would insert an additional .. If the email was [email protected], then the corresponding UID would be com.gmail.albert..wang.

Decisions

A Decision represents whether an applicant has been accepted, rejected, or waitlisted.

class Decision(str, Enum):
    ACCEPTED = "ACCEPTED"
    WAITLISTED = "WAITLISTED"
    REJECTED = "REJECTED"

Roles

A Role indicates the type of participant at our hackathon, so that we know which pages are viewable for them and which pages should be hidden. Additionally, it will also allow us to control the actions a user can take. For example, only directors can access routes that send out emails to participants. Currently, the following roles exist in the application:

class Role(str, Enum):
    APPLICANT = "applicant"
    DIRECTOR = "director"
    HACKER = "hacker"
    MENTOR = "mentor"
    REVIEWER = "reviewer"
    ORGANIZER = "organizer"
    VOLUNTEER = "volunteer"
    CHECKIN_LEAD = "checkin_lead"
    SPONSOR = "sponsor"
    JUDGE = "judge"
    WORKSHOP_LEAD = "workshop_lead"

Status

A Status represents a participant's status in terms of where they are in the process of attending the event.

class Status(str, Enum):
    PENDING_REVIEW = "PENDING_REVIEW"
    REVIEWED = "REVIEWED"
    WAIVER_SIGNED = "WAIVER_SIGNED"
    CONFIRMED = "CONFIRMED"
    ATTENDING = "ATTENDING"
    VOID = "VOID"
  • PENDING_REVIEW and REVIEWED indicate whether a hacker's application has been reviewed or not.
  • WAIVER_SIGNED indicates whether a user has signed the DocuSign waiver. Note that other participants, not just hackers, must sign the waiver.
  • CONFIRMED means that a user has confirmed their attendance and will be attending the event
  • ATTENDING and VOID are used after RSVP deadlines to indicate whether an applicant RSVP'd before the deadline or not. If an accepted user's status was not CONFIRMED (i.e. either ACCEPTED or WAIVER_SIGNED), then during enforcement of an RSVP deadline, their status would change to VOID. Otherwise, it would change to ATTENDING.