Skip to content

Shaurya-dev7/TeamUP-AI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

53 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ TeamUp-AI

An intelligent platform to discover and form high-performing teams based on skills, interests, and network compatibility.

Live Demo Next.js TypeScript Supabase Vercel


πŸ“– Overview

TeamUp-AI is a modern web application designed to help developers, designers, and creators find and connect with their ideal team members. Unlike traditional job boards or directories, TeamUp uses an intelligent matching algorithm that considers:

  • 🎯 Skills & Expertise - Find people with the technical skills you need
  • πŸ’‘ Shared Interests - Discover team members who share your vision and passion
  • πŸ”— Network Intelligence - Leverage mutual connections and shared organizations
  • ✨ Chemistry Detection - AI-powered algorithm to ensure team compatibility

✨ Key Features

🎯 Intelligent Skill + Interest Matching

  • Advanced matching algorithm that weighs shared interests heavily
  • Discover collaborators who align with your project vision
  • Get personalized recommendations based on your profile

🌐 Network-Aware Discovery

  • Mutual connections boost match quality
  • Build trust through shared organizations
  • See how you're connected to potential teammates

πŸ’¬ Real-time Collaboration

  • Instant messaging with potential teammates
  • Form groups and discuss project ideas
  • Finalize your team roster without leaving the platform
  • Emoji reactions and rich message support

πŸ‘₯ Profile Showcase

  • Display your top skills and expertise
  • Share your interests and passion projects
  • Show match scores with potential collaborators
  • Follow and connect with other builders

πŸ“Š Discover & Recommendations

  • Interest-based profile recommendations
  • Top profiles in your network
  • Advanced search and filtering
  • Beautiful profile cards with detailed stats

πŸ›  Tech Stack

Frontend

  • Next.js 15.5 - React framework with App Router
  • TypeScript - Type-safe JavaScript
  • Tailwind CSS - Utility-first styling
  • Framer Motion - Smooth animations and transitions
  • Radix UI - Accessible component primitives

Backend & Database

  • Supabase - PostgreSQL database, authentication & real-time
  • Next.js API Routes - Serverless backend functions
  • Upstash - Rate limiting and Redis caching

Deployment & Analytics

  • Vercel - Hosting and edge functions
  • Vercel Analytics - Performance monitoring
  • Vercel Speed Insights - Real User Monitoring (RUM)
  • PostHog - Product analytics

Quality & Testing

  • Playwright - End-to-end testing framework
  • OXLint - Fast, zero-config JavaScript linter
  • TypeScript Compiler - Static type checking

πŸš€ Quick Start

Prerequisites

  • Node.js 18+ (recommend 20+)
  • npm, yarn, pnpm, or bun
  • Supabase project (free tier available)

Installation

  1. Clone the repository
git clone https://github.com/Shaurya-dev7/TeamUP-AI.git
cd TeamUP-AI
  1. Install dependencies
npm install
# or
pnpm install
# or
yarn install
# or
bun install
  1. Set up environment variables

Copy .env.local.example to .env.local and fill in your Supabase credentials:

cp .env.local.example .env.local
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-public-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
  1. Set up the database

Create a profiles table in Supabase matching the schema in database.types.ts. Then seed demo data:

node scripts/seed_profiles.js

⚠️ Security Note: The SUPABASE_SERVICE_ROLE_KEY is sensitive. Never commit it or expose it in public code.

  1. Start the development server
npm run dev
# or
pnpm dev
# or
yarn dev
# or
bun dev

Open http://localhost:3000 to see the app.


πŸ“± Available Scripts

# Development
npm run dev              # Start dev server on port 3000
npm run dev:lan         # Start dev server on all network interfaces
npm run dev:all         # Start all services

# Production
npm run build            # Build for production
npm start                # Start production server
npm run start:lan        # Start production server on all network interfaces

# Quality Assurance
npm run lint             # Run OXLint
npm run type-check       # TypeScript type checking
npm run check-all        # Run lint and type-check

# Testing
npm test                 # Run Playwright tests
npm run test -- --ui     # Run tests in UI mode (interactive)
npm run test -- --headed # Run tests with visible browser

Test Commands

# Run specific test file
npx playwright test tests/home.spec.ts

# Run tests in debug mode
npx playwright test --debug

