https://github.com/erbilnas/gallop-arena
Gallop Arena is an interactive horse racing game built with Vue 3, TypeScript, and Pinia. The game features dynamic horse racing simulations with animated horse movements and comprehensive race scheduling.
https://github.com/erbilnas/gallop-arena
bun cursor cypress github-actions horse-racing pinia typescript vercel vue3
Last synced: 5 months ago
JSON representation
Gallop Arena is an interactive horse racing game built with Vue 3, TypeScript, and Pinia. The game features dynamic horse racing simulations with animated horse movements and comprehensive race scheduling.
- Host: GitHub
- URL: https://github.com/erbilnas/gallop-arena
- Owner: erbilnas
- Created: 2025-04-11T14:42:13.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-13T13:35:23.000Z (about 1 year ago)
- Last Synced: 2025-04-13T15:17:10.937Z (about 1 year ago)
- Topics: bun, cursor, cypress, github-actions, horse-racing, pinia, typescript, vercel, vue3
- Language: TypeScript
- Homepage: https://gallop-arena.vercel.app
- Size: 2.5 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# Gallop Arena - Interactive Horse Racing Game
Gallop Arena is an interactive horse racing game built with Vue 3, TypeScript, and Pinia. The game features dynamic horse racing simulations with animated horse movements and comprehensive race scheduling.
## ๐ฎ Game Features
- **Dynamic Horse Generation**: Randomly generates 1-20 unique horses with distinct colors and condition scores
- **Race Scheduling**: Creates a 6-round race schedule with varying track lengths
- **Interactive Racing**: Real-time animated horse movements during races
- **Results Tracking**: Detailed race results displayed after each round
- **Modern UI**: Clean and responsive user interface
## ๐ Race Specifications
The game includes 6 rounds with the following track lengths:
- Round 1: 1200 meters
- Round 2: 1400 meters
- Round 3: 1600 meters
- Round 4: 1800 meters
- Round 5: 2000 meters
- Round 6: 2200 meters
Each round features 10 randomly selected horses from the available pool of 20 horses.
## ๐ ๏ธ Technical Stack
- **Frontend Framework**: Vue 3
- **Language**: TypeScript
- **State Management**: Pinia
- **Build Tool**: Vite
- **Testing**: Vitest (Unit Tests) + Cypress (E2E Tests)
- **Linting**: ESLint + Prettier
- **Package Manager**: Bun
## ๐ Getting Started
### Prerequisites
- Node.js (LTS version recommended)
- Bun package manager
### Installation
1. Clone the repository:
```bash
git clone https://github.com/your-username/gallop-arena.git
cd gallop-arena
```
2. Install dependencies:
```bash
bun install
```
### Development
Start the development server:
```bash
bun dev
```
### Building for Production
```bash
bun run build
```
## ๐งช Testing
### Unit Tests
```bash
bun test:unit
```
### End-to-End Tests
```bash
# Development mode
bun test:e2e:dev
# Production mode
bun test:e2e
```
## ๐ Code Quality
### Linting
```bash
bun lint
```
### Type Checking
```bash
bun run type-check
```
## ๐๏ธ Project Structure
```
gallop-arena/
โโโ src/ # Source files
โโโ cypress/ # E2E tests
โโโ public/ # Static assets
โโโ tests/ # Unit tests
โโโ vite.config.ts # Vite configuration
```
## ๐ Code Style
- Follows SOLID principles
- Uses TypeScript (no `any` type)
- Implements BEM methodology for CSS
- Clean code practices
- Comprehensive unit and end-to-end tests
## ๐ค Contributing
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
## ๐ฅ Authors
- Erbil Nas