Учебный проект Вы приступаете к работе над учебным проектом, который будет длиться на протяжении всего обучения. Задания в каждом модуле будут строиться по следующей системе: задания на отработку учебного материала + задания по проекту. Задания по проекту будут промаркированы как “Учебный проект”. Все задания по проекту связаны между собой и требуют последовательного и системного выполнения. Цель: Потренироваться в разбиении функциональности приложений на компоненты. Описание задания: Выбрать понравившуюся предметную область из списка, приведённого в Задании. При выборе следует учесть, что работа с выбранной областью будет вестись на протяжении всего курса и станет основой для учебного проекта. Проанализировать предметную область и описанный юзкейс. Какие объекты действуют в описанном сценарии использования? Какие потоки данных связывают эти объекты между собой? Какие абстрации можно выделить? По результатам анализа предложить диаграмму компонентов приложения, реализующего описанную функциональность, и их взаимосвязей. Строим программную архитектуру (классы, модули, компоненты), а не системную (микросервисы, системы хранения и обработки, etc) При построении диаграммы допускается использовать любую знакомую нотацию, либо же просто блоки-прямоугольники и соединительные линии Инструменты, которые пригодятся для выполнения: https://www.diagrams.net Критерии, по которым будет оцениваться задание: Соответствие разбиения кода на компоненты изученным приёмам в уроке Задание: Сервис для уведомлений. Отслеживает изменение курса USD на сайте Мосбиржи и отправляет сообщение с актуальным курсом на электронной почте раз в час. Сервис для бэкапов. Телеграм-бот принимает все поступающие к нему файлы и помещает их на Яндекс.Диск. Сервис конвертации. Принимает в веб-форме odf-файл, конвертирует его в pdf и предоставляет по ссылке. REST API. Предоставляет эндпоинт для выполнения CRUD-операций в СУБД PostgreSQL. Сервис умного дома. Предоставляет API для управления выключателями и получения данных с датчиков. ETL. Сервис читает данные (csv-файлы, содержимое: key-value) из определённой директории, очищает данные по критерию: value — натуральное число и записывает результат в другую заданную директорию в виде json-файла.