Skip to content

Repository files navigation

Афазия Тренер

Афазия Тренер — интерактивный тренажёр для речевой практики

Интерактивное React-приложение с озвучкой, изображениями и тремя форматами упражнений
для регулярной работы со словарным материалом.

Открыть демоверсию · Запустить локально

Образовательный веб-проект · React 19 · 8 категорий · 80 слов · 2026

О проекте

«Афазия Тренер» — клиентское веб-приложение для регулярной речевой практики. Пользователь выбирает тематическую категорию и последовательно работает со звучанием, написанием и изображением слов.

В проекте реализованы восемь категорий по десять слов. Для каждого слова подготовлены иллюстрация и аудиозапись; при невозможности воспроизвести файл используется системный синтез речи браузера.

Приложение не требует регистрации, не содержит форм и не отправляет данные в прикладной backend. Прогресс отображается только в пределах текущего упражнения и не сохраняется после перезагрузки страницы.

Образовательный проект. Не является медицинским изделием и не заменяет консультацию специалиста.

Роли в проекте

Направление Автор Выполненная работа
Речевой материал Соколова Алина Сергеевна, логопед Подбор категорий, слов и структуры упражнений для тренировки называния
Техническая реализация Виктор Нагорный Проектирование интерфейса, разработка логики трёх уровней, адаптивная вёрстка, работа с аудио и визуальной обратной связью

Сценарий тренировки

flowchart LR
    A[Выбор категории] --> B[Выбор уровня]
    B --> C[Выполнение упражнения]
    C --> D[Визуальная обратная связь]
    D --> E[Завершение или повтор]
Loading

Уровень 1 — слушай и выбирай

Пользователь прослушивает слово и выбирает соответствующую картинку. Совпавшие пары отмечаются, а счётчик показывает текущий прогресс.

Уровень 2 — слово и картинка

Пользователь выбирает написанное слово, а затем соотносит его с изображением. Для правильных и ошибочных ответов предусмотрены разные визуальные состояния.

Уровень 3 — собери слово

Пользователь видит изображение и собирает слово из перемешанного набора букв без звуковой подсказки.

Основные возможности

  • 8 тематических категорий и 80 слов с иллюстрациями
  • Индивидуальная аудиозапись каждого слова
  • Резервное воспроизведение через Web Speech API
  • 3 режима упражнений с разной механикой
  • Перемешивание слов, картинок и букв при повторном прохождении
  • Прогресс текущего упражнения и итоговое состояние завершения
  • Отдельные состояния правильного и ошибочного ответа
  • Адаптивная вёрстка для компьютеров, планшетов и смартфонов
  • Поддержка клавиатурного фокуса и понятные доступные имена элементов
  • Уважение системной настройки prefers-reduced-motion

Интерфейс

Описание трёх уровней Афазия Тренер Выбор уровня категории Посуда
Структура тренировки Выбор режима

Три режима упражнений

Первый уровень — слушай и выбирай Второй уровень — слово и картинка Третий уровень — собери слово
Звук и изображение Слово и изображение Сборка слова

Адаптивность

Адаптивные версии Афазия Тренер для компьютера и смартфона

Мобильный интерфейс перестраивает категории и упражнения в компактную сетку, сохраняет крупные области нажатия и не создаёт горизонтальную прокрутку.

Технологии

Технология Назначение
React 19 Компонентный интерфейс и управление состоянием упражнений
JavaScript Логика сопоставления, перемешивания, прогресса и воспроизведения
Vite 8 Сервер разработки и production-сборка
CSS Адаптивная вёрстка, дизайн-система и состояния интерфейса
HTMLMediaElement / Web Speech API Воспроизведение записей и резервный синтез речи
Sharp Оптимизация изображений и подготовка портфолио-превью
ESLint Статическая проверка исходного кода
GitHub Actions Автоматическая проверка линтера, контента, сборки и зависимостей
Vercel Публикация статического приложения и защитные HTTP-заголовки

Качество и безопасность

  • Скрипт check:content проверяет существование изображений и аудио, уникальность идентификаторов и соответствие всех 80 слов аудиокартам
  • Content Security Policy ограничивает загрузку скриптов, стилей, изображений и медиа текущим доменом
  • Настроены X-Content-Type-Options, Referrer-Policy и Permissions-Policy
  • Dependabot еженедельно проверяет npm-зависимости и GitHub Actions
  • CI выполняет установку зависимостей, линтер, проверку контента, production-сборку и npm audit
  • Favicon оптимизирован с 1,37 МБ до 62 КБ

Структура проекта

aphasia-trainer/
├── .github/                   # CI и Dependabot
├── portfolio/screenshots/     # Презентационные изображения проекта
├── public/                    # Favicon, Open Graph-обложка и служебные файлы
├── scripts/                   # Проверка контента и подготовка изображений
├── src/
│   ├── assets/
│   │   ├── audio/             # Аудиозаписи по категориям
│   │   └── ...                # Оптимизированные WebP-иллюстрации
│   ├── App.jsx                # Состояния и интерфейс трёх уровней
│   ├── App.css                # Адаптивные стили приложения
│   ├── content.js             # Категории, слова, картинки и аудиокарты
│   ├── index.css              # Глобальные стили
│   └── main.jsx               # Точка входа React
├── index.html                 # Метаданные и HTML-шаблон
├── vercel.json                # Защитные HTTP-заголовки
└── package.json               # Зависимости и команды проекта

Локальный запуск

Требования: Node.js 22 и npm.

git clone https://github.com/Viktorussia/speech-trainer.git
cd speech-trainer
npm install
npm run dev

После запуска Vite выведет локальный адрес приложения.

Доступные команды

Команда Назначение
npm run dev Запустить сервер разработки
npm run lint Проверить исходный код ESLint
npm run check:content Проверить категории, изображения и аудиофайлы
npm run build Создать production-сборку
npm run preview Локально открыть production-сборку
npm run optimize:images Оптимизировать исходные изображения и favicon
npm run portfolio:assets Собрать responsive-превью и Open Graph-обложку из скриншотов

Проверка проекта

npm run lint
npm run check:content
npm run build

Финальная версия проверена в браузере на ширинах 1440, 390 и 360 пикселей. Пройдены выбор категории, запуск всех трёх уровней, правильное сопоставление слова и изображения, воспроизведение аудио и сборка слова из букв. Ошибок консоли и горизонтального переполнения не обнаружено.


«Афазия Тренер» — образовательный проект. Он не является медицинским изделием, не заявляет клиническую эффективность и не заменяет работу со специалистом.

About

Speech therapy trainer for aphasia rehabilitation. React + Vite + custom audio.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages