A comprehensive platform for hackathon participants and organizers to discover events, form teams, and collaborate on projects.
- User Authentication - Secure registration and login with JWT
- Event Discovery - Browse and search hackathons and events
- Team Formation - Create teams, find teammates, and manage team requests
- Real-time Chat - WebSocket-based messaging for teams and direct messages
- User Profiles - Showcase skills, bio, and social links
- Event Management - Create and manage hackathons and events
- Skill-based Matching - Find teammates with complementary skills
- Location-based Discovery - Find local events and teams
- Real-time Notifications - Stay updated with team activities
- Responsive Design - Works seamlessly on desktop and mobile
- Next.js 15 - React framework with App Router
- TypeScript - Type-safe development
- TailwindCSS - Utility-first CSS framework
- Lucide React - Beautiful icons
- Socket.io Client - Real-time communication
- React Hook Form - Form management
- Axios - HTTP client
- Node.js - JavaScript runtime
- Express.js - Web framework
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- Socket.io - Real-time communication
- JWT - Authentication
- bcryptjs - Password hashing
- Passport.js - Authentication strategies
hackconnect/
├── frontend/ # Next.js frontend application
│ ├── app/ # App Router pages
│ │ ├── auth/ # Authentication pages
│ │ ├── dashboard/ # User dashboard
│ │ ├── events/ # Event management
│ │ └── teams/ # Team management
│ ├── components/ # Reusable UI components
│ └── lib/ # Utility functions
├── backend/ # Express.js backend API
│ ├── src/
│ │ ├── models/ # Database models
│ │ ├── routes/ # API routes
│ │ ├── middleware/ # Custom middleware
│ │ └── socket/ # Socket.io handlers
│ └── env.example # Environment variables template
└── README.md # This file
- Node.js 18+
- MongoDB (local or cloud)
- pnpm (recommended) or npm
-
Clone the repository
git clone <repository-url> cd hackconnect
-
Install dependencies
pnpm install
-
Set up environment variables
# Backend cp backend/env.example backend/.env # Edit backend/.env with your configuration
-
Start the development servers
pnpm dev
This will start:
- Frontend: http://localhost:3000
- Backend: http://localhost:5000
Create a .env
file in the backend
directory:
# Database
MONGODB_URI=mongodb://localhost:27017/hackconnect
# JWT
JWT_SECRET=your-super-secret-jwt-key-here
# Server
PORT=5000
NODE_ENV=development
# Frontend URL
FRONTEND_URL=http://localhost:3000
- Register/Login - Create an account or sign in
- Browse Events - Discover hackathons and events
- Join Teams - Find or create teams for events
- Collaborate - Use real-time chat and team tools
- Build Projects - Work together on amazing projects
- Create Events - Set up hackathons and events
- Manage Participants - Track registrations and teams
- Monitor Activity - See team formations and progress
- Engage Community - Foster collaboration and networking
POST /api/auth/register
- User registrationPOST /api/auth/login
- User loginGET /api/auth/me
- Get current userPUT /api/auth/profile
- Update user profile
GET /api/events
- Get all eventsGET /api/events/:id
- Get event by IDPOST /api/events
- Create eventPUT /api/events/:id
- Update eventDELETE /api/events/:id
- Delete event
GET /api/teams/event/:eventId
- Get teams for eventGET /api/teams/:id
- Get team by IDPOST /api/teams
- Create teamPOST /api/teams/:id/join
- Join team requestGET /api/teams/:id/requests
- Get team requestsPUT /api/teams/:id/requests/:requestId
- Handle team request
GET /api/messages/team/:teamId
- Get team messagesGET /api/messages/direct/:userId
- Get direct messagesPOST /api/messages/team/:teamId
- Send team messagePOST /api/messages/direct/:userId
- Send direct message
- Connect your GitHub repository to Vercel
- Set environment variables in Vercel dashboard
- Deploy automatically on push to main branch
- Create a new project on Railway or Heroku
- Connect your GitHub repository
- Set environment variables
- Deploy automatically
- Create a MongoDB Atlas cluster
- Get connection string
- Update
MONGODB_URI
in environment variables
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js team for the amazing framework
- TailwindCSS for the utility-first CSS
- MongoDB for the flexible database
- Socket.io for real-time communication
- All contributors and the open-source community
If you have any questions or need help, please:
- Open an issue on GitHub
- Contact the development team
- Check the documentation
Happy Hacking! 🚀