add readme

This commit is contained in:
Владимир Шперлинг 2024-01-04 14:00:33 +00:00
parent 55828ed2b1
commit 61a0613907

27
README.md Normal file
View File

@ -0,0 +1,27 @@
# Практическая работа Expense Tracker
В данном практическом задании предлагается дописать существующий проект-заготовку Android приложения для контроля личных финансов.
Советуем сначала скачать шаблон-заготовку проекта и открыть проект в Android Studio или IntelliJ IDEA.
Измените код существующих классов и интерфейсов, дополните разметку, ресурсы и манифест, чтобы приложение отвечало следущим требованиям:
1. При запуске приложения (*MainActivity* стартовая активность) показывается:<br/>
пустой список *RecyclerView* (`@id/ef_expenses_rv`),<br/>
кнопка с возможностью добавить новую операцию (`@id/add_fab`)<br/>
текстовое `поле @id/ef_current_balance_text`. В `@id/ef_current_balance_text` отображается текущее значение баланса пользователя (сумма всех операций: доходы−расходы) с точностью до одного знака после точки. Это значение может быть отрицательным.
2. При нажатии на элемент `@id/add_fab` появляется диалоговое окно с `@id/type_spinner`, `@id/expense_amount_edit_text` и `@id/add_button`.
3. Элемент `@id/type_spinner` позволяет выбрать одну из двух альтернатив (доход или расход), первый пункт выпадающего списка содержит строку «`Income`» (без кавычек), второй пункт «`Expenses`».
4. Пользователь вводит натуральное число в `@id/expense_amount_edit_text`. Гарантируется, что введённое пользователем число не превышает $10^{4}$.
5. После нажатия на `@id/add_button` диалоговое окно закрывается, при этом очередная операция (доход или расход) добавляется в конец списка. В `@id/ef_current_balance_text` обновляется текущее значение баланса пользователя.
6. Каждый элемент списка содержит в себе информацию о типе операции («Income»/«Expenses»), дате добавления информации о ней в приложение (в формате «`dd.MM.yyyy`») и её сумму, это отображается в текстовых полях с идентификаторами `@id/expense_type_text`, `@id/expense_date_text` и `@id/expense_amount_text` соответственно.
7. При длительном нажатии на любой элемент списка появляется контекстное меню, позволяющее удалить этот элемент (Delete) или дублировать его (Duplicate). При выборе опции с текстом «Duplicate» в конец списка помещается элемент с совпадающими значениями полей.
8. При повороте экрана устройства данные должны сохраняться.
Рекомендуется использовать Android Studio Dolphin 2021.3.1. В проекте gradle version 7.5, gradle plugin version 7.3.0.
Сдать в систему тестирования необходимо zip архив, в корневом каталоге которого располагается дополненный проект Android Studio/IntelliJ IDEA. После загрузки zip архива приложение будет запущено в системе автоматического тестирования для проверки на соответствие техническому заданию.
Допускается использовать язык Java и/или Kotlin. При сборке проекта вcе изменения в файле build.gradle будут проигнорированы будут использованы зависимости только из шаблона-заготовки; не изменяйте пакет приложения.
Тестирование одной посылки может длиться до 5 минут, после завершения тестирования будет доступна информация об общем числе тестов и числе пройденных тестов. Количество посылок в систему не ограничено. Штраф за повторные попытки не начисляется.