Skip to content

compsigh/hackathon

Repository files navigation

compsigh Hackathon Platform

Static Badge

Hackathon registration and management platform for compsigh hackathons.

Tech Stack

Based on the T3 stack

  • Next.js 15 - React framework
  • tRPC - End-to-end typesafe APIs
  • Prisma - Database ORM
  • NextAuth.js - Authentication (Google OAuth)
  • PostgreSQL - Database
  • Tailwind CSS - Styling

Features

  • Participant registration and profile management
  • Admin dashboard to view participants
  • Event agenda and FAQ
  • Photo gallery

Getting Started

You can use Nix or direnv to automatically set up the development environment:

  • Nix: Run nix develop to enter the development shell
  • direnv: If you have direnv installed, it will automatically load the environment when you cd into the project
  1. Install dependencies:

    bun install
  2. Set up environment variables (create .env):

    DATABASE_URL="postgresql://postgres:postgres@localhost:5432/hackathon"
    GOOGLE_CLIENT_ID="your-google-client-id" # 
    GOOGLE_CLIENT_SECRET="your-google-client-secret"
    AUTH_SECRET="your-auth-secret"

    For the AUTH_SECRET use bunx auth secret

    For the GOOGLE_CLIENT env vars, use bunx vercel env pull --environment development if you are a part of this project, or go to google cloud and make your own.

  3. Start the database:

    ./start-database.sh
  4. Run database migrations:

    bun db:push
  5. Start the development server:

    bun dev

Scripts

  • bun dev - Start development server
  • bun build - Build for production
  • bun db:studio - Open Prisma Studio
  • bun db:push - Push schema changes to database
  • bun check - Run ESLint and TypeScript type checking
  • bun format:check - Check formatting
  • bun format:write - Write formatted code
  • bun preview - Preview production build
  • bun start - Start production server