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

https://github.com/warlikelaux/strike-v

Геймифицированный трекер привычек, созданный для победы над исполнительной дисфункцией. Проект превращает рутину в игру, где большая цель - это Скала, которую нужно разбить.
https://github.com/warlikelaux/strike-v

adhd ai gamification habit-tracker habit-tracking npm pnpm prettier pwa spa tailwind tailwindcss vite vue vue3

Last synced: 4 months ago
JSON representation

Геймифицированный трекер привычек, созданный для победы над исполнительной дисфункцией. Проект превращает рутину в игру, где большая цель - это Скала, которую нужно разбить.

Awesome Lists containing this project

README

          

# ⚡️ Strike V

Hero Banner

![Status](https://img.shields.io/badge/status-stable-green?style=flat-square)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)
[![Vue 3](https://img.shields.io/badge/vuejs-%2335495e.svg?style=flat-square&logo=vuedotjs&logoColor=%234FC08D)](https://vuejs.org/)
[![Vite](https://img.shields.io/badge/vite-%23646CFF.svg?style=flat-square&logo=vite&logoColor=white)](https://vitejs.dev/)
[![Tailwind CSS](https://img.shields.io/badge/tailwindcss-%2338B2AC.svg?style=flat-square&logo=tailwind-css&logoColor=white)](https://tailwindcss.com/)

Геймифицированный трекер привычек, созданный для победы над исполнительной дисфункцией. Strike V превращает рутину в игру, где любая большая цель — это скала, которую нужно разбить.

## 🎯 Суть проекта

Вместо бесконечных списков дел — простая и мощная механика:

- Метафора: ваша цель — это монолитная скала с определенным запасом HP.
- Правило 5 ударов: у вас есть ровно 5 слотов для задач. Это заставляет фокусироваться только на самом важном.
- Прогресс: каждый выполненный пункт — это удар киркой 🔨. Удар уменьшает здоровье скалы.
- Импульс: мгновенная визуальная и звуковая обратная связь за каждое действие.

## ✨ Основные функции

- Main & Side Quests: ведите одну глобальную цель и сколько угодно побочных квестов.
- Умные типы задач:
- Привычка: многократное выполнение в течение срока.
- Джокер: разовая задача для «разбавления» рутины.
- Замещение: временная задача на один день для гибкости.
- Режимы игры:
- 🎯 Фокус-режим: показывает только одну задачу за раз, помогая не распыляться.
- 🔥 Хардмод: блокирует доступ к сайд-квестам, пока вы не выполнили норму по основной цели.
- Предустановки (Presets): 4 готовых набора задач:
- **Путь Программиста** (90 дней) — кодинг, гиты, алгоритмы
- **Английский: Базовый** (30 дней) — слова, чтение, прослушивание
- **Осознанность** (30 дней) — медитация, йога, цифровая гигиена
- **Похудение и Здоровье** (60 дней) — фитнес, питание, восстановление
- Локальное хранилище: все данные сохраняются в браузере с поддержкой экспорта и импорта для бэкапа.
- Экспорт/импорт: сохраняйте игру как JSON файл или используйте сжатый ключ (Base64) для быстрого обмена состоянием.
- Атмосфера: динамический фон (туман), звуковые эффекты и реактивные комментарии от самой «Скалы».

## 🛠 Технологический стек

**Frontend:**
- Vue 3 (Composition API) с типизацией TypeScript
- Vite (с rolldown-vite для Rust-бандлинга) — молниеносная сборка
- Tailwind CSS 4 для стилизации
- Floating Vue для системы подсказок

**Утилиты:**
- pako — сжатие состояния игры (DEFLATE)
- Плавные анимации через CSS transitions

**Тестирование:**
- Vitest с покрытием кода
- @vue/test-utils для компонент-тестов

> [!NOTE]
> Проект использует **[rolldown-vite](docs/rolldown.md)** — экспериментальный Rust-бандлер для ускорения сборки.

## ⚙️ Настройки

- **День начинается в:** Настраивается час, с которого считается новый день (0-23)
- **Фокус-режим:** Показывает одну случайную задачу, помогает избежать перегруза
- **Хардмод:** Блокирует побочные квесты до выполнения нормы основного квеста
- **Звуки:** Включайте/отключайте звуковые эффекты
- **Подсказки:** Всплывающие описания функций интерфейса

## 📦 Экспорт и импорт

**JSON Экспорт:**
- Сохраняет полное состояние игры в читаемом формате
- Используйте для резервных копий или обмена между устройствами
- Скачивается как `rock-breaker-YYYY-MM-DD.json`

**Сжатый ключ:**
- Компактное представление состояния (Base64 + DEFLATE)
- Идеален для быстрого обмена через текст
- Копируйте и вставляйте в настройках приложения

## 🚀 Как запустить

1. Установите зависимости:
```bash
pnpm install
```
2. Запустите сервер разработки:
```bash
pnpm dev
```
3. Сборка проекта:
```bash
pnpm build
```

## 👨‍💻 Разработка

**Полезные команды:**
```bash
pnpm lint # Проверка кода (ESLint)
pnpm lint:fix # Автоисправление стиля
pnpm test # Запуск unit-тестов
pnpm test:watch # Интерактивный режим тестов
pnpm test:coverage # Отчет о покрытии кода
```

**Структура проекта:**
```text
src/
├── features/ # Модули функционала
│ ├── game/ # Основная игровая логика
│ ├── settings/ # Настройки и предустановки
│ ├── tasks/ # Управление задачами
│ └── help/ # Справка и информация
├── shared/ # Переиспользуемые утилиты и компоненты
│ ├── utils/ # Функции (обработка дат, сжатие)
│ ├── constants/ # Игровые константы
│ └── types/ # TypeScript интерфейсы
```

---

_Strike V — превратите «надо» в «удар»!_