Hackathon registration and management platform for compsigh hackathons.
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
- Participant registration and profile management
- Admin dashboard to view participants
- Event agenda and FAQ
- Photo gallery
You can use Nix or direnv to automatically set up the development environment:
- Nix: Run
nix developto enter the development shell - direnv: If you have direnv installed, it will automatically load the environment when you
cdinto the project
-
Install dependencies:
bun install
-
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 secretFor 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.
-
Start the database:
./start-database.sh
-
Run database migrations:
bun db:push
-
Start the development server:
bun dev
bun dev- Start development serverbun build- Build for productionbun db:studio- Open Prisma Studiobun db:push- Push schema changes to databasebun check- Run ESLint and TypeScript type checkingbun format:check- Check formattingbun format:write- Write formatted codebun preview- Preview production buildbun start- Start production server