Add distributed user profiles and username directory
This commit is contained in:
10
README.md
10
README.md
@@ -13,6 +13,8 @@
|
||||
- Реализован минимальный GATT transport для обмена mesh-пакетами.
|
||||
- Есть foreground service, Room-хранилище, ACK/retry очередь и UI в стиле Telegram.
|
||||
- Реализованы главный экран со списком чатов, отдельный экран диалога, меню `три точки -> Настройки`, ручная проверка обновлений и опциональная автопроверка через `version.json`.
|
||||
- Добавлены профили пользователей: `firstName`, `lastName`, `username`, описание, локальное редактирование профиля и поиск профиля по `username`.
|
||||
- Профили распространяются как mesh-пакеты и кэшируются узлами локально; по найденному `username` можно получить `peerId`.
|
||||
- При выключенном Bluetooth приложение запрашивает его включение перед запуском mesh.
|
||||
- Публикация APK и сайта автоматизирована через `Makefile`.
|
||||
- Проект и Android-приложение приведены к имени `NNNet`, пакет приложения: `pro.nnnteam.nnnet`.
|
||||
@@ -48,7 +50,7 @@
|
||||
|
||||
4. **Data Layer**
|
||||
- локальное хранилище (Room);
|
||||
- история сообщений и очередь исходящей доставки.
|
||||
- история сообщений, очередь исходящей доставки и каталог профилей.
|
||||
|
||||
5. **Security Layer**
|
||||
- идентификация пользователя;
|
||||
@@ -81,9 +83,10 @@
|
||||
- [x] Добавить список чатов и базовый UI окна сообщений.
|
||||
- [x] Перенести настройки в меню `три точки` и убрать debug-лог из пользовательского интерфейса.
|
||||
- [x] Подключить Room и базовую схему хранения.
|
||||
- [x] Реализовать базовую регистрацию пользователя (локальный профиль).
|
||||
- [x] Добавить кэш профилей из mesh-сети и поиск по `username`.
|
||||
- [x] Добавить логирование сети и debug-экран маршрутов.
|
||||
- [x] Добавить ручную проверку обновлений и опциональную автопроверку клиента.
|
||||
- [ ] Реализовать базовую регистрацию пользователя (локальный профиль).
|
||||
- [ ] Добавить шифрование полезной нагрузки сообщений.
|
||||
- [ ] Написать инструментальные тесты BLE-обмена.
|
||||
- [x] Создать сайт (`index.html`, `styles.css`, `app.js`) на Bootstrap.
|
||||
@@ -108,10 +111,11 @@
|
||||
Проект использует лицензию `GPL-3.0`. См. [LICENSE](/home/dom4k/nnnet/LICENSE).
|
||||
|
||||
## Ближайший следующий шаг
|
||||
Добавить профили пользователей, шифрование payload и инструментальные тесты BLE-обмена между несколькими устройствами.
|
||||
Добавить шифрование payload и инструментальные тесты BLE-обмена между несколькими устройствами.
|
||||
|
||||
## Ограничения сети
|
||||
- Выделенный хост для NNNet не нужен: сеть строится как P2P mesh между устройствами.
|
||||
- Все узлы равноправны на уровне текущей архитектуры: каждое устройство может обнаруживать соседей, принимать и ретранслировать пакеты.
|
||||
- Количество пользователей не бесконечно. Практический предел зависит от плотности устройств, качества BLE-эфира, числа одновременных соединений, частоты ретрансляции и ограничений батареи Android.
|
||||
- Каталог профилей хранится распределённо: каждый узел кэширует увиденные профильные пакеты, поэтому поиск по `username` зависит от того, успел ли профиль распространиться по mesh.
|
||||
- Для школы такая схема подходит как офлайн-сеть без интернета, но для больших нагрузок всё равно понадобятся дополнительные оптимизации маршрутизации, дедупликации и доставки.
|
||||
|
||||
Reference in New Issue
Block a user