diff --git a/TASK.md b/TASK.md new file mode 100644 index 0000000..6e44070 --- /dev/null +++ b/TASK.md @@ -0,0 +1,81 @@ +# Инженерный тур заключительного этапа + +## 📖 Предыстория +В компании S есть возможность бронирования мест в пространствах, предназначенных под общее использование (open-space). На данный момент для бронирования места используются различные способы бронирования, разработанные в каждом офисе индивидуально. +Администрации компании S требуется мобильное приложение, как для рядовых сотрудников, так и для администрации с возможностью просмотра забронированных мест. + +## 📑 Системные требования к приложению +- Минимальная версия ОС: Android 9.0 (API 28) +- Целевая версия ОС: Android 16 (API 36) +- Работоспособность приложения для платформ: mobile (смартфоны), tablet (планшеты) +- Поддерживаемая ориентация: portrait (портретная), landscape (альбомная) +- Поддержка языков: русский, английский +- Разрешения: доступ к интернету + +### Технический стек для frontend: +- Kotlin +- Ktor +- MVVM/MVI + +### Технический стек для backend: +- Java 17 +- Spring Boot +- PostgreSQL +- Liquibase +- Docker + +### Технический стек и платформы для дизайнеров: +- PenPot +- Material Design +- Compose +- Auto Layout +- Interactive Prototypes + +## 📂 Оцениваемые артефакты работы +- Репозиторий команды клиентской части приложения в Gitea. +- Репозиторий команды серверной части приложения в Gitea. +- Доска с макетом и прототипом клиентской части приложения в PenPot, ссылка на которую размещена в README.md репозитория клиентской части приложения. +- Релизный APK-файл приложения в разделе Releases репозитория команды на Gitea. +- FatJar-файл для запуска серверного приложения для заданий: 0, 1 и 2. +На 3-ем задании необходимо добавить Docker-файл для приложения и Docker-compose (с двумя контейнерами: PostgreSQL и само серверное приложение), с помощью которого можно развернуть и запустить серверную часть. +**Важно**, если серверное приложение переведено на PostgreSQL то наличие Docker-compose обязательно. + + +Описанные выше артефакты оцениваются на каждом чекпоинте. APK-файл и JAR-файл должны иметь следующее имена: Client_vN.apk и Server_vN.jar, где N — номер Чекпоинта. + +## ❗️ Чекпоинты +Чекпоинт — фиксированный момент времени, в который начинается техническая экспертиза решения задания инженерного тура. + +Каждый чекпоинт содержит описание функциональности, которую необходимо реализовать участникам. + +Расписание чекпоинтов представлено ниже: + +**Чекпоинт 0 — 24.02 в 19:00** + +**Чекпоинт 1 — 25.02 в 14:00** + +**Чекпоинт 2 — 25.02 в 19:00** + +**Чекпоинт3 — 26.02 в 14:30** + +## 🛠 Техническое задание +Требуется доработать нативное мобильное приложение, выполненное в рамках второго отборочного этапа. + +Ссылки на проекты-заготовки: + + + +Верстка приложения должна полностью соответствовать макетам в PenPot. Соответствие макетам является обязательным и оценивается на каждом чекпоинте. В PenPot необходимо отдельно оформить палитру цветов, используемые шрифты и типографику, типы кнопок во всех состояниях, поля ввода во всех состояниях, а также элементы навигации. + +Приложение должно поддерживать дневную и ночную темы. + +Интерфейс обязан корректно адаптироваться к динамическому изменению ширины экрана и перестраивать компоновку без потери состояния. Состояние экранов и пользовательский ввод должны сохраняться при повороте устройства. + +## Задание 0. Развертывание исходных данных (~2 часа) +**Дедлайн сдачи артефактов: 24.02 в 19:00** +Цель: настроить среду для последующей работы. + +Необходимо создать форки исходных репозиториев-заготовок в организации вашей команды в Gitea, а затем собрать все необходимые артефакты для оценивания работы. + +В README.md укажите ссылку на доску в PenPot. На доске в PenPot необходимо отдельно оформить палитру цветов, используемые шрифты и типографику (UI Kit). +