npx skills add zatkniz/sporty-groupREADME
Sports Leagues SPA
A single-page application that displays sports leagues from around the world with filtering capabilities and badge viewing.
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
- Framework: Nuxt 4 + Vue 3
- Language: TypeScript
- UI Library: Nuxt UI + Tailwind CSS
- State Management: Pinia
- Utilities: VueUse
- API: TheSportsDB
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
| Endpoint | Description |
|---|---|
all_leagues.php | Fetch 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
Statistics
Stars0
Forks0
Open Issues0
CreatedJan 13, 2026