Skip to content

Team-up is a web app designed to help college students efficiently form teams for hackathons and group projects. It features skill-based matching, schedule coordination, and seamless collaboration tools to support both beginners and experienced participants.

Notifications You must be signed in to change notification settings

Sahnik0/Team-Up

Repository files navigation


Updated README.md

πŸš€ Team-Up The Ultimate Coding Partner Finder

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.


🎯 Features

βœ… 1. Skill-Based Matching

πŸ”Ή Users create profiles highlighting their skills (e.g., Web Dev, Design, Product Management).
πŸ”Ή A smart matching system suggests teammates with complementary skills.

βœ… 2. Scheduling Coordination

πŸ“… Shared calendar and availability indicators to align schedules.

βœ… 3. Networking Beyond Friend Circles

πŸ” Discover teammates outside immediate social circles with search & filter options.

βœ… 4. Role Guidance

πŸ”Έ AI-driven recommendations for team roles based on project requirements.
πŸ”Έ Templates & resources for dividing responsibilities.

βœ… 5. Support for Beginners

πŸ’‘ Icebreakers & introduction templates for easy onboarding.
πŸ”— Opportunities to connect with experienced peers.

βœ… 6. Collaboration Tools

πŸ’¬ Real-time chat, project boards, and file sharing for seamless teamwork.


πŸ“· UI Preview

Team Builder UI 1

Team Builder UI 2

Team Builder UI 3


πŸ› οΈ Technical Features

πŸ”Ή Authentication

  • πŸ”‘ Google Login integration via Firebase Authentication.

πŸ”Ή Database

  • ⚑ Firestore for real-time data management.
  • πŸ” Security rules for controlled access & data protection.

πŸ”Ή AI-Powered Recommendations (Optional)

  • πŸ€– AI-powered teammate matching based on skills & availability.

πŸš€ Installation

Prerequisites

  • πŸ“Œ Node.js (>= 16.0)
  • πŸ”₯ Firebase account & project

Steps to Run Locally

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

πŸš€ Deployment

Firebase Deployment Steps

1️⃣ Build the project:

npm run build

2️⃣ Deploy to Firebase:

firebase deploy

πŸ” Firestore Security Rules

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;
    }
  }
}

πŸ‘₯ Contributors


Sahnik Biswas

Sankalpa Sarkar

Shreyas Saha

πŸ“œ License

πŸ“„ This project is licensed under the MIT License. See the LICENSE file for details.


πŸ“© Contact

For queries or feedback, reach out to:


πŸ’‘ Join the project and help build the future of hackathon team collaboration! πŸš€

About

Team-up is a web app designed to help college students efficiently form teams for hackathons and group projects. It features skill-based matching, schedule coordination, and seamless collaboration tools to support both beginners and experienced participants.

Topics

Resources

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages