Giter Club home page Giter Club logo

nexo-hub's Introduction

Nexo Hub

An IoT service with mobile client and microservices arhitecture.

Content

nexo-hub's People

Contributors

andryss avatar vityaman avatar

Forkers

andryss

nexo-hub's Issues

Подготовить отчет по техническому заданию

Описание

На защите от нас требуется отчет, содержащий следующие пункты:

  • Титульный лист
  • Оглавление
  • Введение
  • Техническое задание
  • Архитектура системы
  • Описание реализации
  • Тестирование
  • Заключение
  • Список литературы
  • Приложения

Не хочется копировать ТЗ и архитектуру из маркдаун файлов куда-то, поэтому хочется как-то собирать докумен из нескольких .md файлов в один .pdf с номерами страниц и в принципе красивый. Для этого можно попробовать использовать Pandoc.

Критерий завершения

  • #1
  • Пункты отчета - Титульный лист, Оглавление, Введение, Техническое задание, Список литературы, Приложения - влиты в trunk.
  • Отчет собирается скриптом с помощью Pandoc.
  • Итоговый документ хорош собой.

Разработать документ, описывающий архитектуру системы

Описание

Комментарии Аркадия Олеговича предлагаю писать в комментарии к этому тикету.

Критерий завершения

  • Замерджен MR с финальной версией markdown документа -- дизайном архитектуры системы.
  • Архитекура утверждена Аркадием Олеговичем.

Ресурсы

Разработать и продумать базовый интерфейс мобильного приложения

В рамках задачи нужно

  • разработать концептуальный дизайн интерфейса,
  • детализировать дизайн для соответствия определенным пользовательским сценариям (Use-case'ам),
  • выделить логические компоненты и необходимы для них данные

Handle "Too many publishes in progress" exception

nexohub-fake-users   | Exception in thread "pool-1-thread-12" Too many publishes in progress (32202)
nexohub-fake-users   |  at org.eclipse.paho.client.mqttv3.internal.ClientState.send(ClientState.java:524)
nexohub-fake-users   |  at org.eclipse.paho.client.mqttv3.internal.ClientComms.internalSend(ClientComms.java:161)
nexohub-fake-users   |  at org.eclipse.paho.client.mqttv3.internal.ClientComms.sendNoWait(ClientComms.java:191)
nexohub-fake-users   |  at org.eclipse.paho.client.mqttv3.MqttAsyncClient.publish(MqttAsyncClient.java:1251)
nexohub-fake-users   |  at org.eclipse.paho.client.mqttv3.MqttClient.publish(MqttClient.java:570)
nexohub-fake-users   |  at org.eclipse.paho.client.mqttv3.MqttClient.publish(MqttClient.java:562)
nexohub-fake-users   |  at org.vivlaniv.nexohub.ScenarioKt.authUser(Scenario.kt:132)
nexohub-fake-users   |  at org.vivlaniv.nexohub.ScenarioKt$startUserScenario$onSuccessRegistration$1.invoke(Scenario.kt:58)
nexohub-fake-users   |  at org.vivlaniv.nexohub.ScenarioKt$startUserScenario$onSuccessRegistration$1.invoke(Scenario.kt:56)
nexohub-fake-users   |  at org.vivlaniv.nexohub.ScenarioKt$registerUser$$inlined$subscribe$1$1.invokeSuspend(Mqtt.kt:37)
nexohub-fake-users   |  at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
nexohub-fake-users   |  at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
nexohub-fake-users   |  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
nexohub-fake-users   |  at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
nexohub-fake-users   |  at java.base/java.lang.Thread.run(Thread.java:1583)

Настроить GitHub Action для проверки Markdown документов

Описание

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

Критерий завершения

  • Влит МР с GitHub Action для проверки markdown файлов.

Ресурсы

Добавить схему сигналов

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

Разобраться с очередью сообщений

Что нужно сделать в рамках задачи:

  • Понять какую очередь мы можем/нам нужно использовать - Redis (done)
  • Понять можно ли будет из нашей очереди читать по событию а не по тайминг, и если только по таймингу, то понять какой будет удачный и что не вызовет сильную нагрузку на приложение
  • Попытаться настроить хоть какой-то сервис который будет писать в очередь и читать из нее, чтобы это можно было в дальнейшем использовать в других сервисах

Разработать документ, описывающий техническое задание

Описание

Комментарии Аркадия Олеговича предлагаю писать в комментарии к этому тикету.

Критерий завершения

  • Замерджен MR с первой версией markdown документа -- техническим заданием.

Ресурсы

Разработать Use-Case диаграмму, продумать пользовательские сценарии

Необходимо продумать пользовательские сценарии и построить Use-Case диаграмму для определения требуемых к реализации функций в приложении.

Для генерации идей вариантов использования приложения (пользовательских сценариев) соданно обсуждение #26, на основе которого строится Use-Case диаграмма.

Текущий вариант диаграммы:

Image

Наладить процесс разработки

Описание

Хочется иметь зафиксированное описание процесса разработки в нашей команде.

Следует включить туда:

  • Какие встречи мы проводим, когда и с какой целью
  • Как создавать задачи, как называть коммиты, MRы

Критерий завершения

  • Описаны встречи, все члены команды согласны с регламентом.

Ресурсы

Вернуть длину строк 2000 и починить все текущие доки

Мы все-таки решили, что лучше полагаться на word-wrapping -- он есть везде. Поэтому надо настроить конфиг маркдаунлинта так, чтобы он не ругался на линии длиннее 80 симолов (можно выставить 2к просто) в параграфах и вставках кода.

Техническое задание: Список заинтересованных лиц и требования каждого из них

Описание

В презентации нашел такие слова про ТЗ:

Составляете список заинтересованных лиц (например, мы делаем какую-то систему для какого-то завода)
• Директор завода
• Мастер цеха
• Бухгалтер
• Главный инженер
• Рабочий
• Охранник
• Дворник
• Гость/посетитель
• Разработчик системы
...
Составляете список требований для каждого из заинтересованных лиц

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

Критерий завершения

  • Влит MR с правками в ТЗ, добавлен раздел "Заинтересованные лица" и перечислены требования каждого.

Ресурсы

  • Презентация по лекции 1: 35 слайд

Завести сервис для работы с БД

https://github.com/YuikoSempai/sample-db-service - шаблон сервис (в разработке)

На данный момент нужно описать сущности которые будут храниться в базе данных, единственное что пришло в голову:

  • Логины пароли пользователей
  • Историю датчиков
  • Профили и группы пользователя
  • Сами датчики (сервис симуляции домов)

Инициализировать gradle проект в репозитории

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

nexo-hub
- build-logic
- android-app
- gateway-service
- log-service
- database-service
- load-generator

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

В каждом подпроекте будет свой settings.gradle.kts, но все будут подтягивать build-logic в качестве зависимости, а там уже будут описаны всякие общие штуки.

Изучить существующие решения для управления умным домом

Описание

Идеи для требований к функциональности и удобству можно обрести, посмотрев на наших конкурентов -- систем для управления умным домом от больших компаний вроде Сбера, Яндекса, Гугла, Амазона и других. У них есть свои приложения. Также нужно понять, примерно каким образом они работают: на каких технологиях, протоколах и прочем.

Ресурсы

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.