Modular, open-source infrastructure to run hackathons, OSS programs, and tech events β all in one place.
- About
- Problem Statement
- Features
- Screenshots
- Installation
- Common Issues & Fixes
- Architecture
- Contributing
- Roadmap
- License
EventFlow is an open-source, modular web platform that provides complete digital infrastructure to run hackathons, open-source programs, and community tech events.
It replaces scattered tools like Google Forms, Sheets, emails, and chats with one unified system.
Most tech events rely on:
- Disconnected tools
- Manual tracking
- Error-prone spreadsheets
- No reusable infrastructure
This results in confusion, inconsistent evaluation, and a poor participant experience.
EventFlow addresses these challenges by providing a reusable, modular event infrastructure engine.
- Create and manage events
- Configure timelines and rules
- Enable or disable modules per event
- Participant registration
- Role-based dashboards
- Secure access control
- Create or join teams
- Invite members
- Team size validation
- Phase-wise submissions
- GitHub repository linking
- Deadline enforcement
- Global announcements for all users
- Role-specific notifications
- Real-time updates
- Auto-generated participation certificates
- Verify credentials via unique ID
- Downloadable PDF assets
- Custom scoring rubrics
- Blind judging
- Auto-ranking and feedback
Note: The UI has been updated to a modern Dark Sci-Fi Theme with Aurora backgrounds.

Returns backend server status.
Response:
{
"success": true
}
### Prerequisites
- Node.js 18+
- pnpm or npm
- MongoDB
### Setup
1. **Clone the repository**
```bash
git clone https://github.com/R3ACTR/EventFlow.git
cd EventFlow-
Install dependencies
pnpm install
-
Configure Environment Variables Copy the example env file and update it with your credentials:
cp .env.example .env.local
Update
.env.local:MONGODB_URI=mongodb+srv://... JWT_SECRET=your_secret_key NEXTAUTH_URL=http://localhost:3000
-
Run the development server
pnpm dev
Visit: http://localhost:3000
During local development, the project uses the following default ports:
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
This distinction helps ensure frontend applications are configured to communicate with the correct backend service.
During local development, the backend API is accessible at:
The following environment variables are required to run the project correctly. Ensure they are defined before starting the application.
| Variable Name | Description |
|---|---|
| DATABASE_URL | MongoDB connection string |
| NEXTAUTH_URL | Authentication callback URL |
- These variables should be set in your environment configuration file.
- Restart the development server after updating environment variables.
This section helps contributors quickly resolve frequent setup and runtime problems.
Possible Causes
- Missing or incorrect
.envconfiguration - Dependencies not installed
Fix
- Ensure
.env.localexists and contains required variables - Run
pnpm installbefore starting the server - Restart the dev server after environment changes
Problem Authentication fails or redirects incorrectly during login.
Fix
- Ensure
NEXTAUTH_URLis correctly set in.env.local - Example:
NEXTAUTH_URL=http://localhost:3000S
This section covers frequently encountered issues and their solutions. If you're stuck, check here before opening an issue.
Problem: Application fails to start with configuration errors.
Solution: Create a .env.local file in the root directory by copying from the example:
cp .env.example .env.localProblem: MongoServerSelectionError or connection timeout.
Solution:
- Ensure MongoDB is running (locally or via MongoDB Atlas)
- Verify your
MONGODB_URIin.env.localis correct - For local MongoDB:
mongodb://localhost:27017/eventflow - For Atlas: Use your cluster connection string (must include database name)
Problem: JWSInvalidSignatureError during authentication.
Solution: Add a strong secret to your .env.local:
JWT_SECRET=your_super_secret_key_here_min_32_chars
NEXTAUTH_SECRET=your_nextauth_secretProblem: Social login fails with redirect or callback errors.
Solution:
- Ensure
NEXTAUTH_URLmatches your environment exactly:- Development:
http://localhost:3000 - Production:
https://your-domain.com
- Development:
- Add authorized callback URLs in your OAuth provider's console:
- Google:
http://localhost:3000/api/auth/callback/google - GitHub:
http://localhost:3000/api/auth/callback/github
- Google:
- Verify
GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET(and GitHub equivalents) are correctly set in.env.local
Problem: Can log in with credentials but user data doesn't appear.
Solution:
- Check MongoDB connection is working
- Ensure the User collection exists in your database
- Try registering a new account via the web interface
Problem: Error: Cannot find module or TypeScript errors.
Solution:
# Clear node_modules and reinstall
rm -rf node_modules package-lock.json
pnpm install
# Clear Next.js cache
rm -rf .next
pnpm devProblem: Type errors blocking the build.
Solution: Ensure all required env variables are defined. Missing variables can cause type inference issues. Check tsconfig.json includes appropriate paths:
{
"compilerOptions": {
"paths": {
"@/*": ["./*"]
}
}
}Problem: Error: listen EADDRINUSE: address already in use :::3000
Solution:
# Find and kill the process using port 3000
lsof -i :3000
kill -9 <PID>
# Or start on a different port
PORT=3001 pnpm devProblem: Tests fail because they can't connect to the database.
Solution: Ensure MongoDB is running and MONGODB_URI is set. For CI environments, consider using mongodb-memory-server for isolated test databases.
Problem: Missing packages during runtime.
Solution:
# Reinstall all dependencies
pnpm install
# Clear pnpm cache if needed
pnpm store pruneProblem: Build fails with syntax errors or unknown features.
Solution: Ensure you're using Node.js 18+. Check with:
node --versionUse nvm to switch versions if needed:
nvm install 18
nvm use 18Problem: Users get logged out immediately after login in production.
Solution:
- Set
NEXTAUTH_URLto your production domain - Ensure
NEXTAUTH_SECRETis set (different from JWT_SECRET recommended) - For HTTPS, ensure SSL certificates are properly configured
Problem: App works locally but fails in production.
Solution:
- Verify all required env variables are set in your hosting platform (Vercel, Netlify, etc.)
- Restart the deployment after adding new variables
- Check platform-specific variable naming requirements
βββ app/
β βββ (auth)/ # Authentication routes (Login, Register)
β βββ (dashboard)/ # Role-based dashboards (Admin, Participant, Judge)
β βββ api/ # Backend API routes
β βββ layout.js # Root layout & providers
βββ components/ # Reusable UI components
βββ models/ # Mongoose database models
βββ lib/ # Utility functions & DB connection
βββ public/ # Static assets
Built with Next.js 14 (App Router), Tailwind CSS, and MongoDB. The project uses a modular folder structure to separate concerns between auth, dashboards, and API logic. The app directory follows the Next.js 14 App Router architecture.
The models directory contains Mongoose schemas defining database structure.
Modular, role-based, and reusable by design.
Utility functions, database connection logic, and shared helpers
- Browse issues
- Get assigned by maintainer
- Make changes in your fork
- Submit a pull request
Look for:
good first issuedocumentationhelp wanted
Phase 1: Core setup
Phase 2: Teams, submissions, judging
Phase 3: Mentors, certificates, analytics
Phase 4: Performance & accessibility
Licensed under the MIT License.
See LICENSE for details.
β Star the repo if you like it
π€ Contributions are welcome