A web application for managing company hackathons, allowing employees to register, create or join teams, submit projects, and enabling judges to rate submissions.
- Authentication: Google OAuth login for company employees
- User Management: User profiles with skills and interests
- Team Formation: Create or join teams, specify required skills
- Project Submission: Submit and update project details, upload demonstrations
- Judging System: Score projects based on defined criteria
- Admin Dashboard: Manage hackathon parameters, users, and judging
- Frontend: Next.js, React, TypeScript, Tailwind CSS
- Backend: Next.js API Routes, Supabase
- Database: PostgreSQL (via Supabase)
- Authentication: Supabase Auth with Google OAuth
- Storage: Supabase Storage for video uploads
- Node.js (v18 or later)
- npm or yarn
- Supabase account
-
Clone the repository:
git clone https://github.com/yourusername/hackathon-signup.git cd hackathon-signup
-
Install dependencies:
npm install
-
Copy
.env.local.example
to.env.local
and update with your Supabase credentials:cp .env.local.example .env.local
-
Update the
.env.local
file with your Supabase URL and anon key:NEXT_PUBLIC_SUPABASE_URL=your-supabase-url NEXT_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key
-
Initialize your Supabase database with the schema:
- Navigate to the SQL Editor in your Supabase dashboard
- Copy the contents of
src/lib/supabase/schema.sql
- Run the SQL to set up your database schema
-
Run the development server:
npm run dev
-
Open http://localhost:3000 in your browser.
-
Build the application:
npm run build
-
Deploy to your preferred hosting platform (Vercel recommended for Next.js apps)
hackathon-signup/
├── docs/ # Documentation files
├── public/ # Static assets
├── src/
│ ├── app/ # Next.js App Router
│ │ ├── admin/ # Admin dashboard pages
│ │ ├── auth/ # Authentication routes
│ │ ├── dashboard/ # User dashboard
│ │ ├── login/ # Login page
│ │ ├── projects/ # Project pages
│ │ ├── teams/ # Team management pages
│ │ ├── globals.css # Global styles
│ │ ├── layout.tsx # Root layout
│ │ └── page.tsx # Homepage
│ ├── components/ # React components
│ │ ├── auth/ # Authentication components
│ │ └── navigation/ # Navigation components
│ └── lib/ # Utility functions
│ └── supabase/ # Supabase client configuration
├── .env.local.example # Example environment variables
├── next.config.js # Next.js configuration
├── package.json # Project dependencies
├── tailwind.config.js # Tailwind CSS configuration
└── tsconfig.json # TypeScript configuration
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License.
- Supabase for providing a robust backend solution
- Next.js team for the excellent framework
- Tailwind CSS for the utility-first CSS framework