Skip to content

Martinlmb3/TeamTalk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

34 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

TeamTalk Logo

Next.js .NET PostgreSQL Firebase AWS Stripe Google Facebook Maileroo Tailwind CSS


TeamTalk

A comprehensive sports team communication and management platform that connects athletes, coaches, and team administrators in one unified space.

✨ Features

  • 🏠 Landing Page: Modern, responsive homepage with hero section and feature highlights
  • πŸ’¬ Real-time Messaging: Team chat rooms and direct messaging capabilities
  • πŸ“… Schedule Management: Team events, practices, and game scheduling
  • πŸ“ File Sharing: Document and media sharing for team resources
  • πŸ‘₯ Team Management: Role-based access for players, coaches, and admins
  • 🎨 Theme Support: Dark/light mode toggle for better user experience
  • πŸ“± Responsive Design: Mobile-first approach with modern UI components

πŸš€ Tech Stack

Frontend

  • Framework: Next.js 14.2.16
  • Language: TypeScript
  • Styling: Tailwind CSS
  • UI Components: shadcn/ui + Radix UI
  • Icons: Lucide React
  • Theme: next-themes for dark/light mode

Backend

  • Framework: ASP.NET Core 9.0
  • Language: C#
  • Database: PostgreSQL with Entity Framework Core
  • Authentication: JWT Bearer tokens
  • API Documentation: Swagger/OpenAPI

πŸ“ Project Structure

TeamTalk/
β”œβ”€β”€ frontend/                 # Next.js frontend application
β”‚   β”œβ”€β”€ app/                 # App router pages
β”‚   β”‚   β”œβ”€β”€ dashboard/       # User dashboard
β”‚   β”‚   β”œβ”€β”€ messages/        # Messaging functionality
β”‚   β”‚   β”œβ”€β”€ schedule/        # Team scheduling
β”‚   β”‚   β”œβ”€β”€ files/          # File management
β”‚   β”‚   β”œβ”€β”€ admin/          # Admin panel
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ components/         # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ ui/            # shadcn/ui components
β”‚   β”‚   β”œβ”€β”€ header.tsx     # Navigation header
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ hooks/             # Custom React hooks
β”‚   β”œβ”€β”€ lib/               # Utility functions
β”‚   └── styles/            # Global styles
β”œβ”€β”€ backend/               # ASP.NET Core API
β”‚   └── TeamTalkApi/
β”‚       β”œβ”€β”€ Controllers/   # API controllers
β”‚       β”œβ”€β”€ DTOs/         # Data transfer objects
β”‚       β”œβ”€β”€ TeamTalk.Core/
β”‚       β”‚   β”œβ”€β”€ Entities/ # Database models
β”‚       β”‚   β”œβ”€β”€ Services/ # Business logic
β”‚       β”‚   └── Interfaces/
β”‚       └── ...
└── teamtalk-v0/          # v0.dev generated components

πŸ› οΈ Installation & Setup

Prerequisites

  • Node.js 18+ and npm
  • .NET 9.0 SDK
  • PostgreSQL database

Frontend Setup

cd frontend
npm install --legacy-peer-deps
npm run dev

Backend Setup

cd backend/TeamTalkApi
dotnet restore
dotnet ef database update
dotnet run

🌐 API Endpoints

Authentication

  • POST /api/auth/login - User login
  • POST /api/auth/register - User registration
  • POST /api/auth/refresh - Refresh JWT token

Teams

  • GET /api/teams - Get user teams
  • POST /api/teams - Create new team
  • GET /api/teams/{id} - Get team details

Messages

  • GET /api/messages/team/{teamId} - Get team messages
  • POST /api/messages - Send message
  • GET /api/messages/direct/{userId} - Direct messages

πŸ—„οΈ Database Schema

Key entities include:

  • Users: Player/coach profiles and authentication
  • Teams: Team information and metadata
  • Messages: Chat messages and conversations
  • Schedules: Events, practices, and games
  • Files: Shared documents and media

🎨 UI Components

Built with modern, accessible components:

  • Navigation with responsive design
  • Theme toggle (dark/light mode)
  • Cards, buttons, forms with consistent styling
  • Modal dialogs and dropdowns
  • Data tables and calendars

πŸ“ Pages

  • / - Landing page with hero section
  • /dashboard - User dashboard
  • /messages - Team and direct messaging
  • /schedule - Calendar and events
  • /files - File sharing and management
  • /admin - Administrative functions
  • /pricing - Subscription plans
  • /support - Help and contact

πŸ”§ Development

Frontend Development

npm run dev          # Start development server
npm run build        # Build for production
npm run lint         # Run ESLint

Backend Development

dotnet watch run     # Start with hot reload
dotnet test          # Run tests
dotnet ef migrations add <name>  # Create migration

πŸš€ Deployment

Frontend (Vercel)

  1. Connect GitHub repository to Vercel
  2. Set build command: cd frontend && npm run build
  3. Set output directory: frontend/.next
  4. Deploy automatically on push to main

Backend

  1. Configure PostgreSQL connection string
  2. Set JWT secret and other environment variables
  3. Deploy to cloud provider (Azure, AWS, etc.)

🀝 Contributing

  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

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

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

Martin Lumumba

πŸ™ Acknowledgments


TeamTalk - Connecting teams, one conversation at a time. πŸ’¬πŸ†

About

A comprehensive sports team communication and management platform that connects athletes and coaches in one unified space.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors