Finish NNNet app shell, updates, and docs
Some checks failed
Android CI / build (push) Has been cancelled

This commit is contained in:
dom4k
2026-03-16 19:58:13 +00:00
parent 53fc4c1ff4
commit 3e22bb699e
25 changed files with 1619 additions and 127 deletions

View File

@@ -1,4 +1,4 @@
# School BLE Mesh Messenger
# NNNet
Проект для школьного офлайн-месседжера на базе **BLE P2P mesh-сети**.
@@ -8,6 +8,14 @@
- работа в условиях отсутствия Wi-Fi/мобильной сети;
- безопасное взаимодействие с базовой модерацией.
## Текущее состояние
- BLE discovery + advertising работают.
- Реализован минимальный GATT transport для обмена mesh-пакетами.
- Есть foreground service, Room-хранилище, ACK/retry очередь и базовый Telegram-подобный UI.
- Реализованы список чатов, окно диалога, вкладка настроек, ручная проверка обновлений и опциональная автопроверка через `version.json`.
- При выключенном Bluetooth приложение запрашивает его включение перед запуском mesh.
- Публикация APK и сайта автоматизирована через `Makefile`.
## Стек
- Android приложение: **Kotlin**
- Сборка: **Gradle** + `Gradle Wrapper`
@@ -34,12 +42,12 @@
3. **Messaging Layer**
- личные сообщения;
- групповые чаты (класс/учителя);
- список чатов и окно диалога;
- статусы доставки (queued/sent/relayed/delivered).
4. **Data Layer**
- локальное хранилище (Room);
- кэш пользователей, чатов, сообщений, ключей.
- история сообщений и очередь исходящей доставки.
5. **Security Layer**
- идентификация пользователя;
@@ -66,12 +74,13 @@
- [x] Описать формат сетевого пакета (черновой JSON codec + модель пакета).
- [x] Реализовать базовый BLE bootstrap (scanner + advertiser + runtime permissions).
- [x] Реализовать минимальный GATT-обмен между BLE-узлами.
- [ ] Реализовать очередь отправки + ретраи + ACK timeout.
- [x] Реализовать очередь отправки + ретраи + ACK timeout.
- [x] Добавить защиту от дубликатов по `messageId` (in-memory cache, базово).
- [x] Реализовать mesh-forwarding с ограничением TTL (routing action layer, базово).
- [ ] Добавить UI для списка чатов и окна сообщений.
- [ ] Подключить Room и миграции схемы.
- [x] Добавить список чатов и базовый UI окна сообщений.
- [x] Подключить Room и базовую схему хранения.
- [x] Добавить логирование сети и debug-экран маршрутов.
- [x] Добавить ручную проверку обновлений и опциональную автопроверку клиента.
- [ ] Реализовать базовую регистрацию пользователя (локальный профиль).
- [ ] Добавить шифрование полезной нагрузки сообщений.
- [ ] Написать инструментальные тесты BLE-обмена.
@@ -91,5 +100,8 @@
- `make publish` — увеличить версию, собрать APK, опубликовать клиент и перезагрузить `nginx`.
- `make server-start|server-stop|server-restart|server-status|server-rebuild` — управление `nginx`.
## Лицензия
Проект использует лицензию `GPL-3.0`. См. [LICENSE](/home/dom4k/nnnet/LICENSE).
## Ближайший следующий шаг
Добавить очередь отправки, ACK timeout/retry и локальное хранение сообщений через Room.
Добавить профили пользователей, шифрование payload и инструментальные тесты BLE-обмена между несколькими устройствами.