-
Notifications
You must be signed in to change notification settings - Fork 24
Event Applications
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.
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, runrake application:autocomplete
- A list of universities is stored in the database for autocompletion, and imported from
- Major (required)
- A list of majors is stored in the database for autocompletion, and imported from
db/application_autocomplete/majors-list.csv
. To load the default set of majors, runrake application:autocomplete
- A list of majors is stored in the database for autocompletion, and imported from
- 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 variablesAZURE_STORAGE_ACCOUNT
,AZURE_STORAGE_ACCESS_KEY
, andAZURE_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.
- Resumes are uploaded into an Azure storage container using Paperclip, as configured in
- (All custom fields are inputted into the field here.)
- Please agree to the following terms and conditions (required)
- The TOC content of this field is customizable in
hackathon-config/copy/event_applications/form_liability_agreement.html.erb
- This field is hidden if configuration option
hide_event_toc
is true.
- The TOC content of this field is customizable in
- Please agree to the following MLH terms and conditions (required)
- The TOC content of this field is customizable in
hackathon-config/copy/event_applications/form_liability_mlh.html.erb
- This field is hidden if configuration option
hide_mlh_toc
is true.
- The TOC content of this field is customizable in
All other application questions can be customized in the event_application.yml
file inside the hackathon-config submodule.
Here is the default set of application questions in Dashboard:
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 IDhow_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.
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.
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.