Skip to main content
The Application router handles hackathon application submissions, RSVP management, and application status tracking.

Procedures

getStatusCount

Type: Query
Authentication: Protected (ADMIN or REVIEWER role required)
Get application status counts grouped by status.
No input parameters
status
enum
Application status (IN_REVIEW, ACCEPTED, REJECTED, WAITLISTED, RSVP, CHECKED_IN)
count
number
Number of applications with this status
Example:
const statusCounts = await trpc.application.getStatusCount.useQuery();
// Returns: [{ status: "IN_REVIEW", count: 45 }, { status: "ACCEPTED", count: 120 }, ...]

status

Type: Query
Authentication: Protected
Get the application status for the current user.
No input parameters
status
enum
The user’s application status
Example:
const myStatus = await trpc.application.status.useQuery();
// Returns: "ACCEPTED"

qr

Type: Query
Authentication: Protected
Get the QR code for the current user.
No input parameters
qrcode
string
The user’s QR code
Example:
const qrCode = await trpc.application.qr.useQuery();

rsvp

Type: Mutation
Authentication: Protected (user must have ACCEPTED status)
Submit an RSVP for an accepted application.
rsvpCheck
boolean
required
Confirmation of RSVP
dietaryRestrictions
string
Dietary restrictions or preferences
Example:
await trpc.application.rsvp.mutate({
  rsvpCheck: true,
  dietaryRestrictions: "Vegetarian, no nuts"
});

getPrevAutofill

Type: Query
Authentication: Protected
Get previous application data for autofill (from DH11 or DH10 applications).
No input parameters
firstName
string
First name from previous application
lastName
string
Last name from previous application
birthday
date
Birthday from previous application
studyEnrolledPostSecondary
boolean
Whether enrolled in post-secondary education
studyLocation
string
School/university name
studyDegree
string
Degree program
studyMajor
string
Major/field of study
Other fields
various
Additional fields from previous applications (interests, workshops, emergency contact, etc.)
Example:
const autofillData = await trpc.application.getPrevAutofill.useQuery();

submitDh12

Type: Mutation
Authentication: Protected
Submit a DeltaHacks 12 application.
firstName
string
required
First name (1-255 characters)
lastName
string
required
Last name (1-255 characters)
birthday
date
required
Date of birth (must be at least 13 years old)
phone
string
Valid mobile phone number
country
string
required
Country of residence
studyEnrolledPostSecondary
boolean
required
Whether enrolled in post-secondary education
studyLocation
string
School/university name
studyDegree
string
Degree program
studyMajor
string
Major/field of study
studyYearOfStudy
string
Current year of study
studyExpectedGraduation
date
Expected graduation date
previousHackathonsCount
number
required
Number of previous hackathons attended (minimum 0)
longAnswerSocratica
string
required
Answer to Socratica question (max 150 words)
longAnswerHobby
string
required
Answer to hobby question (max 150 words)
longAnswerWhy
string
required
Answer to “why” question (max 150 words)
longAnswerTime
string
required
Answer to time question (max 150 words)
longAnswerSkill
string
required
Answer to skill question (max 150 words)
socialText
string[]
required
Social media links
interests
string
Interests (max 150 words)
Link to resume
tshirtSize
enum
required
T-shirt size (XS, S, M, L, XL)
hackerKind
string[]
required
Types of hacking interests (at least 1 required)
alreadyHaveTeam
boolean
required
Whether the applicant already has a team
workshopChoices
string[]
required
Workshop preferences
discoverdFrom
string[]
required
How the applicant heard about DeltaHacks (at least 1 required)
considerCoffee
boolean
required
Whether to consider coffee chat
dietaryRestrictions
string
Dietary restrictions
underrepresented
enum
Underrepresented status (YES, NO, UNSURE)
gender
string
Gender identity
race
string
Race/ethnicity
orientation
string
Sexual orientation
emergencyContactName
string
required
Emergency contact name
emergencyContactPhone
string
required
Emergency contact phone (must be valid)
emergencyContactRelation
string
required
Relationship to emergency contact
agreeToMLHCodeOfConduct
boolean
required
Must be true
agreeToMLHPrivacyPolicy
boolean
required
Must be true
agreeToMLHCommunications
boolean
required
MLH communications consent
Example:
await trpc.application.submitDh12.mutate({
  firstName: "John",
  lastName: "Doe",
  birthday: new Date("2000-01-01"),
  country: "Canada",
  studyEnrolledPostSecondary: true,
  studyLocation: "McMaster University",
  // ... other required fields
});

deleteApplication

Type: Mutation
Authentication: Protected
Delete the current user’s DH12 application.
No input parameters
Example:
await trpc.application.deleteApplication.mutate();

getWifiConfig

Type: Query
Authentication: Protected
Get WiFi configuration for the event.
No input parameters
name
string
WiFi network name
password
string
WiFi password
Example:
const wifi = await trpc.application.getWifiConfig.useQuery();
// Returns: { name: "DeltaHacks", password: "secret123" }

Build docs developers (and LLMs) love