zatkniz/sporty-group

No description

0 stars0 forksUpdated Jan 13, 2026
npx skills add zatkniz/sporty-group

README

Sports Leagues SPA

A single-page application that displays sports leagues from around the world with filtering capabilities and badge viewing.

Vue.js Nuxt TypeScript Tailwind CSS

Features

  • šŸ† Browse Leagues - View all sports leagues from TheSportsDB API
  • šŸ” Search - Filter leagues by name in real-time
  • šŸŽÆ Filter by Sport - Dropdown to filter by sport type (Soccer, Basketball, etc.)
  • šŸ… View Badges - Click any league to view its season badge
  • šŸ’¾ Caching - Badge responses are cached in localStorage
  • šŸ“± Responsive - Works on mobile, tablet, and desktop
  • šŸŒ™ Dark Mode - Automatic dark mode support

Tech Stack

Getting Started

Prerequisites

  • Node.js 20.x or higher
  • npm, yarn, or pnpm

Installation

# Clone the repository
git clone https://github.com/zatkniz/sporty-group.git
cd sporty-group

# Install dependencies
npm install

Development

Start the development server on http://localhost:3000:

npm run dev

Production

Build for production:

npm run build

Preview the production build:

npm run preview

Project Structure

app/
ā”œā”€ā”€ components/         # Vue components
│   ā”œā”€ā”€ LeagueCard.vue     # Individual league card
│   ā”œā”€ā”€ LeaguesFilters.vue # Search & filter controls
│   ā”œā”€ā”€ LeaguesGrid.vue    # Grid layout for leagues
│   └── BadgeModal.vue     # Modal for displaying badges
ā”œā”€ā”€ composables/        # Reusable composition functions
│   └── useApi.ts          # API client wrapper
ā”œā”€ā”€ stores/             # Pinia stores
│   └── sportsLeagues.ts   # Leagues state management
ā”œā”€ā”€ types/              # TypeScript definitions
│   └── thesportsdb.ts     # API response types
ā”œā”€ā”€ pages/              # Route pages
│   └── index.vue          # Main leagues page
└── layouts/            # Layout components
    └── default.vue        # Default layout

API Endpoints

EndpointDescription
all_leagues.phpFetch all sports leagues
search_all_seasons.php?badge=1&id={id}Fetch league badge by ID

Documentation

For detailed development documentation, including architecture decisions and AI tools used, see DEVELOPMENT.md.

License

This project is for demonstration purposes.

Publisher

zatknizzatkniz

Statistics

Stars0
Forks0
Open Issues0
CreatedJan 13, 2026