League of Legends Website Tool: Easily Time and Communicate Summoner Spells - THE FLASH! ๐
Demo โข Features โข Quick Start โข How It Works โข Documentation
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!
- โฑ๏ธ 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
- Node.js 20.9.0 or higher
- pnpm 9.10.0 or higher (recommended) or npm
# 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# 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/healthLolTimeFlash 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 |
- Create/Join Room - Generate or enter a 10-character room code
- Set Username - Identify yourself to teammates
- Track Flashes - Click role icons when enemy uses Flash
- Sync with Team - All changes sync in real-time
- Get Notified - Audio + toast notifications for all team members
- 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
- 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
- Containerization: Docker + Docker Compose
- Base Image: Node 20.9.0 Alpine
- Package Manager: pnpm 9.10.0
- Monorepo: Turborepo for builds
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
All room members see updates instantly when anyone:
- Clicks a Flash button
- Toggles Lucidity Boots or Cosmic Insight
- Cancels a timer
- Click once: Start Flash cooldown
- Click during countdown: Cancel timer (Flash is back)
- Visual feedback: Darkened icon + MM:SS timer overlay
- Choose from all League of Legends champion splash arts
- Search champions by name
- Background persists across sessions
For detailed documentation including architecture, API routes, component structure, and development guidelines, see AGENTS.md.
Contributions are welcome! Please read our Contributing Guidelines before submitting a PR.
# Create feature branch
git checkout -b feature/your-feature
# Make changes and test
pnpm dev
# Build for production
pnpm build
# Submit PRCreate 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:8888See AGENTS.md for advanced configuration.
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.
- Documentation: AGENTS.md
- Riot Developer Portal: developer.riotgames.com
- Next.js Docs: nextjs.org/docs
- Socket.IO Docs: socket.io/docs
Built with โค๏ธ by me
โญ Star this repo if you find it helpful!
