Проверить базовые технические навыки, способность работать с архитектурой проекта, писать читаемый код и покрывать его тестами.
- Код должен соответствовать принципам чистого кода
- Приложение должно быть оформлено в виде репозитория на GitHub или GitLab
- README должен быть информативным и понятным
Разработать мобильное приложение для учёта гостей на свадьбе. Пользователь должен иметь возможность удобно управлять столами и гостями.
-
Добавление столов
- Название нового стола формируется автоматически:
"Стол №(n + 1)", гдеn— номер последнего добавленного стола
- Название нового стола формируется автоматически:
-
Добавление гостей
- У каждого гостя есть:
- Имя
- Возраст
- Пол
- Сторона (жених / невеста)
- Гость добавляется сразу в конкретный стол
- У каждого гостя есть:
-
Отображение столов и гостей
- Список всех столов с вложенными в них гостями
- Возможность сворачивать / разворачивать столы
- Гости жениха выделяются мягким зелёным фоном
- Гости невесты — мягким розовым фоном
- Drag-n-drop: перетаскивание гостей между столами
- Хранение данных в SQLite
- Индикатор заполненности стола (например, максимум 8 гостей)
- Написание BDD-сценариев с использованием Cucumber + Espresso
app/
├── main/
│ ├── data/ # Источники данных: Room, репозитории, модели
│ │ ├── local/
│ │ ├── repository/
│ │ └── model/
│ ├── domain/ # Бизнес-логика: модели, интерфейсы
│ │ ├── model/
│ │ └── interfaces/
│ ├── presentation/ # UI
│ │ ├── common/
│ │ │ ├── table/
│ │ │ └── guest/
│ │ └── map/
│ ├── di/ # Dagger модули
│ ├── utils/ # Вспомогательные классы и расширения
│ └── MainActivity.kt # Точка входа
├── test/ # Unit-тесты
└── androidTest/ # Инструментальные тесты
- Обязательно покрыть основную бизнес-логику unit-тестами
- Опционально: использовать BDD с
CucumberиEspressoдля пользовательских сценариев
Вы можете посмотреть короткое видео с примером работы приложения: