Skip to content

sanks011/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! πŸš€

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 98.5%
  • Other 1.5%