Skip to content

League of Legends Website Tool: Easily Time and Communicate Summoner Spells โฐ THE FLASH! ๐ŸŒŸ

Notifications You must be signed in to change notification settings

Teczer/LolTimeFlash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

96 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

โฐ LolTimeFlash

League of Legends Website Tool: Easily Time and Communicate Summoner Spells - THE FLASH! ๐ŸŒŸ

Version Next.js TypeScript Socket.IO Tailwind CSS NestJS

Demo โ€ข Features โ€ข Quick Start โ€ข How It Works โ€ข Documentation


๐ŸŽฌ Demo

loltimeflash-demo-ezgif com-video-to-gif-converter

Showcase the real-time Flash tracking, multiplayer synchronization, and customizable backgrounds


๐ŸŽฏ What is LolTimeFlash?

LolTimeFlash is a real-time collaborative web application for League of Legends players to track enemy summoner spell cooldowns during gameplay. Create or join rooms with your teammates to monitor Flash timers across all 5 enemy roles and coordinate your ganks perfectly!

๐ŸŒŸ Key Features

  • โฑ๏ธ Real-time Flash Tracking - Monitor Flash cooldowns for TOP, JUNGLE, MID, ADC, and SUPPORT
  • ๐Ÿงฎ Automatic Cooldown Calculation - Accounts for Lucidity Boots and Cosmic Insight rune
  • ๐Ÿ”„ Live Synchronization - All room members see updates instantly via WebSocket
  • ๐Ÿ‘ฅ Multiplayer Rooms - Create/join rooms with unique 10-character codes
  • ๐ŸŽจ Customizable Backgrounds - Choose from 100+ champion splash arts
  • ๐Ÿ”Š Audio Notifications - Get notified when enemy Flash is used
  • ๐Ÿ“ฑ Responsive Design - Works perfectly on desktop and mobile
  • ๐ŸŽฎ Solo Mode - Practice timing without multiplayer

๐Ÿš€ Quick Start

Prerequisites

  • Node.js 20.9.0 or higher
  • pnpm 9.10.0 or higher (recommended) or npm

Local Development

# Clone the repository
git clone https://github.com/yourusername/LolTimeFlash.git
cd LolTimeFlash

# Install dependencies
pnpm get_started

# Set up environment variables
cp .env.example .env  # Configure your environment

# Run development servers (API + Web)
pnpm dev

# API: http://localhost:8888
# Web: http://localhost:6333

Docker Deployment (Recommended)

# Quick start - build and run
pnpm docker:test

# Or manually
pnpm docker:build   # Build images
pnpm docker:up      # Start containers
pnpm docker:logs    # View logs
pnpm docker:down    # Stop containers

# Access:
# - Frontend: http://localhost:6333
# - API Health: http://localhost:8888/monitoring/health

๐ŸŽฎ How It Works

Flash Cooldown Calculations

LolTimeFlash automatically calculates Flash cooldowns based on enemy items and runes:

Configuration Cooldown Reduction
Base 5:00 (300s) -
Lucidity Boots 4:28 (268s) -32s
Cosmic Insight 4:15 (255s) -45s
Both 3:51 (231s) -69s

Multiplayer Flow

  1. Create/Join Room - Generate or enter a 10-character room code
  2. Set Username - Identify yourself to teammates
  3. Track Flashes - Click role icons when enemy uses Flash
  4. Sync with Team - All changes sync in real-time
  5. Get Notified - Audio + toast notifications for all team members

๐Ÿ› ๏ธ Tech Stack

Frontend (Next.js)

  • Framework: Next.js 16.0.1 (App Router + Turbopack)
  • Language: TypeScript 5.7.2
  • Styling: Tailwind CSS 3.4.17
  • State: Zustand 5.0.8, TanStack Query 5.90.8
  • Real-time: Socket.IO Client 4.8.1
  • UI: Radix UI, React Icons

Backend (NestJS)

  • Framework: NestJS 11.0 (Monorepo Architecture)
  • Real-time: Socket.IO Server 4.8.1
  • Logging: Winston with daily rotation
  • API: Riot Games Data Dragon integration

Deployment

  • Containerization: Docker + Docker Compose
  • Base Image: Node 20.9.0 Alpine
  • Package Manager: pnpm 9.10.0
  • Monorepo: Turborepo for builds

๐Ÿ“ Project Structure

LolTimeFlash/
โ”œโ”€โ”€ apps/
โ”‚   โ”œโ”€โ”€ api/                      # NestJS Backend
โ”‚   โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ game/            # Game logic & WebSocket gateway
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ room/            # Room management service
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ riot/            # Riot API integration
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ monitoring/      # Health checks & metrics
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ logger/          # Winston logging
โ”‚   โ”‚   โ”œโ”€โ”€ libs/shared/         # NestJS internal library
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ types/           # Shared TypeScript types
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ constants/       # Shared constants
โ”‚   โ”‚   โ””โ”€โ”€ Dockerfile
โ”‚   โ”‚
โ”‚   โ””โ”€โ”€ web/                      # Next.js Frontend
โ”‚       โ”œโ”€โ”€ app/                  # App Router pages
โ”‚       โ”œโ”€โ”€ components/           # React components
โ”‚       โ”œโ”€โ”€ features/             # Feature modules
โ”‚       โ”œโ”€โ”€ hooks/                # Custom hooks
โ”‚       โ”œโ”€โ”€ lib/                  # Utils & config
โ”‚       โ”œโ”€โ”€ public/               # Static assets
โ”‚       โ””โ”€โ”€ Dockerfile
โ”‚
โ”œโ”€โ”€ packages/
โ”‚   โ””โ”€โ”€ shared/                   # Shared types wrapper
โ”‚
โ”œโ”€โ”€ scripts/                      # Build & sync scripts
โ”œโ”€โ”€ docker-compose.yml            # Docker orchestration
โ””โ”€โ”€ turbo.json                    # Turborepo config

๐ŸŽจ Features in Detail

Real-time Synchronization

All room members see updates instantly when anyone:

  • Clicks a Flash button
  • Toggles Lucidity Boots or Cosmic Insight
  • Cancels a timer

Smart Timer Management

  • Click once: Start Flash cooldown
  • Click during countdown: Cancel timer (Flash is back)
  • Visual feedback: Darkened icon + MM:SS timer overlay

Customization

  • Choose from all League of Legends champion splash arts
  • Search champions by name
  • Background persists across sessions

๐Ÿ“– Documentation

For detailed documentation including architecture, API routes, component structure, and development guidelines, see AGENTS.md.

Quick Links


๐Ÿค Contributing

Contributions are welcome! Please read our Contributing Guidelines before submitting a PR.

Development Workflow

# Create feature branch
git checkout -b feature/your-feature

# Make changes and test
pnpm dev

# Build for production
pnpm build

# Submit PR

๐Ÿ“ Environment Variables

Create a .env file at the root:

# API Configuration
PORT=8888
NODE_ENV=development
LOG_LEVEL=info

# Frontend Configuration
NEXT_PUBLIC_SOCKET_PORT=http://localhost:8888
NEXT_PUBLIC_API_URL=http://localhost:8888

See AGENTS.md for advanced configuration.


๐Ÿ“„ License

This project is a fan-made tool for League of Legends players. League of Legends and all associated properties are trademarks or registered trademarks of Riot Games, Inc.


๐ŸŒ Links


Built with โค๏ธ by me

โญ Star this repo if you find it helpful!

About

League of Legends Website Tool: Easily Time and Communicate Summoner Spells โฐ THE FLASH! ๐ŸŒŸ

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •