Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#15 Sync tech task structure with presentation #17

Merged
merged 2 commits into from
Mar 1, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
107 changes: 77 additions & 30 deletions doc/technical-task.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,64 @@
# Техническое задание

## 1 Введение
## Введение

### 1.1 Цель
[//]: # (Аргументы доказывающие важность, нужность, своевременность и
необходимость данной разработки)

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

[//]: # (Цель работы)
vityaman marked this conversation as resolved.
Show resolved Hide resolved

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

[//]: # (Задачи работы)

Для этого необходимо изучить текущие технологии и решения в области умных
домов, разработать структуру и архитектуру системы, определить протоколы и
стандарты для взаимодействия, создание программного обеспечения для управления
умным домом, включая интерфейс пользователя, обеспечить взаимодействия с
датчиками, устройствами и сенсорами и провести тестирование функциональности и
производительности.

## Назначение разработки

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

## Спецификация требований

### 1 Введение
vityaman marked this conversation as resolved.
Show resolved Hide resolved

#### 1.1 Цель

Документ представляет детальное описание требований, применяемых к разработке
программного продукта: системы управления умным домом "Nexo Hub".

### 1.2 Область применения
#### 1.2 Область применения

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

### 1.3 Определения, аббревиатуры и сокращения
#### 1.3 Определения, аббревиатуры и сокращения

--

### 1.4 Ссылки
#### 1.4 Ссылки

- [Шаблон SRS][srs-template]

[srs-template]: https://docs.google.com/document/d/11aTUhjJxHqDMJGTDXDKh_8U_f2YVWKBS/edit?usp=sharing&ouid=112239579841283566048&rtpof=true&sd=true

### 1.5 Обзор документа
#### 1.5 Обзор документа

Документ разделен на следующие части:

Expand All @@ -41,14 +76,23 @@

Содержит полный список требований, предъявляемых к разрабатываемой системе.

## 2 Общее описание
### 2 Общее описание

#### 2.1 Функционал продукта

### 2.1 Функционал продукта
Система состоит из мобильного приложения, бэкенда, базы данных, устройств
умного дома.

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

### 2.2 Описание пользователей
Бэкенд принимаем запросы от пользователя, взаимодействует с базой данных и
устройствами подключенных к системе умных домов.

База данных хранит информацию о пользователях и устройствах, созданных
пользователем правилах управления устройствами, а также данные сенсоров.

#### 2.2 Описание пользователей

В системе будут существовать следующие типы пользователей:

Expand All @@ -57,22 +101,25 @@
создавать и переключать режимы работы. Они будут действовать только в рамках
своего умного дома.

### 2.3 Влияющие факторы и зависимости
#### 2.3 Влияющие факторы и зависимости

Поскольку один из итоговых продуктов - мобильное приложение, то необходимо
соблюсти одинаковое отображение элементов интерфейса для смартфонов с
различными параметрами экрана (от 1920x1080 до 2436x1125).

Поскольку итоговый продукт - мобильное приложение, то необходимо соблюсти
одинаковое отображение элементов интерфейса для смартфонов с различными
параметрами экрана (от 1920x1080 до 2436x1125).
Поскольку бэкенд системы будет взаимодействовать с умными устройствами, то
необходимо учесть всевозможные протоколы взаимодействия устройств.

### 2.4 Ограничения
#### 2.4 Ограничения

Для корректной работы мобильного приложения требуется наличие постоянного и
стабильного интернет соединения.

## 3 Технические требования
### 3 Технические требования

### 3.1 Функциональные требования
#### 3.1 Функциональные требования

#### 3.1.1 Пример требования
##### 3.1.1 Пример требования

Система должна предоставлять информацию о текущей версии пользовательского
приложения.
Expand All @@ -83,49 +130,49 @@

Трудоемкость: *1 ч* (для простоты - измерения в часах).

### 3.2 Требования к удобству пользования
#### 3.2 Требования к удобству пользования

--

### 3.3 Требования к надежности
#### 3.3 Требования к надежности

--

### 3.4 Требования к производительности
#### 3.4 Требования к производительности

#### 3.4.1 Требование PR1
##### 3.4.1 Требование PR1

Система должна выдерживать и корректно обрабатывать запросы от 10000
одновременно работающих умных домов (до 100 умных устройств в каждом доме).

#### 3.4.2 Требование PR2
##### 3.4.2 Требование PR2

Система должна выдерживать и корректно обрабатывать запросы от 10000
одновременно работающих мобильных приложений.

### 3.5 Ограничения разработки
#### 3.5 Ограничения разработки

#### 3.5.1 Требование DR1
##### 3.5.1 Требование DR1

Мобильное приложение должно быть реализовано под операционную систему Android
версии не ниже 12 при помощи языка программирования Kotlin, а интерфейс должен
быть реализован при помощи Jetpack Compose.

#### 3.5.2 Требование DR2
##### 3.5.2 Требование DR2

Бэкенд системы должен быть разработан под операционную систему Linux,
реализован при помощи языка программирования Kotlin с использованием фреймворка
Ktor.

#### 3.5.3 Требование DR3
##### 3.5.3 Требование DR3

В качестве базы данных в системе должны быть использованы Redis Server,
PostgreSQL, Clickhouse.

### 3.6 Интерфейсы
#### 3.6 Интерфейсы

--

### 3.7 Требования к лицензированию
#### 3.7 Требования к лицензированию

--