An intelligent platform to discover and form high-performing teams based on skills, interests, and network compatibility.
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
- Advanced matching algorithm that weighs shared interests heavily
- Discover collaborators who align with your project vision
- Get personalized recommendations based on your profile
- Mutual connections boost match quality
- Build trust through shared organizations
- See how you're connected to potential teammates
- 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
- Display your top skills and expertise
- Share your interests and passion projects
- Show match scores with potential collaborators
- Follow and connect with other builders
- Interest-based profile recommendations
- Top profiles in your network
- Advanced search and filtering
- Beautiful profile cards with detailed stats
- 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
- Supabase - PostgreSQL database, authentication & real-time
- Next.js API Routes - Serverless backend functions
- Upstash - Rate limiting and Redis caching
- Vercel - Hosting and edge functions
- Vercel Analytics - Performance monitoring
- Vercel Speed Insights - Real User Monitoring (RUM)
- PostHog - Product analytics
- Playwright - End-to-end testing framework
- OXLint - Fast, zero-config JavaScript linter
- TypeScript Compiler - Static type checking
- Node.js 18+ (recommend 20+)
- npm, yarn, pnpm, or bun
- Supabase project (free tier available)
- Clone the repository
git clone https://github.com/Shaurya-dev7/TeamUP-AI.git
cd TeamUP-AI- Install dependencies
npm install
# or
pnpm install
# or
yarn install
# or
bun install- Set up environment variables
Copy .env.local.example to .env.local and fill in your Supabase credentials:
cp .env.local.example .env.localNEXT_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- 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: TheSUPABASE_SERVICE_ROLE_KEYis sensitive. Never commit it or expose it in public code.
- Start the development server
npm run dev
# or
pnpm dev
# or
yarn dev
# or
bun devOpen http://localhost:3000 to see the app.
# 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# 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=webkitTeamUP-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
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.
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.
The easiest way to deploy is using the Vercel Platform:
- Push your code to GitHub
- Import the repository on Vercel
- Add your environment variables in Vercel dashboard
- Deploy with one click
- Go to Settings β Environment Variables
- Add:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEY
See Next.js deployment documentation for more options.
This project follows best practices and guidelines documented in:
- React Best Practices - Performance optimization, waterfalls, bundle size
- Web Design Guidelines - Accessibility, UX, forms, animations
Contributions are welcome! Here's how to get started:
- 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
Please ensure:
- Code passes linting:
npm run lint - Types are correct:
npm run type-check - Tests pass:
npm test
This project is open source and available under the MIT License.
Have questions or need help?
- π§ Email: Create an issue on GitHub
- π Bug Reports: GitHub Issues
- π¬ Discussions: GitHub Discussions
Shaurya Deep
- GitHub: @Shaurya-dev7
- Full Stack Developer | 3rd Year
- Live Application
- GitHub Repository
- Next.js Documentation
- Supabase Documentation
- Tailwind CSS Documentation
- TypeScript Handbook
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