Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

🎰 Plate Roulette

An interactive browser game featuring Ukrainian license plates. Open plates and packs, collect rare combinations, earn in-game coins by selling plates, and build your own collection.

GitHub Repository Live Demo


📌 Project Overview

Plate Roulette is a casual simulator that generates Ukrainian license plates with regional codes, digits, and letter series. Each combination receives a score and an in-game value based on its features and region.

Players can open individual plates or packs, choose a minimum rarity, keep their finds in a personal collection, or sell them for in-game coins. The interface supports Ukrainian and English, while the balance and collection are saved in the browser.


💡 Engineering Highlights

  • Typed domain logic: dedicated modules handle plate generation, rarity, combination scoring, and price calculation.
  • State management with Redux Toolkit: the wallet, available plates, and collection are managed in separate state slices.
  • Persistent game state: the wallet and saved plates are stored in localStorage and validated when loaded.
  • Responsive interface: layouts built with Tailwind CSS adapt to different screen sizes.
  • Ukrainian and English localization: switch languages in the interface; the selected language is saved in the browser.
  • Animated plate reveal: the roulette animates plate generation and allows players to skip the animation.

🛠️ Tech Stack

Category Technology
UI React 19, TypeScript
Application State Redux Toolkit, React Redux
Styling Tailwind CSS 4
Localization i18next, react-i18next
Development Tools Vite, ESLint
Data Persistence Browser localStorage

🚀 Features

  • 🎲 Random plate generation with regional codes, digits, and letter series.
  • ✨ Rarity tiers ranging from common to priceless, with an option to set a minimum rarity for special offers.
  • 🧮 Combination scoring based on matching digits, sequences, palindromes, letter series, and other bonuses.
  • 💰 In-game economy: buy single plates or packs, sell individual finds, or sell an entire open pack.
  • 🗂️ Plate collection: keep your favorite plates and sell them later if you choose.
  • 🌍 Two interface languages: Ukrainian and English.
  • 📢 Demo ticker featuring sample plates.

💻 Local Development

Prerequisites

  • Node.js: 20.19+ or 22.12+
  • npm

Installation and Setup

  1. Clone the repository:
    git clone https://github.com/Skoulskiy/Plate-Roulette.git
    cd Plate-Roulette
  2. Install dependencies:
    npm install
  3. Start the development server:
    npm run dev
  4. Create a production build:
    npm run build
  5. Run the linter:
    npm run lint

👤 Author

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages