{"id":30288426,"url":"https://github.com/utkarshthedev/chessticks","last_synced_at":"2025-08-16T22:37:12.757Z","repository":{"id":268911857,"uuid":"888932766","full_name":"UtkarshTheDev/ChessTicks","owner":"UtkarshTheDev","description":"A modern, feature-rich chess timer application built with Next.js and TypeScript. Designed for chess players of all levels, from casual games to tournament play.","archived":false,"fork":false,"pushed_at":"2025-08-11T10:17:33.000Z","size":1183,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-11T10:28:25.739Z","etag":null,"topics":["chess","nextjs","shadcn-ui","tailwindcss","timer","typescript","zustand"],"latest_commit_sha":null,"homepage":"https://chessticks.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/UtkarshTheDev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-11-15T09:31:43.000Z","updated_at":"2025-08-11T10:17:37.000Z","dependencies_parsed_at":"2024-12-19T17:27:34.093Z","dependency_job_id":"64188410-cad2-4b94-982c-690f45f97706","html_url":"https://github.com/UtkarshTheDev/ChessTicks","commit_stats":null,"previous_names":["developer-utkarsh/chess-clock","utkarshthedev/chess-clock","utkarshthedev/chessticks"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/UtkarshTheDev/ChessTicks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UtkarshTheDev%2FChessTicks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UtkarshTheDev%2FChessTicks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UtkarshTheDev%2FChessTicks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UtkarshTheDev%2FChessTicks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/UtkarshTheDev","download_url":"https://codeload.github.com/UtkarshTheDev/ChessTicks/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UtkarshTheDev%2FChessTicks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270781209,"owners_count":24643807,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-16T02:00:11.002Z","response_time":91,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chess","nextjs","shadcn-ui","tailwindcss","timer","typescript","zustand"],"created_at":"2025-08-16T22:37:09.708Z","updated_at":"2025-08-16T22:37:12.726Z","avatar_url":"https://github.com/UtkarshTheDev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ChessTicks ⏱️\n\n[![Live Demo](https://img.shields.io/badge/Live%20Demo-chessticks.vercel.app-blue?style=for-the-badge\u0026logo=vercel)](https://chessticks.vercel.app)\n[![License](https://img.shields.io/badge/License-MIT-green?style=for-the-badge)](LICENSE)\n[![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge\u0026logo=typescript\u0026logoColor=white)](https://www.typescriptlang.org/)\n[![Next.js](https://img.shields.io/badge/Next.js-000000?style=for-the-badge\u0026logo=next.js\u0026logoColor=white)](https://nextjs.org/)\n\nA modern, professional chess timer application designed for chess players of all levels. From casual games to tournament play, ChessTicks provides all five major tournament timer modes with a sleek, intuitive interface.\n\n![Chess Timer](public/logo.png)\n\n## 🚀 Try It Now - No Installation Required!\n\n**👉 [Launch ChessTicks](https://chessticks.vercel.app) 👈**\n\nSimply click the link above to start using the chess timer immediately in your browser. Works perfectly on:\n- 🖥️ **Desktop computers**\n- 📱 **Mobile phones**\n- 📱 **Tablets**\n- 💻 **Any device with a web browser**\n\n*No downloads, no installation, no setup required!*\n\n## 📖 What is ChessTicks?\n\nChessTicks is a comprehensive chess timer application that supports all five major tournament timer modes used in professional chess. Whether you're playing a quick blitz game or a classical tournament match, ChessTicks provides the precise timing controls you need.\n\n## ✨ Key Features\n\n### 🏆 Complete Tournament Timer Support\n- **⚡ Sudden Death** - Classic time control (e.g., 5 minutes per player)\n- **⏳ Simple Delay** - Delay before main time counts down (e.g., 3 min + 5 sec delay)\n- **🔄 Bronstein Delay** - Unused delay time is added back (e.g., 15 min + 10 sec Bronstein)\n- **➕ Fischer Increment** - Time added after each move (e.g., 3 min + 2 sec increment)\n- **🎯 Multi-Stage** - Complex tournament formats (e.g., World Championship style)\n\n### 🎮 Professional Game Controls\n- **👆 Gesture Controls** - Single tap (move), two-finger tap (check), long press (checkmate)\n- **🔊 Audio Feedback** - Sound effects for moves, checks, and game events\n- **📳 Haptic Feedback** - Vibration feedback on mobile devices\n- **⌨️ Keyboard Shortcuts** - Quick access to all timer functions\n- **✨ Visual Animations** - Smooth transitions and game state indicators\n\n### 📊 Advanced Game Analytics\n- **📈 Move Statistics** - Track average move time and game phases\n- **📋 Detailed Game Summary** - Comprehensive post-game analysis\n- **📊 Performance Charts** - Visual representation of time usage patterns\n- **🏁 Game History** - Review past games and performance trends\n\n### 🎨 Modern User Experience\n- **📱 Fully Responsive** - Perfect on desktop, tablet, and mobile\n- **🌙 Professional Dark Theme** - Easy on the eyes for long sessions\n- **🎭 Smooth Animations** - Powered by Framer Motion for fluid interactions\n- **♿ Accessibility First** - Keyboard navigation and screen reader support\n- **🚀 Lightning Fast** - Optimized performance for instant responsiveness\n\n## 🎯 For Chess Players (Users)\n\n### Just Want to Play Chess?\n\n**👉 [Click here to start playing immediately](https://chessticks.vercel.app) 👈**\n\nNo installation required! ChessTicks runs directly in your web browser on any device.\n\n### Quick Start Guide\n1. **Visit** [chessticks.vercel.app](https://chessticks.vercel.app)\n2. **Choose** your preferred timer mode (Sudden Death, Fischer, etc.)\n3. **Set** your time controls\n4. **Start** playing chess with professional timing!\n\n---\n\n## 🛠️ For Developers (Contributors)\n\nWant to contribute to ChessTicks or run it locally? Here's how to get started:\n\n### Prerequisites\n- Node.js 18+ or Bun\n- npm, yarn, pnpm, or bun\n\n### Local Development Setup\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/UtkarshTheDev/ChessTicks.git\n   cd ChessTicks\n   ```\n\n2. **Install dependencies**\n   ```bash\n   # Using npm\n   npm install\n\n   # Using yarn\n   yarn install\n\n   # Using pnpm\n   pnpm install\n\n   # Using bun\n   bun install\n   ```\n\n3. **Start the development server**\n   ```bash\n   # Using npm\n   npm run dev\n\n   # Using yarn\n   yarn dev\n\n   # Using pnpm\n   pnpm dev\n\n   # Using bun\n   bun dev\n   ```\n\n4. **Open your browser**\n   Navigate to [http://localhost:3000](http://localhost:3000)\n\n## 📖 How to Use ChessTicks\n\n### Basic Timer Operation\n1. **🎯 Select Timer Mode** - Choose from five tournament-grade timer modes\n2. **⚙️ Configure Time Control** - Set base time and increments/delays\n3. **▶️ Start Game** - Tap the start button to begin timing\n4. **👆 Make Moves** - Tap your side of the timer after each move\n5. **🎮 Special Moves** - Use gestures for check (two-finger tap) or checkmate (long press)\n\n### 🏆 Tournament Timer Modes Explained\n\n#### ⚡ Sudden Death\nPerfect for blitz and rapid games. Each player gets a fixed amount of time.\n- **Example**: 5 minutes per player\n- **Best for**: Quick games, online play, casual matches\n\n#### ⏳ Simple Delay\nAdds a delay before your main time starts counting down.\n- **Example**: 3 minutes + 5 second delay\n- **Best for**: Beginner-friendly games, reducing time pressure\n\n#### 🔄 Bronstein Delay\nTime used during the delay is added back to your main time.\n- **Example**: 15 minutes + 10 second Bronstein delay\n- **Best for**: Classical games, tournament play\n\n#### ➕ Fischer Increment\nAdds time to your clock after each move.\n- **Example**: 3 minutes + 2 second increment\n- **Best for**: Online platforms, modern tournament formats\n\n#### 🎯 Multi-Stage\nComplex tournament formats with multiple time control phases.\n- **Example**: 90 minutes for 40 moves, then 30 minutes + 30 second increment\n- **Best for**: World Championship style, classical tournaments\n\n### 🎮 Controls \u0026 Shortcuts\n\n#### Gesture Controls\n- **👆 Single Tap** - Normal move\n- **✌️ Two-Finger Tap** - Check move (plays special sound)\n- **👇 Long Press** - Checkmate (ends game with confirmation)\n\n#### Keyboard Shortcuts\n- **Spacebar** - Switch active player / Make move\n- **P** - Pause/Resume timer\n- **R** - Reset timer\n- **Escape** - Return to home screen\n\n## 🏗️ Technical Architecture\n\n### Project Structure\n```\nsrc/\n├── app/                 # Next.js app router\n├── components/          # React components\n│   ├── ui/             # Reusable UI components\n│   └── ...             # Feature-specific components\n├── hooks/              # Custom React hooks\n├── lib/                # Core timer logic and utilities\n├── stores/             # Zustand state management\n├── types/              # TypeScript type definitions\n├── utils/              # Utility functions\n└── __tests__/          # Test files\n```\n\n### 🛠️ Technology Stack\n- **⚡ Framework**: Next.js 15 with App Router\n- **📝 Language**: TypeScript\n- **🎨 Styling**: Tailwind CSS\n- **🧩 UI Components**: Radix UI + shadcn/ui\n- **✨ Animations**: Framer Motion\n- **🗄️ State Management**: Zustand\n- **🧪 Testing**: Jest\n- **🎯 Icons**: Lucide React\n- **🔊 Sound**: use-sound (Howler.js)\n- **🚀 Deployment**: Vercel\n\n### ⚙️ Timer Engine Architecture\nThe timer engine is built with a modular, extensible architecture:\n- **TimerEngine** - Core timer logic and state management\n- **TimerModeHandler** - Interface for different timer modes\n- **TimerStore** - Zustand store for React state management\n- **GameAnalytics** - Move tracking and performance analysis\n\n### 🧪 Development Commands\n\n#### Running Tests\n```bash\n# Run all tests\nnpm test\n\n# Run tests in watch mode\nnpm run test:watch\n\n# Run tests with coverage\nnpm run test:coverage\n```\n\n#### Code Quality\n```bash\n# Lint code\nnpm run lint\n\n# Format code\nnpm run format\n\n# Type check\nnpm run type-check\n\n# Build for production\nnpm run build\n```\n\n## 🤝 Contributing\n\nWe welcome contributions from the chess and developer community! Whether you're fixing bugs, adding features, or improving documentation, your help is appreciated.\n\n### 🚀 Quick Contribution Guide\n1. **🍴 Fork** the repository\n2. **🌿 Create** a feature branch (`git checkout -b feature/amazing-feature`)\n3. **✨ Make** your changes\n4. **🧪 Add** tests for new functionality\n5. **✅ Ensure** all tests pass (`npm test`)\n6. **💾 Commit** your changes (`git commit -m 'Add amazing feature'`)\n7. **📤 Push** to the branch (`git push origin feature/amazing-feature`)\n8. **🔄 Open** a Pull Request\n\n### 🎯 Areas for Contribution\n- 🐛 Bug fixes and improvements\n- ✨ New timer modes or features\n- 🎨 UI/UX enhancements\n- 📚 Documentation improvements\n- 🧪 Test coverage expansion\n- 🌐 Internationalization (i18n)\n\n## 🗺️ Roadmap\n\n### 🔜 Coming Soon\n- [ ] 🎛️ Custom timer presets\n\n### 🚀 Future Plans\n- [ ] 📱 Native mobile app (React Native)\n- [ ] 🤖 AI-powered game analysis\n- [ ] 📊 Advanced statistics dashboard\n\n## 📞 Support \u0026 Community\n\n- **🐛 Bug Reports**: [GitHub Issues](https://github.com/UtkarshTheDev/ChessTicks/issues)\n- **💬 Discussions**: [GitHub Discussions](https://github.com/UtkarshTheDev/ChessTicks/discussions)\n- **📧 Contact**: utkarshweb2023@gmail.com\n- **🌐 Live App**: [chessticks.vercel.app](https://chessticks.vercel.app)\n\n## 📝 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- 🏆 **Chess Community** - For feedback and feature requests\n- 🎨 **[Radix UI](https://www.radix-ui.com/)** - For accessible UI components\n- 🎭 **[shadcn/ui](https://ui.shadcn.com/)** - For beautiful component designs\n- ✨ **[Framer Motion](https://www.framer.com/motion/)** - For smooth animations\n- 🚀 **[Vercel](https://vercel.com/)** - For seamless deployment\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**🏆 Made with ❤️ for the chess community 🏆**\n\n[![Live Demo](https://img.shields.io/badge/🚀%20Try%20ChessTicks%20Now-chessticks.vercel.app-blue?style=for-the-badge)](https://chessticks.vercel.app)\n\n*Professional chess timing for players of all levels*\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Futkarshthedev%2Fchessticks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Futkarshthedev%2Fchessticks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Futkarshthedev%2Fchessticks/lists"}