# Generate test report
npx playwright show-report

# Run tests for specific browser
npx playwright test --project=chromium
npx playwright test --project=firefox
npx playwright test --project=webkit

πŸ“‚ Project Structure

TeamUP-AI/
β”œβ”€β”€ app/                    # Next.js app directory
β”‚   β”œβ”€β”€ page.tsx           # Home page
β”‚   β”œβ”€β”€ layout.tsx         # Root layout
β”‚   └── api/               # API routes
β”œβ”€β”€ components/            # Reusable React components
β”‚   β”œβ”€β”€ AppFooter.tsx
β”‚   β”œβ”€β”€ HeroCarousel.tsx
β”‚   β”œβ”€β”€ TeamUpEarthScroll.tsx
β”‚   └── ...
β”œβ”€β”€ lib/                   # Utility functions
β”‚   └── utils.ts          # Tailwind merge utilities
β”œβ”€β”€ tests/                 # E2E tests with Playwright
β”‚   β”œβ”€β”€ home.spec.ts
β”‚   β”œβ”€β”€ discover.spec.ts
β”‚   β”œβ”€β”€ profile.spec.ts
β”‚   β”œβ”€β”€ chat.spec.ts
β”‚   β”œβ”€β”€ auth.spec.ts
β”‚   └── ...
β”œβ”€β”€ scripts/              # Utility scripts
β”‚   └── seed_profiles.js  # Database seeding
β”œβ”€β”€ docs/                 # Documentation
β”‚   └── standards/        # Coding standards & guidelines
β”œβ”€β”€ public/               # Static assets
β”œβ”€β”€ .env.local.example    # Environment variables template
β”œβ”€β”€ next.config.ts        # Next.js configuration
β”œβ”€β”€ tailwind.config.ts    # Tailwind CSS configuration
β”œβ”€β”€ tsconfig.json         # TypeScript configuration
└── playwright.config.ts  # Playwright test configuration

πŸ§ͺ Testing

The project includes comprehensive end-to-end tests covering:

  • Home page - Content, navigation, featured sections
  • Discovery - Search, recommendations, profile cards, follow/unfollow
  • Profiles - Display, stats, skills, interests, follow buttons
  • Chat - Messaging, profile search, message input
  • Authentication - Login, signup, form validation
  • Navigation - Site-wide navigation, link functionality
  • API Endpoints - Discover API, profile API

See tests/README.md for detailed testing documentation.


πŸ“š Database Schema

Profiles Table

CREATE TABLE profiles (
  id UUID PRIMARY KEY,
  username TEXT UNIQUE,
  full_name TEXT,
  avatar_url TEXT,
  bio TEXT,
  skills TEXT[],
  interests TEXT[],
  followers_count INT DEFAULT 0,
  following_count INT DEFAULT 0,
  created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
  updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);

Refer to database.types.ts for the complete type definitions.


🌍 Deployment

Deploy on Vercel (Recommended)

The easiest way to deploy is using the Vercel Platform:

  1. Push your code to GitHub
  2. Import the repository on Vercel
  3. Add your environment variables in Vercel dashboard
  4. Deploy with one click

Deploy with Vercel

Environment Variables on Vercel

  1. Go to Settings β†’ Environment Variables
  2. Add:
    • NEXT_PUBLIC_SUPABASE_URL
    • NEXT_PUBLIC_SUPABASE_ANON_KEY
    • SUPABASE_SERVICE_ROLE_KEY

See Next.js deployment documentation for more options.


🎨 Design & Standards

This project follows best practices and guidelines documented in:


🀝 Contributing

Contributions are welcome! Here's how to get started:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Please ensure:

  • Code passes linting: npm run lint
  • Types are correct: npm run type-check
  • Tests pass: npm test

πŸ“ License

This project is open source and available under the MIT License.


πŸ™‹ Support

Have questions or need help?


πŸ‘¨β€πŸ’» Author

Shaurya Deep


πŸ”— Resources


⭐ Show Your Support

If you like this project, please consider:

  • ⭐ Starring this repository
  • πŸ”— Sharing with your network
  • πŸ› Reporting bugs or suggesting features
  • 🀝 Contributing to the project

Built with ❀️ for builders, by builders

About

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors