A modern, open-source hackathon management platform that streamlines event organization, participant registration, project submissions, and judging workflows.
For detailed documentation, please visit our mdbook documentation.
- Next.js - React framework with TypeScript
- Prisma - Database ORM with CockroachDB
- tRPC - End-to-end typesafe APIs
- NextAuth.js - Authentication solution
- Tailwind CSS - Utility-first styling
- Framer Motion - Animation library
Authentication & User Management:
- GitHub OAuth integration
- Role-based access control (Admin, Organizer, Participant)
Hackathon Management:
- Create and manage hackathon events
- Custom event URLs and descriptions
- Team-based participation support
- Announcement system for event updates
Project Submissions:
- Participant project submissions
- Team member management
- Project review system
- Winner selection and marking
Judging System:
- Multi-judge scoring system
- Judge invitation and management
- Comprehensive scoring with minimum judge requirements
- Real-time scoring updates
Administrative Tools:
- Event dashboard
- Participant management
- Clone the repository:
git clone https://github.com/[raducarabat]/hackcontrol.git- Navigate to the project directory:
cd hackcontrol- Install dependencies with your favorite package manager:
# with npm:
npm install
# with pnpm:
pnpm install
# with yarn:
yarn install- Create a
.envfile in the root of the project with the following variables:
# CockroachDB connection string:
DATABASE_URL = ""
# Next-Auth config:
NEXTAUTH_SECRET="" # Generate a random string.
NEXTAUTH_URL="" # Your project url, e.g. http://localhost:3000.
# Github OAuth Provider:
GITHUB_CLIENT_ID=""
GITHUB_CLIENT_SECRET=""- Create a free cluster.
- Create a SQL user.
- To connect to the user, copy the connection string and paste it in the
.envfile, replacing theDATABASE_URLvariable.
- Click here to create new Github OAuth app.
- Go to "Client secrets" and generate new client secret and and paste it into GITHUB_CLIENT_SECRET env.
- Copy the Client ID and paste it into GITHUB_ID env.
- Run in your terminal:
# with npm:
npm run dev
# with pnpm:
pnpm run dev
# with yarn:
yarn devand open http://localhost:3000 🚀.
If you want to add a new feature, fix a bug, improve the documentation or have an idea, feel free to create an issue or submit a pull request.
This project is licensed under the MIT License.
