From 6a961209ccf07082fcacfefc458919e4f4155ffd Mon Sep 17 00:00:00 2001 From: Artem Kokos Date: Wed, 22 Apr 2026 21:13:16 +0700 Subject: [PATCH] docs: update project README --- README.md | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1b8945a..d4fcecc 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,9 @@ - Сцены (загружаются с сервера) - Таймер "включить на 4 часа" - **Расписания** -- одноразовые таймеры и cron-задачи с выбором дней недели. Просмотр и отмена активных задач. +- **API-ключи** -- просмотр, создание, отзыв и повторная активация гостевых ключей для администраторов. +- **Статистика и лог событий** -- просмотр сводки по группам и последних событий сервера. +- **Геофенс** -- опциональное автовыключение света при уходе от дома. ## Стек @@ -21,6 +24,9 @@ - Riverpod -- управление состоянием - Dio -- HTTP-клиент - SharedPreferences -- локальное хранение настроек +- Geolocator -- геолокация +- Workmanager -- периодические фоновые задачи +- Flutter Local Notifications -- локальные уведомления ## Структура проекта @@ -31,15 +37,19 @@ lib/ │ └── home_config.dart -- модель "дома" (сервер) ├── services/ │ ├── api_client.dart -- обёртка Dio для Ignis API +│ ├── geofence_worker.dart -- фоновая проверка геофенса │ └── settings_service.dart -- хранение домов в SharedPreferences ├── providers/ │ └── providers.dart -- Riverpod-провайдеры ├── screens/ +│ ├── api_keys_screen.dart -- управление API-ключами +│ ├── event_log_screen.dart -- лог событий │ ├── homes_screen.dart -- список домов │ ├── home_edit_screen.dart -- добавление/редактирование дома │ ├── remote_screen.dart -- пульт управления группами │ ├── group_edit_screen.dart -- создание группы -│ └── schedules_screen.dart -- расписания +│ ├── schedules_screen.dart -- расписания +│ └── stats_screen.dart -- статистика └── widgets/ ├── group_card.dart -- карточка группы с управлением └── color_picker.dart -- HSV-пикер цвета @@ -60,6 +70,17 @@ flutter build apk --release APK: `build/app/outputs/flutter-apk/app-release.apk` +> Сейчас release APK подписывается debug-ключом из Flutter-шаблона. Для личной установки на телефон этого достаточно, для настоящего релиза подпись нужно заменить. + +## Проверки + +```bash +flutter analyze +flutter test +``` + +Текущий baseline после коммита `ffc2ea1` зелёный: анализатор без issues, тесты проходят. + ## Настройка При первом запуске приложение попросит добавить "дом" -- указать адрес сервера Ignis и API-ключ. После этого откроется пульт управления группами. @@ -84,9 +105,22 @@ APK: `build/app/outputs/flutter-apk/app-release.apk` | POST | `/schedules/cron` | Cron-расписание | | GET | `/schedules/tasks` | Список задач | | DELETE | `/schedules/{job_id}` | Отменить задачу | +| GET | `/auth/me` | Информация о текущем ключе | +| GET | `/api-keys` | Список гостевых ключей | +| POST | `/api-keys` | Создать гостевой ключ | +| POST | `/api-keys/revoke` | Отозвать ключ | +| POST | `/api-keys/activate` | Активировать ключ | +| GET | `/stats/summary` | Сводная статистика | +| GET | `/stats/log` | Лог событий | Авторизация: заголовок `X-API-Key`. +## Текущие ограничения + +- Целевая платформа сейчас Android. +- API-ключи пока хранятся в `SharedPreferences`; это следующий приоритетный технический долг. +- Архитектура всё ещё содержит крупный `providers.dart` и много сырых `Map`. + ## Лицензия Частный проект.