Skip to content

Tactix is a comprehensive football match management application that brings players together through an intuitive and engaging platform. The app combines match creation, player networking, performance tracking, and social features to create the ultimate football experience.

Notifications You must be signed in to change notification settings

3liYounis/Tactix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

32 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Tactix - Football Match Management App


๐Ÿ“ฑ Application Showcase

Team Dashboard

Overview of team performance and upcoming matches.

Host a Match

Setup and configure new match lobbies.

Join a Team

Find and join existing team lobbies with ease.

Live Tactical Formation

Real-time tactical adjustments and player positioning.

Match Details

Detailed information about current match status.

Player Profile

Individual player stats and information card.

Performance Statistics

In-depth analysis of player statistics.

๐Ÿ† The Ultimate Football Match Experience

A modern, feature-rich React Native application for managing football matches, connecting players, and tracking performance with beautiful interfaces and real-time capabilities.

React Native Expo Firebase TypeScript


๐ŸŽฏ Overview

Tactix is a comprehensive football match management application that brings players together through an intuitive and engaging platform. The app combines match creation, player networking, performance tracking, and social features to create the ultimate football experience.

๐Ÿš€ Key Highlights

  • Cross-Platform: Built with React Native and Expo for iOS, Android, and Web
  • Real-time Match Management: Create, join, and manage football matches with live updates
  • Player Performance Tracking: Comprehensive skill assessment and statistics
  • Social Networking: Connect with other players, add friends, and build your football community
  • Beautiful UI/UX: Modern design with dark/light theme support and smooth animations
  • Backend Integration: Express.js server with Firebase Firestore for data persistence

โœจ Features

๐ŸŸ๏ธ Match Management

  • Create Matches: Set up matches with custom formations (5v5, 7v7, 11v11)
  • Join Matches: Enter match codes to join existing games
  • Live Match Tracking: Real-time match status and player count
  • Match History: View past matches and performance data
  • Team Formation: Visual field layout with player positioning

๐Ÿ‘ฅ Player Network

  • Player Directory: Discover and connect with other players
  • Friend System: Add/remove friends and build your network
  • Position-based Filtering: Filter players by position (GK, DEF, MID, FWD)
  • Player Profiles: Detailed profiles with statistics and achievements
  • Search & Discovery: Find players by name or position

๐Ÿ“Š Performance & Analytics

  • Skill Assessment: Rate players across multiple skill categories
  • Post-Match Surveys: Comprehensive feedback system after matches
  • Statistics Tracking: Win/loss ratios, match history, and performance trends
  • Achievement System: Badges and rewards for various accomplishments
  • Performance Insights: Visual charts and progress tracking

๐ŸŽจ User Experience

  • Dark/Light Themes: Automatic theme switching based on system preferences
  • Smooth Animations: Fluid transitions and micro-interactions
  • Responsive Design: Optimized for all screen sizes
  • Intuitive Navigation: Tab-based navigation with clear information hierarchy
  • Accessibility: Screen reader support and high contrast modes

๐Ÿ” Authentication & Security

  • Firebase Authentication: Secure user registration and login
  • Google Sign-in: One-tap authentication with Google accounts
  • Password Recovery: Secure password reset functionality
  • User Profiles: Customizable profile information and settings

๐Ÿ“ฑ Application Showcase

Team Dashboard

Overview of team performance and upcoming matches.

Host a Match

Setup and configure new match lobbies.

Join a Team

Find and join existing team lobbies with ease.

Live Tactical Formation

Real-time tactical adjustments and player positioning.

Match Details

Detailed information about current match status.

Player Profile

Individual player stats and information card.

Performance Statistics

In-depth analysis of game statistics.


๐Ÿ› ๏ธ Tech Stack

Frontend (Mobile App)

๐Ÿ“ฑ React Native 0.81.4
๐ŸŽจ Expo 54.0.10
โšก TypeScript 5.9.2
๐ŸŽฏ Expo Router 6.0.8
๐ŸŽญ React Navigation 7.1.6
๐ŸŽจ Lucide React Native (Icons)
๐Ÿ“ฑ React Native Reanimated 4.1.0
๐ŸŽญ Lottie React Native (Animations)

Backend (Server)

๐Ÿš€ Express.js 4.18.2
๐Ÿ”ฅ Firebase Admin SDK 12.0.0
๐Ÿ“Š Firestore Database
๐ŸŒ CORS Support
๐Ÿ”ง TypeScript 5.3.3

Development Tools

๐Ÿ”ง Babel (Transpilation)
๐Ÿ“ฆ Metro (Bundler)
๐ŸŽจ ESLint (Code Quality)
๐Ÿท๏ธ TypeScript (Type Safety)
๐Ÿ“ฑ Expo CLI (Development)

Third-Party Services

๐Ÿ”ฅ Firebase (Authentication & Database)
๐Ÿ“ฑ Google Fonts (Typography)
๐ŸŽจ Expo Vector Icons
๐Ÿ“ฑ Async Storage (Local Storage)
๐ŸŒ React Native WebView

๐Ÿ—๏ธ Project Structure

