diff --git a/README.en.md b/README.en.md
new file mode 100644
index 0000000..cf4a917
--- /dev/null
+++ b/README.en.md
@@ -0,0 +1,57 @@
+# MosPolyHelper
+
+[Русский](README.md) · **English**
+
+[](https://github.com/EDeev/mospoly-helper/actions/workflows/ci.yml)
+
+A Telegram bot that sends a video route to a classroom in Moscow Polytechnic University buildings: pick a
+campus, type the room number and get a video note with the way from the campus gate or from the building
+entrance.
+
+**Status:** team coursework (project practice, Moscow Polytech, group 241-327, 2025), completed · bot
+[@MosPoly_Helperbot](https://t.me/MosPoly_Helperbot)
+
+**Stack:** Python 3.10 · aiogram 3 · MoviePy 2 · FFmpeg · Docker
+
+## Features
+
+- Five campuses: Bolshaya Semyonovskaya, Pavla Korchagina, Pryanishnikova, Mikhalkovskaya, Avtozavodskaya
+- A route from the campus gate or the building entrance: the clip is assembled from "building → floor →
+ room" fragments, sped up 2× and encoded for Telegram (H.264, 1500k)
+- Finished clips are cached and repeat requests are instant; `combine.py` pre-builds the cache
+- Room number validation with hints when the format or campus doesn't match
+
+Videos were filmed for the Pryanishnikova buildings (76 rooms) and partly for Avtozavodskaya; for other
+campuses the bot replies that the route isn't available yet and suggests writing by email.
+
+## Running
+
+```bash
+git clone https://github.com/EDeev/mospoly-helper.git && cd mospoly-helper
+cp .env.example .env # BOT_TOKEN from @BotFather
+docker compose up -d
+```
+
+Without Docker: Python 3.10+, FFmpeg, `pip install -r requirements.txt`, then
+`cd src/code && BOT_TOKEN=… python bot.py`. More in [QUICKSTART.md](QUICKSTART.md) and [DOCKER.md](DOCKER.md) (in Russian).
+
+> [!NOTE]
+> The repository holds about 220 video clips (sources and cache), so it is over 500 MB.
+
+## License
+
+Coursework (project practice, Moscow Polytechnic University, 2025). The code is open for study; there is
+no separate license.
+
+## Authors
+
+- **Egor Deev** — [GitHub](https://github.com/EDeev)
+- **Petr Saprykin** — [GitHub](https://github.com/PetrSaprykin)
+- **Ruslan Starkov** — [GitHub](https://github.com/RayStar-k)
+
+---
+
+
+
⭐ If you find this project useful, give it a star on GitHub!
+
Made with ❤️ by Moscow Polytech students, group 241-327
+
diff --git a/README.md b/README.md
index f66ef40..8ce8519 100644
--- a/README.md
+++ b/README.md
@@ -1,330 +1,76 @@
-# МосПолиХелпер 🎓
+# МосПолиХелпер
-**Телеграм-бот для навигации по кампусам Московского Политехнического Университета**
+**Русский** · [English](README.en.md)
-[](https://python.org)
-[](https://aiogram.dev/)
-[](https://moviepy.readthedocs.io/)
-[](https://www.docker.com/)
-[](https://t.me/MosPoly_Helperbot)
-[](LICENSE)
+[](https://github.com/EDeev/mospoly-helper/actions/workflows/ci.yml)
-## 📋 Описание
+Telegram-бот, который присылает видео-маршрут до нужной аудитории в корпусах Московского Политеха:
+выбираешь кампус, пишешь номер кабинета — получаешь кружок с дорогой от входа на территорию или от входа
+в корпус.
-МосПолиХелпер — это практическое решение реальной проблемы ориентирования в кампусах Московского Политехнического Университета. Бот разработан студентами для студентов и предоставляет интерактивные видео-маршруты до любого кабинета в пяти основных кампусах университета.
+**Статус:** учебный командный проект (проектная практика, Московский Политех, группа 241-327, 2025),
+завершён · бот [@MosPoly_Helperbot](https://t.me/MosPoly_Helperbot)
-Проект создан в рамках проектной практики и демонстрирует применение современных технологий для решения повседневных задач студенческой жизни.
+**Стек:** Python 3.10 · aiogram 3 · MoviePy 2 · FFmpeg · Docker
-### ✨ Основные возможности
+## Возможности
-- 🗺️ **Интерактивная навигация** по 5 кампусам МосПолитеха
-- 🎥 **Динамические видео-маршруты** от входа на территорию или от входа в корпус
-- ⚡ **Мгновенная отдача** готовых маршрутов благодаря интеллектуальному кешированию
-- 📱 **Интуитивный интерфейс** с адаптивными inline-кнопками
-- 🔄 **Автоматическая обработка видео** с оптимизацией для Telegram (H.264, битрейт 1500k)
-- 🚀 **Высокая производительность** — время отклика менее 5 секунд для кешированных маршрутов
-- 📊 **Умная валидация** входных данных с подсказками пользователю
+- Пять кампусов: Большая Семёновская, Павла Корчагина, Прянишникова, Михалковская, Автозаводская
+- Маршрут от входа на территорию или от входа в корпус: ролик собирается из фрагментов «корпус → этаж →
+ кабинет», ускоряется вдвое и кодируется под Telegram (H.264, 1500k)
+- Готовые ролики кешируются, повторный запрос отдаётся сразу; `combine.py` собирает кеш заранее
+- Проверка номера кабинета и подсказки, если формат не тот или кампус не совпадает
-### 🏢 Поддерживаемые кампусы
+Видео сняты для корпусов на Прянишникова (76 кабинетов) и частично на Автозаводской; для остальных
+кампусов бот отвечает, что маршрута пока нет, и предлагает написать на почту.
-| Кампус | Код | Формат номера кабинета | Пример |
-|--------|-----|------------------------|---------|
-| **Большая Семёновская** | `bs` | [корпус][этаж]-[номер] | `а1-01`, `б2-15` |
-| **Павла Корчагина** | `pk` | пк[корпус][этаж][номер] | `пк1201`, `пк2315` |
-| **Прянишникова** | `pr` | пр[корпус][этаж][номер] | `пр1101`, `пр2208` |
-| **Михалковская** | `mi` | м[корпус][этаж][номер] | `м1205`, `м3110` |
-| **Автозаводская** | `av` | ав[корпус][этаж][номер] | `ав2301`, `ав1105` |
+| Кампус | Формат кабинета | Пример |
+|---|---|---|
+| Прянишникова | пр[корпус][этаж][номер] | `пр2202а` |
+| Автозаводская | ав[корпус][этаж][номер] | `ав2301` |
+| Павла Корчагина | пк[корпус][этаж][номер] | `пк1201` |
+| Михалковская | м[корпус][этаж][номер] | `м1205` |
+| Большая Семёновская | [корпус][этаж]-[номер] | `а1-01` |
-> 📝 **Важно**: Указывайте номер кабинета точно в том формате, как он указан в личном кабинете или расписании
-
-## 🚀 Быстрый старт
-
-### 🐳 Запуск через Docker (рекомендуется)
+## Запуск
```bash
-# 1. Клонирование репозитория
-git clone https://github.com/EDeev/mospoly-helper.git
-cd mospoly-helper
-
-# 2. Настройка токена
-cp .env.example .env
-# Отредактируйте .env и добавьте ваш BOT_TOKEN
-
-# 3. Запуск
-docker-compose up -d
+git clone https://github.com/EDeev/mospoly-helper.git && cd mospoly-helper
+cp .env.example .env # BOT_TOKEN от @BotFather
+docker compose up -d
```
-📖 **Подробнее**: [QUICKSTART.md](QUICKSTART.md) | [DOCKER.md](DOCKER.md)
+Без Docker: Python 3.10+, FFmpeg, `pip install -r requirements.txt`, затем
+`cd src/code && BOT_TOKEN=… python bot.py`. Подробнее — [QUICKSTART.md](QUICKSTART.md) и [DOCKER.md](DOCKER.md).
-### Команды бота
+> [!NOTE]
+> В репозитории около 220 роликов (исходники и кеш), поэтому он весит больше 500 МБ.
-- `/start` — Приветствие и инструкции
-- `/help` — Справка по командам
-- `/route` — Построить маршрут до кабинета
-
-### Использование
-
-1. Запустите бота командой `/start`
-2. Выберите команду `/route`
-3. Укажите кампус из предложенного списка
-4. Введите номер кабинета в точном формате
-5. Выберите тип маршрута (от территории или от входа в корпус)
-6. Получите видео с маршрутом
-
-## 🛠️ Архитектура и технический стек
-
-### 🧩 Технологии
-
-| Компонент | Технология | Версия | Назначение |
-|-----------|------------|---------|------------|
-| **Backend** | Python | 3.10+ | Основной язык разработки |
-| **Bot Framework** | Aiogram | 3.0.0 | Асинхронная работа с Telegram Bot API |
-| **Video Processing** | MoviePy | 1.0.3 | Обработка и монтаж видеофрагментов |
-| **Video Encoding** | FFmpeg | latest | Кодирование и оптимизация видео |
-| **Data Storage** | JSON | native | Хранение пользовательских сессий |
-| **State Management** | MemoryStorage | aiogram | Управление состояниями пользователей |
-
-### 🏗️ Модульная архитектура
+## Структура
```
-src/code/
-├── bot.py # 🚀 Точка входа и координация приложения
-├── config.py # ⚙️ Конфигурационные параметры
-├── database.py # 💾 Управление пользовательскими данными
-├── handlers.py # 🎛️ Обработчики команд и callback'ов
-├── init.py # 🔧 Инициализация компонентов бота
-├── scripts.py # 🎬 Обработка видео и формирование маршрутов
-└── combine.py # 🔄 Утилита для предварительной генерации кеша
+src/code/ бот: handlers.py (команды и кнопки), scripts.py (маршруты и монтаж), combine.py (кеш)
+src/videos/ исходные фрагменты: <кампус>/buildings, floors, offices
+src/data/cache собранные маршруты
+site/ сайт проекта практики
+reports/ отчёты участников и презентация
+task/ задание практики
```
-**Принципы проектирования:**
-- **Single Responsibility** — каждый модуль отвечает за конкретную задачу
-- **Dependency Injection** — слабая связанность между компонентами
-- **Async/Await** — асинхронная обработка для высокой производительности
-- **Error Handling** — корректная обработка ошибок на всех уровнях
+## Лицензия
-## 📁 Структура данных и файловая система
+Учебный проект (проектная практика, Московский Политех, 2025). Код открыт для изучения, отдельной
+лицензии нет.
-```
-📦 mospoly-helper/
-├── 📂 src/code/ # Исходный код
-├── 📂 data/ # Рабочие данные
-│ ├── 📂 cache/ # Сгенерированные видеомаршруты
-│ │ ├── 📄 *-all.mp4 # Полные маршруты (от территории)
-│ │ └── 📄 *-small.mp4 # Короткие маршруты (от входа в корпус)
-│ ├── 📂 users/ # JSON-файлы сессий пользователей
-│ │ └── 📄 {user_id}.json # Данные конкретного пользователя
-│ └── 📂 videos/ # Библиотека исходных видеофрагментов
-│ ├── 📂 av/ # Автозаводская
-│ │ ├── 📂 buildings/ # Видео от входа до корпуса
-│ │ ├── 📂 floors/ # Видео по этажам
-│ │ └── 📂 offices/ # Видео до конкретных кабинетов
-│ ├── 📂 bs/ # Большая Семёновская
-│ ├── 📂 mi/ # Михалковская
-│ ├── 📂 pk/ # Павла Корчагина
-│ └── 📂 pr/ # Прянишникова
-└── 📂 logs/ # Журналы работы (рекомендуется)
-```
+## Авторы
-## ⚡ Установка и настройка
-
-### 📋 Системные требования
-
-- **OS**: Linux (Ubuntu 20.04+), macOS, Windows 10+
-- **Python**: 3.10 или выше
-- **RAM**: минимум 2 ГБ (рекомендуется 4 ГБ)
-- **Storage**: минимум 10 ГБ для видеофрагментов и кеша
-- **Network**: стабильное интернет-соединение
-
-### 🔧 Установка зависимостей
-
-1. **Клонирование репозитория**
-```bash
-git clone https://github.com/EDeev/mospoly-helper.git
-cd mospoly-helper
-```
-
-2. **Установка Python-зависимостей**
-```bash
-pip install -r requirements.txt
-```
-
-3. **Установка FFmpeg**
-
-**Ubuntu/Debian:**
-```bash
-sudo apt update && sudo apt install ffmpeg
-```
-
-**macOS (с Homebrew):**
-```bash
-brew install ffmpeg
-```
-
-**Windows:**
-Скачайте с [официального сайта](https://ffmpeg.org/download.html) и добавьте в PATH
-
-### ⚙️ Конфигурация
-
-1. **Создание Telegram бота**
- - Перейдите к [@BotFather](https://t.me/BotFather)
- - Создайте нового бота командой `/newbot`
- - Сохраните полученный токен
-
-2. **Настройка конфигурации**
-```python
-# config.py
-BOT_TOKEN = "YOUR_BOT_TOKEN_HERE" # Замените на ваш токен
-```
-
-3. **Создание структуры каталогов**
-```bash
-mkdir -p data/{cache,users,videos/{av,bs,mi,pk,pr}/{buildings,floors,offices}}
-mkdir -p logs
-```
-
-### 🚀 Запуск
-
-**Основной режим:**
-```bash
-cd src/code
-python bot.py
-```
-
-**С логированием:**
-```bash
-python bot.py 2>&1 | tee ../../logs/bot.log
-```
-
-**Предварительная генерация кеша (опционально):**
-```bash
-python combine.py # Генерирует кеш для всех доступных маршрутов
-```
-
-## 🎯 Алгоритмы и оптимизации
-
-### 🎬 Обработка видео
-
-Система обработки видео использует продвинутые техники оптимизации:
-
-```python
-# Параметры кодирования (scripts.py)
-full_clip.write_videofile(
- filename,
- fps=30, # Оптимальная частота кадров
- codec="libx264", # Эффективный кодек H.264
- bitrate="1500k", # Баланс качество/размер
- preset="fast", # Быстрое кодирование
- ffmpeg_params=["-crf", "23"] # Constant Rate Factor для качества
-)
-```
-
-**Применяемые оптимизации:**
-- ✂️ **Удаление аудиодорожки** — экономия 30-40% размера файла
-- ⏩ **Ускорение в 2 раза** — сокращение времени просмотра
-- 📐 **Изменение разрешения до 400px** — оптимизация для мобильных устройств
-- 🗜️ **CRF 23** — оптимальный баланс качества и размера файла
-
-### ⚡ Система кеширования
-
-**Двухуровневое кеширование:**
-1. **Полные маршруты** (`*-all.mp4`) — от входа на территорию
-2. **Короткие маршруты** (`*-small.mp4`) — от входа в корпус
-
-**Алгоритм проверки кеша:**
-```python
-# Проверка существования готового файла
-cache_path = f"../data/cache/{route_id}-{'all' if full_route else 'small'}.mp4"
-if os.path.exists(cache_path):
- return cache_path # Мгновенная отдача
-else:
- return await make_full_clip(video_segments) # Генерация нового
-```
-
-### 📊 Производительность
-
-| Метрика | Кешированный маршрут | Новый маршрут |
-|---------|---------------------|---------------|
-| **Время отклика** | < 3 секунды | 15-30 секунд |
-| **Размер файла** | 2-8 МБ | аналогично |
-| **Качество видео** | 400p, 30fps | аналогично |
-| **Нагрузка на CPU** | минимальная | высокая |
-
-## 🧪 Оптимизации производительности
-
-| Компонент | До оптимизации | После оптимизации | Улучшение |
-|-----------|----------------|-------------------|-----------|
-| **Размер видео** | 15-25 МБ | 2-8 МБ | 🔻 70% |
-| **Время генерации** | 45-60 сек | 15-30 сек | 🔻 50% |
-| **Время отдачи (кеш)** | N/A | < 3 сек | ⚡ мгновенно |
-| **Использование RAM** | 200-300 МБ | 100-150 МБ | 🔻 40% |
-
-## 📦 combine.py — Пакетная генерация кеша
-
-Утилита для предварительной генерации видеомаршрутов:
-
-```python
-async def combine_all_videos():
- """
- Массовая генерация кеша для всех доступных маршрутов
-
- Обрабатывает:
- - Все корпуса: pr, pk, mi, av, bs
- - Полные и короткие маршруты для каждого кабинета
- - Пропускает несуществующие видеофрагменты
- """
- corpora = ["pr", "pk", "mi", "av", "bs"]
-
- for corpus in corpora:
- offices_path = f"../videos/{corpus}/offices"
- for video_file in os.listdir(offices_path):
- # Генерация полного маршрута
- await make_full_clip([building_path, floor_path, office_path])
- # Генерация короткого маршрута
- await make_full_clip([floor_path, office_path])
-```
-
-**Использование:**
-```bash
-cd src/code
-python combine.py # Запуск в фоновом режиме для больших объемов
-```
-
-## 👨💻 Команда разработки
-
-Проект создан в рамках проектной практики студентами группы **241-327** направления "Системная и программная инженерия":
-
-| Участник | Роль | Вклад | Контакты |
-|----------|------|-------|----------|
-| **[Деев Егор Викторович](https://github.com/EDeev)** | Tech Lead & Backend Developer | Архитектура системы, обработка видео, оптимизация производительности | [@EDeev](https://t.me/EDeev) |
-| **[Сапрыкин Пётр Иванович](https://github.com/PetrSaprykin)** | Frontend & UX Developer | Пользовательский интерфейс, логика взаимодействия, тестирование | [@PetrSaprykin](https://github.com/PetrSaprykin) |
-| **[Старков Руслан Владимирович](https://github.com/RayStar-k)** | DevOps & QA Engineer | Развертывание, мониторинг, обеспечение качества | [@RayStar-k](https://github.com/RayStar-k) |
-
-**Научное руководство:**
-- **Куратор практики**: Баринова Наталья Владимировна
-- **Кураторы проектной деятельности**: Киреева Галина Ивановна, Будылина Евгения Александровна
-
-## 📞 Поддержка и контакты
-
-### 🆘 Получение помощи
-
-**Официальные каналы поддержки:**
-
-1. **📧 Email**: [support@new-devs.ru](mailto:support@new-devs.ru)
- - Время ответа: 24-48 часов
- - Для технических вопросов и предложений
-
-2. **🐙 GitHub Issues**: [Создать issue](https://github.com/EDeev/mospoly-helper/issues)
- - Для сообщений об ошибках и feature requests
- - Публичное обсуждение и tracking
-
-## 📄 Лицензия и правовая информация
-
-Этот проект создан в учебных целях как работа по дисциплине "Проектной практики" в Московском Политехническом Университете, 2024-2025 учебный год.
+- **Деев Егор** — [GitHub](https://github.com/EDeev)
+- **Сапрыкин Пётр** — [GitHub](https://github.com/PetrSaprykin)
+- **Старков Руслан** — [GitHub](https://github.com/RayStar-k)
---
-
МосПолиХелпер — делаем навигацию в университете простой и понятной! 🎓✨
-
Создано с ❤️ студентами МосПолитеха для студенческого сообщества
+
⭐ Если проект оказался полезным, поставьте звёздочку на GitHub!
+
Сделано с ❤️ студентами Московского Политеха, группа 241-327