Skip to content

Event Applications

Khiem Nguyen edited this page Oct 2, 2023 · 3 revisions

Summary

The registration component was created so that applicants have a way to apply to the HackUMass event, while organizers have a way to easily accept, deny, waitlist, or flag applications.

Default Application Questions

The core philosophy behind the way in which questions are stored is that some questions fields -- namely, those listed below -- are persistent, while others are custom and can be defined in the configuration repository:

  • Full Name (required)
  • Phone
  • Age (required)
  • Gender identity (required)
    • Man
    • Woman
    • Non-binary
    • Agender
    • Other
  • Pronouns (required)
    • he/him
    • she/her
    • they/them
    • ze/zir
    • Other
  • Education Level (required)
    • High School Student
    • College Freshman
    • College Sophomore
    • College Junior
    • College Senior
    • Masters
    • PhD
  • University (required)
    • A list of universities is stored in the database for autocompletion, and imported from db/application_autocomplete/colleges.csv. To load the default set of universities, run rake application:autocomplete
  • Major (required)
  • Do you have any food allergies? (required)
  • T-Shirt size (required)
  • Resume (optional)
    • Resumes are uploaded into an Azure storage container using Paperclip, as configured in config/environments/production.rb. Set environment variables AZURE_STORAGE_ACCOUNT, AZURE_STORAGE_ACCESS_KEY, and AZURE_CONTAINER_NAME.
    • Resumes are also put through a simplified check, to reduce the possibility of people posting random PDF files as their resume. (Yes, this does happen. A lot.) If this check fails, the application is flagged to allow for manual checks of the user's application.
  • (All custom fields are inputted into the field here.)
  • Please agree to the following terms and conditions (required)
  • Please agree to the following MLH terms and conditions (required)

All other application questions can be customized in the event_application.yml file inside the hackathon-config submodule.

Screenshot

Here is the default set of application questions in Dashboard:

Custom Application Questions

The event_application.yml file provides customization for this component. Here is a sample configuration, which is described below:

options:
  hide_event_toc: False
  hide_mlh_toc: False
  min_resume_age: 17
custom_fields:
 - name: github_url
   label: 'GitHub URL'
   validate_regex: '\A(https:\/\/)?(www.)?github.com\/\S+\z'
   validate_error: 'Your Github URL is invalid. Example format: https://github.com/yourprofile'
   required: False
 - name: been_to_hackathon
   label: 'Have you been to a hackathon before?'
   type: boolean
   required: True
   toggle_field: how_many_hackathons
 - name: how_many_hackathons
   label: 'About how many hackathons have you attended?'
   type: select
   options:
    - 1
    - 2
    - 3
    - 4
    - 5 or more
   hidden: True
 - name: programming_skills
   label: "Programming Skills (select all that apply, and if you don't know many that's okay!)"
   type: multiselect
   options:
    - HTML/CSS
    - Javascript/Node
    - PHP
    - SQL
    - Ruby
    - Java
    - Kotlin
    - Swift
    - Objective C
    - C/C++/C#
    - Python
   required: False
 - name: other_skills
   label: 'Other skills'
   type: textarea
   max_chars: 500
   required: False

This configuration sets the following options:

  • The event terms and conditions are enabled
  • The MLH terms and conditions are enabled
  • Uploading a resume is required for all participants older than age 17.

The following custom application questions were set:

  • GitHub URL, which is an optional text field which, if its value is set, must abide by the given regex.
  • Have you been to a hackathon before?, which is a required boolean field. If the selected value of the field is True, then the field with ID how_many_hackathons is displayed in the form.
  • About how many hackathons have you attended?, which is a single-select field with the given options. It is hidden by default, and only displayed in the form when the above boolean field is selected as true.
  • Programming Skills, which is a multi-select optional field with the given options.
  • Other Skills, which is an optional textarea field with 500 maximum number of allowed characters.

Take a look at the event_application.yml file in the sample RedPandaHacks config file for more examples.

An Organizer's View

With the Event Applications feature flag enabled, click 'Applications' in the nav bar. On this page, you will see a summary of all of the applications to your event and their application status.

Clicking on an individual application, you can view all of the details filled out by the applicant as well as their resume, and accept/deny/waitlist/flag them.

Pressing Accept, Deny, or Waitlist will immediately send an email to the participant informing them of their application status. Due to this behavior, HackUMass typically goes through periodically while applications are open, flags applications which look suspicious, manually denies participants as need be, and uses a script (rake admissions:admissions) which automatically accepts non-flagged participants all at once.

A Participant's View

Once a participant has created an account, the index page of Dashboard will prompt them to start their event application (template: hackathon-config/copy/shared/home_pages/new_user_applications_open.html.erb:

If applications are closed (applications.mode is set to closed in hackathon.yml, or the Applications feature flag is disabled), then they will see this message (template: hackathon-config/copy/shared/home_pages/new_user_applications_closed.html.erb:

If applications are waitlist-only (applications.mode is set to waitlist in hackathon.yml, or the Applications feature flag is disabled), then they will see this message (template: hackathon-config/copy/shared/home_pages/new_user_applications_waitlisted.html.erb:

Once the user has submitted their application, they will see this message (template: hackathon-config/copy/shared/home_pages/undecided_participant.html.erb:

The participant will also be able to edit their application by clicking on 'My Application' in the navbar.