Hackathon Team Builder is a web application that helps college students form effective teams for hackathons and group projects. It enables skill-based matching, efficient scheduling, and seamless collaboration between team members, fostering a welcoming environment for both beginners and experienced individuals.
πΉ Users create profiles highlighting their skills (e.g., Web Dev, Design, Product Management).
πΉ A smart matching system suggests teammates with complementary skills.
π Shared calendar and availability indicators to align schedules.
π Discover teammates outside immediate social circles with search & filter options.
πΈ AI-driven recommendations for team roles based on project requirements.
πΈ Templates & resources for dividing responsibilities.
π‘ Icebreakers & introduction templates for easy onboarding.
π Opportunities to connect with experienced peers.
π¬ Real-time chat, project boards, and file sharing for seamless teamwork.
- π Google Login integration via Firebase Authentication.
- β‘ Firestore for real-time data management.
- π Security rules for controlled access & data protection.
- π€ AI-powered teammate matching based on skills & availability.
- π Node.js (>= 16.0)
- π₯ Firebase account & project
1οΈβ£ Clone the repository:
git clone https://github.com/Sahnik0/Team-Up.git
cd project
2οΈβ£ Install dependencies:
npm install
npm install -g firebase-tools
npm install firebase
npm i --save-dev @types/react-helmet
3οΈβ£ Set up Firebase:
- Create a Firebase project.
- Enable Firestore & Authentication (Google provider).
- Add Firebase config in
src/lib/firebase.ts
:
import { initializeApp } from 'firebase/app';
import { getAuth, GoogleAuthProvider } from 'firebase/auth';
import { getFirestore } from 'firebase/firestore';
const firebaseConfig = {
apiKey: "<YOUR_API_KEY>",
authDomain: "<YOUR_AUTH_DOMAIN>",
projectId: "<YOUR_PROJECT_ID>",
storageBucket: "<YOUR_STORAGE_BUCKET>",
messagingSenderId: "<YOUR_MESSAGING_SENDER_ID>",
appId: "<YOUR_APP_ID>",
measurementId: "<YOUR_MEASUREMENT_ID>"
};
const app = initializeApp(firebaseConfig);
export const auth = getAuth(app);
export const googleProvider = new GoogleAuthProvider();
export const db = getFirestore(app);
4οΈβ£ Create an env file:
VITE_FIREBASE_API_KEY="<YOUR_API_KEY>"
VITE_FIREBASE_AUTH_DOMAIN="<YOUR_AUTH_DOMAIN>"
VITE_FIREBASE_PROJECT_ID="<YOUR_PROJECT_ID>"
VITE_FIREBASE_STORAGE_BUCKET="<YOUR_STORAGE_BUCKET>"
VITE_FIREBASE_MESSAGING_SENDER_ID="<YOUR_MESSAGE_SENDER_ID>"
VITE_FIREBASE_APP_ID="<YOUR_APP_ID>"
VITE_FIREBASE_MEASUREMENT_ID="<YOUR_MEASUREMENT_ID>"
4οΈβ£ Start the development server:
npm run dev
5οΈβ£ Open in browser:
http://localhost:5173
1οΈβ£ Build the project:
npm run build
2οΈβ£ Deploy to Firebase:
firebase deploy
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId} {
allow read: if request.auth != null;
allow write: if request.auth != null && request.auth.uid == userId;
}
match /teams/{teamId} {
allow read: if request.auth != null && resource.data.members.hasAny([request.auth.uid]);
allow create: if request.auth != null && request.resource.data.members.hasAny([request.auth.uid]);
}
match /messages/{messageId} {
allow read: if request.auth != null;
allow create: if request.auth != null &&
exists(/databases/$(database)/documents/teams/$(request.resource.data.teamId)) &&
get(/databases/$(database)/documents/teams/$(request.resource.data.teamId)).data.members.hasAny([request.auth.uid]);
}
match /teamRequests/{requestId} {
allow read: if request.auth != null && (
resource.data.senderId == request.auth.uid ||
resource.data.receiverId == request.auth.uid
);
allow create: if request.auth != null && request.resource.data.senderId == request.auth.uid;
allow update: if request.auth != null && resource.data.receiverId == request.auth.uid;
}
}
}
![]() Sahnik Biswas |
![]() Sankalpa Sarkar |
![]() Shreyas Saha |
π This project is licensed under the MIT License. See the LICENSE
file for details.
For queries or feedback, reach out to:
- π Sahnik Biswas
- βοΈ Email: [email protected]
- π GitHub: Sahnik Biswas
π‘ Join the project and help build the future of hackathon team collaboration! π