An open API service indexing awesome lists of open source software.

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.

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