Tactix/
โ”œโ”€โ”€ ๐Ÿ“ฑ tactixMain/                 # Main React Native App
โ”‚   โ”œโ”€โ”€ ๐ŸŽจ app/                   # App screens and navigation
โ”‚   โ”‚   โ”œโ”€โ”€ (auth)/              # Authentication screens
โ”‚   โ”‚   โ”œโ”€โ”€ (tabs)/              # Main app tabs
โ”‚   โ”‚   โ””โ”€โ”€ (register)/          # Registration flow
โ”‚   โ”œโ”€โ”€ ๐Ÿงฉ components/           # Reusable UI components
โ”‚   โ”‚   โ”œโ”€โ”€ animated/            # Animation components
โ”‚   โ”‚   โ”œโ”€โ”€ custom/              # Custom UI elements
โ”‚   โ”‚   โ”œโ”€โ”€ dashboard/           # Dashboard components
โ”‚   โ”‚   โ”œโ”€โ”€ friends/             # Friend management
โ”‚   โ”‚   โ”œโ”€โ”€ match/               # Match-related components
โ”‚   โ”‚   โ”œโ”€โ”€ survey/              # Post-match survey
โ”‚   โ”‚   โ””โ”€โ”€ Profile/             # Profile components
โ”‚   โ”œโ”€โ”€ ๐Ÿ”ง hooks/                # Custom React hooks
โ”‚   โ”œโ”€โ”€ ๐ŸŒ services/             # API and service layer
โ”‚   โ”œโ”€โ”€ ๐Ÿ“Š context/              # React Context providers
โ”‚   โ”œโ”€โ”€ ๐ŸŽจ constants/            # App constants and themes
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ˆ data/                 # Mock data and utilities
โ”‚   โ””โ”€โ”€ ๐Ÿ“ types/                # TypeScript type definitions
โ”‚
โ”œโ”€โ”€ ๐Ÿ–ฅ๏ธ server/                   # Express.js Backend
โ”‚   โ”œโ”€โ”€ ๐Ÿ”ง src/
โ”‚   โ”‚   โ”œโ”€โ”€ config/              # Firebase configuration
โ”‚   โ”‚   โ”œโ”€โ”€ routes/              # API routes
โ”‚   โ”‚   โ”œโ”€โ”€ types/               # Server type definitions
โ”‚   โ”‚   โ””โ”€โ”€ index.ts             # Server entry point
โ”‚   โ””โ”€โ”€ ๐Ÿ“ฆ package.json          # Server dependencies
โ”‚
โ””โ”€โ”€ ๐Ÿ“š README.md                 # Project documentation

๐Ÿš€ Getting Started

Prerequisites

  • Node.js (>= 18.0.0)
  • npm or yarn
  • Expo CLI
  • Firebase project setup
  • iOS Simulator (for iOS development)
  • Android Studio (for Android development)

Installation

  1. Clone the repository

    git clone <repository-url>
    cd Tactix
  2. Install mobile app dependencies

    cd tactixMain
    npm install
  3. Install server dependencies

    cd ../server
    npm install
  4. Firebase Setup

    • Create a Firebase project
    • Enable Authentication and Firestore
    • Download serviceAccount.json to server/ directory
    • Update Firebase config in tactixMain/services/firebaseConfig.ts
  5. Start the development server

    # Terminal 1: Start the backend server
    cd server
    npm run dev
    
    # Terminal 2: Start the mobile app
    cd tactixMain
    npm start

Running the App

# iOS
npm run ios

# Android
npm run android

# Web
npm run web

๐ŸŽฎ Usage Guide

1. Authentication

  • Sign up with email/password or Google
  • Complete your player profile
  • Set your position and initial preferences

2. Creating a Match

  • Navigate to the Match tab
  • Tap "Host Match"
  • Fill in match details (name, location, time, formation)
  • Share the generated match code with friends

3. Joining a Match

  • Enter a match code in the "Join Match" section
  • View match details and current players
  • Wait for the host to start the match

4. Managing Friends

  • Go to the Friends tab
  • Search for players by name or position
  • Add friends to your network
  • View their profiles and statistics

5. Performance Tracking

  • Complete post-match surveys after games
  • Rate teammates on various skills
  • View your statistics and achievements
  • Track your performance trends

๐ŸŽจ Design System

Color Palette

  • Primary: Dynamic blue tones for main actions
  • Secondary: Green accents for success states
  • Warning: Orange for attention-grabbing elements
  • Error: Red for error states and warnings
  • Neutral: Gray scale for text and backgrounds

Typography

  • Headings: Space Grotesk (Bold, Medium)
  • Body: JetBrains Mono (Regular)
  • UI Elements: Inter (Regular, Medium, Bold)
  • Special: Kalam (Badges and highlights)

Components

  • Cards: Rounded corners with subtle shadows
  • Buttons: Multiple variants (primary, outline, ghost)
  • Inputs: Clean design with focus states
  • Navigation: Tab-based with clear hierarchy

๐Ÿ”ง Configuration

Environment Variables

Create a .env file in the server directory:

PORT=3000
FIREBASE_PROJECT_ID=tact-7ffd0
FIREBASE_PRIVATE_KEY=your-private-key
FIREBASE_CLIENT_EMAIL=your-client-email

API Configuration

Update tactixMain/config/api.ts:

export const API_BASE_URL = 'http://localhost:3000'; // Development
// export const API_BASE_URL = 'https://your-production-url.com'; // Production

Dashboard

  • Player profile overview
  • Statistics and achievements
  • Quick access to recent matches

Match Management

  • Create/join match interface
  • Live match status
  • Team formation visualization

Friends Network

  • Player directory
  • Friend management
  • Search and filtering

Performance Tracking

  • Post-match surveys
  • Skill assessment
  • Statistics visualization

๐Ÿค Contributing

We welcome contributions! Please follow these steps:

  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

Development Guidelines

  • Follow TypeScript best practices
  • Use meaningful commit messages
  • Test on both iOS and Android
  • Ensure accessibility compliance
  • Update documentation for new features

โšฝ Bringing football players together โšฝ

About

Tactix is a comprehensive football match management application that brings players together through an intuitive and engaging platform. The app combines match creation, player networking, performance tracking, and social features to create the ultimate football experience.

Topics

Resources

Stars

Watchers

Forks