Skip to main content

Quick Start Guide

This guide will help you get DeltaHacks Portal up and running quickly, whether you’re an organizer setting up a new event or getting familiar with the platform.

For Organizers

1

Create Your Account

Sign up using one of the supported OAuth providers:
  • Discord - Recommended for hackathon communities
  • Google - Widely used by students
  • GitHub - Popular with developers
  • LinkedIn - Professional networking
  • Azure AD - For institutional accounts
The first user to sign up is typically granted admin privileges, or you’ll need an existing admin to assign you the appropriate role.
2

Configure Your Event

Once you have admin access, configure the essential settings:Set Up Authentication ProvidersConfigure OAuth credentials in your environment variables:
# Discord Provider
DISCORD_CLIENT_ID=your_discord_client_id
DISCORD_CLIENT_SECRET=your_discord_client_secret

# Google Provider
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret

# GitHub Provider  
GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret
Configure Base Settings
# NextAuth Configuration
NEXTAUTH_SECRET=your_secure_random_string
NEXTAUTH_URL=https://your-domain.com
NEXT_PUBLIC_URL=https://your-domain.com
Generate a secure NEXTAUTH_SECRET using: openssl rand -base64 32
3

Set Up Your Database

Configure your CockroachDB connection:
DATABASE_URL="postgresql://user:password@host:26257/database?sslmode=verify-full"
For production deployments, use a managed CockroachDB cluster with SSL enabled.
Never commit your .env file to version control. Use .env.example as a template.
4

Configure Optional Services

Enable additional features by configuring these optional services:Email Notifications (SendGrid)
SENDGRID_API_KEY=your_sendgrid_api_key
File Storage (Cloudflare R2)
R2_ACCOUNT_ID=your_account_id
R2_ACCESS_KEY_ID=your_access_key
R2_SECRET_KEY_ID=your_secret_key
R2_BUCKET_NAME=your_bucket_name
Analytics (PostHog)
NEXT_PUBLIC_POSTHOG_KEY=your_posthog_key
NEXT_PUBLIC_POSTHOG_HOST=https://app.posthog.com
POSTHOG_KEY=your_posthog_key
Apple Wallet Passes
APPLE_WWDR=your_wwdr_certificate
APPLE_SIGNER_CERT=your_signer_certificate
APPLE_SIGNER_KEY=your_signer_key
APPLE_SIGNER_KEY_PASSPHRASE=your_passphrase
5

Initialize the Database

Run the Prisma migrations to set up your database schema:
npm run db:generate
npm run db:push
This will:
  • Generate the Prisma Client with TypeScript types
  • Push the schema to your database
  • Create all necessary tables and relationships
6

Invite Your Team

Assign roles to team members to distribute responsibilities:Available Roles
  • ADMIN - Full system access, can manage all features
  • REVIEWER - Can review and score hacker applications
  • JUDGE - Can score project submissions during judging
  • FOOD_MANAGER - Can scan QR codes for meal distribution
  • EVENT_MANAGER - Can check attendees into workshops and events
  • GENERAL_SCANNER - Can perform general QR code scanning
  • SPONSOR - Can view participant data and analytics
  • HACKER - Default role for all applicants
Users can have multiple roles. For example, an organizer might be both an ADMIN and a JUDGE.
7

Enable Applications

Once your event is configured, enable hacker applications:
  1. Navigate to the Admin Dashboard
  2. Configure application questions and requirements
  3. Set application open/close dates
  4. Enable the application form
The portal includes customizable application forms with:
  • Personal information (name, birthday, phone, country)
  • Academic details (school, degree, major, graduation year)
  • Experience level (previous hackathons attended)
  • Long-form questions (customizable per year)
  • Demographics (optional, for diversity tracking)
  • MLH Code of Conduct acceptance
  • Emergency contact information
  • Dietary restrictions and accessibility needs
8

Launch and Monitor

Your hackathon portal is now ready! Monitor activity through:Admin Dashboard
  • View real-time registration numbers
  • Track application review progress
  • Monitor check-in rates
  • View event participation
Analytics (if enabled)
  • User engagement metrics via PostHog
  • Application funnel analysis
  • Feature usage tracking
npm run build
npm start

Quick Reference

Essential Commands

# Start development server
npm run dev

# Build for production
npm run build

# Start production server
npm start

# Database operations
npm run db:generate    # Generate Prisma client
npm run db:push        # Push schema to database
npm run db:migrate     # Run migrations
npm run db:studio      # Open Prisma Studio

Environment Variables Checklist

DATABASE_URL           # CockroachDB connection string
NEXTAUTH_SECRET       # Random secret for session encryption
NEXTAUTH_URL          # Your application URL
NEXT_PUBLIC_URL       # Public-facing URL
# Discord
DISCORD_CLIENT_ID
DISCORD_CLIENT_SECRET

# Google
GOOGLE_CLIENT_ID
GOOGLE_CLIENT_SECRET

# GitHub
GITHUB_CLIENT_ID
GITHUB_CLIENT_SECRET

# LinkedIn
LINKEDIN_CLIENT_ID
LINKEDIN_CLIENT_SECRET

# Azure AD
AZURE_AD_CLIENT_ID
AZURE_AD_TENANT_ID
AZURE_AD_CLIENT_SECRET
# Email (SendGrid)
SENDGRID_API_KEY

# File Storage (Cloudflare R2)
R2_ACCOUNT_ID
R2_ACCESS_KEY_ID
R2_SECRET_KEY_ID
R2_BUCKET_NAME

# Analytics (PostHog)
NEXT_PUBLIC_POSTHOG_KEY
NEXT_PUBLIC_POSTHOG_HOST
POSTHOG_KEY

# Logging (LogSnag)
LOGSNAG_TOKEN

# Forms (TypeForm)
TYPEFORM_API_KEY

# Apple Wallet
APPLE_WWDR
APPLE_SIGNER_CERT
APPLE_SIGNER_KEY
APPLE_SIGNER_KEY_PASSPHRASE

Next Steps

Installation Guide

Set up a local development environment for customization

Organizer Guide

Learn advanced features for managing your hackathon

Database Schema

Understand the data model and relationships

API Reference

Explore the tRPC API endpoints
Need help? Contact the DeltaHacks tech team at [email protected] or open an issue on GitHub.

Build docs developers (and LLMs) love