Concepts

Logic Needed to Understand the Backend

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 sder@uci.edu is edu.uci.sder.

Sometimes, a username can contain dots in it. In these cases, we would insert an additional .. If the email was albert.wang@gmail.com, 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 are related to an applicant's status in terms of whether their application has been reviewed yet.

  • WAIVER_SIGNED indicates that a user has signed the DocuSign 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 (see ...), their status would change to VOID. Otherwise, it would change to ATTENDING.

Last updated