Атестаційні завдання K2 ERP/Домашня бухгалтерія

Версія від 18:38, 1 травня 2026, створена R (обговорення | внесок)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)


Атестаційне завдання K2 ERP — Домашня бухгалтерія — це практична задача для перевірки навичок розробника або впроваджувача K2 ERP у створенні модуля обліку особистих або сімейних фінансів.

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

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

Назва завдання

Модуль обліку особистих доходів і витрат: Домашня бухгалтерія.

Мета завдання

Мета завдання — створити в K2 ERP модуль для обліку особистих або сімейних фінансів.

Система повинна дозволяти:

  • вести облік доходів;
  • вести облік витрат;
  • створювати рахунки та контролювати залишки;
  • класифікувати доходи й витрати за категоріями;
  • виконувати перекази між рахунками;
  • вести бюджетування за категоріями;
  • контролювати перевищення бюджету;
  • створювати фінансові цілі;
  • відстежувати прогрес накопичення;
  • підтримувати кілька валют;
  • формувати звіти й діаграми;
  • експортувати дані в Excel або PDF;
  • імпортувати операції з банківських виписок у форматі CSV.

Головний принцип. Домашня бухгалтерія — це не просто список витрат. Це система контролю особистих фінансів: рахунки → операції → категорії → бюджети → цілі → звіти → рішення.

Реальний життєвий контекст

Користувач хоче вести облік власних фінансів або фінансів родини.

У реальному житті гроші можуть зберігатися на кількох рахунках: банківських картках, готівці, депозитах, валютних рахунках або електронних гаманцях.

Користувачу потрібно розуміти:

  • скільки грошей є на кожному рахунку;
  • скільки було доходів за місяць;
  • скільки було витрат;
  • на які категорії витрачається найбільше;
  • чи не перевищено бюджет;
  • скільки залишилось до фінансової цілі;
  • які операції були по конкретному рахунку;
  • як змінюється фінансовий стан у часі.

Такий модуль може використовуватися не лише приватними особами, а й дуже малими бізнесами, ФОП або сімейними проєктами, де потрібен простий контроль грошей без складного бухгалтерського обліку.

Основний бізнес-процес

Типовий процес роботи з модулем виглядає так:

  1. користувач створює рахунки;
  2. вказує початкові залишки;
  3. створює категорії доходів і витрат;
  4. додає дохід, наприклад зарплату або фріланс;
  5. система збільшує баланс відповідного рахунку;
  6. додає витрати, наприклад продукти, транспорт або оренду;
  7. система зменшує баланс рахунку;
  8. за потреби користувач робить переказ між рахунками;
  9. система списує гроші з одного рахунку і зараховує на інший;
  10. користувач встановлює місячні бюджети по категоріях;
  11. система контролює перевищення бюджету;
  12. користувач створює фінансову ціль;
  13. система показує прогрес накопичення;
  14. у звітах видно доходи, витрати, залишки та структуру фінансів.

Основні об’єкти модуля

Об’єкт Призначення
Категорії доходів Класифікація джерел надходження грошей
Категорії витрат Класифікація напрямів витрачання грошей
Рахунки Готівка, банківські картки, депозити, валютні рахунки
Доходи Операції надходження грошей
Витрати Операції списання грошей
Перекази між рахунками Переміщення грошей між власними рахунками
Бюджети Місячні ліміти витрат за категоріями
Фінансові цілі Накопичення на майбутні покупки або події
Валюти та курси Підтримка UAH, USD, EUR та інших валют
Банківські виписки Імпорт операцій з CSV-файлів
Звіти Доходи, витрати, рух коштів, залишки, бюджети, цілі

Довідник «Категорії доходів»

Довідник категорій доходів потрібен для класифікації джерел надходження коштів.

Приклади категорій доходів

  • зарплата;
  • фріланс;
  • інвестиції;
  • подарунки;
  • повернення боргу;
  • продаж речей;
  • інші доходи.

Поля категорії доходу

Поле Опис
Назва категорії Наприклад: зарплата, фріланс, інвестиції
Колір або іконка Для зручного відображення в діаграмах
Активність Чи використовується категорія в поточному обліку
Коментар Додатковий опис категорії

Довідник «Категорії витрат»

Довідник категорій витрат потрібен для аналізу, на що витрачаються гроші.

Приклади категорій витрат

  • продукти;
  • оренда;
  • комунальні послуги;
  • транспорт;
  • освіта;
  • медицина;
  • розваги;
  • одяг;
  • подорожі;
  • підписки;
  • подарунки;
  • інші витрати.

Поля категорії витрат

Поле Опис
Назва категорії Наприклад: продукти, транспорт, освіта
Група категорій Обов’язкові витрати, необов’язкові витрати, накопичення тощо
Колір або іконка Для діаграм і швидкого візуального аналізу
Активність Чи використовується категорія
Коментар Додаткова інформація

Довідник «Рахунки»

Довідник рахунків зберігає місця, де користувач тримає гроші.

Приклади рахунків

  • карта Monobank;
  • готівка;
  • депозит ПриватБанк;
  • валютний рахунок USD;
  • валютний рахунок EUR;
  • електронний гаманець;
  • рахунок для фінансової цілі.

Поля рахунку

Поле Опис
Назва рахунку Наприклад: карта Monobank, готівка, депозит
Тип рахунку Готівка, банківський, депозит, валютний, інше
Валюта UAH, USD, EUR або інша валюта
Початковий баланс Сума на рахунку на момент початку обліку
Поточний баланс Розраховується на основі операцій
Статус Активний, прихований, закритий

Важливо. Поточний баланс рахунку не повинен редагуватися вручну без підстави. Він має формуватися з початкового балансу, доходів, витрат і переказів.

Типи рахунків

Тип рахунку Призначення
Готівка Облік грошей у фізичній готівці
Банківський Картки та поточні рахунки
Депозит Накопичувальні або строкові рахунки
Валютний Рахунок в іноземній валюті
Інше Електронні гаманці або нестандартні джерела

Журнал «Доходи»

Журнал доходів призначений для фіксації всіх надходжень коштів.

Колонки журналу доходів

Колонка Опис
Дата Дата отримання доходу
Сума Сума надходження
Валюта Валюта операції
Категорія доходу Зарплата, фріланс, інвестиції тощо
Рахунок зарахування Куди надійшли кошти
Опис Коментар до операції

Функціональність журналу доходів

Журнал доходів має підтримувати:

  • додавання доходу вручну;
  • редагування доходу;
  • видалення помилкової операції за наявності прав;
  • пошук за датою;
  • фільтрацію за категорією;
  • фільтрацію за рахунком;
  • фільтрацію за валютою;
  • миттєве оновлення балансу рахунку;
  • роботу через AJAX без перезавантаження сторінки.

Журнал «Витрати»

Журнал витрат призначений для фіксації всіх витрат користувача або родини.

Колонки журналу витрат

Колонка Опис
Дата Дата витрати
Сума Сума витрати
Валюта Валюта операції
Категорія витрати Продукти, оренда, транспорт, освіта тощо
Рахунок списання З якого рахунку списано кошти
Опис Коментар до операції

Функціональність журналу витрат

Журнал витрат має підтримувати:

  • додавання витрати вручну;
  • редагування витрати;
  • видалення помилкової операції за наявності прав;
  • пошук за датою;
  • фільтрацію за категорією;
  • фільтрацію за рахунком;
  • фільтрацію за валютою;
  • автоматичний перерахунок балансу рахунку;
  • попередження при перевищенні бюджету;
  • роботу через AJAX.

Критично. Додавання витрати має зменшувати баланс рахунку. Якщо витрати не впливають на залишок, модуль не виконує головну функцію домашньої бухгалтерії.

Перекази між рахунками

Переказ між рахунками — це операція переміщення грошей між власними рахунками користувача.

Приклади:

  • з банківської картки в готівку;
  • з картки на депозит;
  • з гривневого рахунку на валютний;
  • з основного рахунку на рахунок фінансової цілі.

Поля переказу

Поле Опис
Дата Дата переказу
Рахунок списання Звідки списуються кошти
Рахунок зарахування Куди зараховуються кошти
Сума списання Сума, яка списується
Сума зарахування Сума, яка зараховується
Валюта Валюта операції
Курс Використовується, якщо валюти рахунків різні
Коментар Додаткове пояснення

Логіка переказу

Після проведення переказу система повинна:

  • списати суму з одного рахунку;
  • зарахувати суму на інший рахунок;
  • не вважати переказ доходом;
  • не вважати переказ витратою;
  • відобразити операцію в русі коштів по обох рахунках.

Практичний сенс. Переказ між власними рахунками не змінює загальний фінансовий стан користувача. Він лише змінює місце зберігання грошей.

Бюджетування

Бюджетування дозволяє встановити місячні ліміти витрат за категоріями.

Наприклад, користувач може встановити:

  • продукти — 15 000 грн на місяць;
  • транспорт — 3 000 грн на місяць;
  • розваги — 4 000 грн на місяць;
  • освіта — 5 000 грн на місяць.

Поля бюджету

Поле Опис
Період Місяць і рік бюджету
Категорія витрат Категорія, для якої встановлено ліміт
Ліміт Максимальна сума витрат
Фактичні витрати Розраховується на основі операцій
Залишок бюджету Ліміт мінус фактичні витрати
Статус У нормі, близько до перевищення, перевищено

Контроль перевищення бюджету

Система має автоматично контролювати перевищення бюджету.

Якщо користувач перевищує встановлений ліміт, система повинна:

  • показати попередження;
  • виділити категорію кольором;
  • показати суму перевищення;
  • за бажанням — надіслати повідомлення.

Фінансові цілі

Фінансові цілі потрібні для планування накопичень.

Приклади цілей:

  • відпустка;
  • новий ноутбук;
  • автомобіль;
  • ремонт;
  • навчання;
  • фінансова подушка.

Поля фінансової цілі

Поле Опис
Назва цілі Наприклад: «Відпустка» або «Новий ноутбук»
Сума цілі Скільки потрібно накопичити
Поточна сума Скільки вже накопичено
Планована дата досягнення Коли користувач хоче досягти цілі
Прив’язаний рахунок Рахунок, на якому зберігаються накопичення
Прогрес Відсоток виконання цілі
Статус Активна, досягнута, призупинена, закрита

Розрахунок прогресу цілі

Прогрес = Поточна сума / Сума цілі × 100%

Система має показувати прогрес у вигляді відсотка або індикатора виконання.

Мультивалютність

Модуль має підтримувати кілька валют.

Мінімальні валюти:

  • UAH;
  • USD;
  • EUR.

Вимоги до мультивалютності

Система повинна підтримувати:

  • довідник валют;
  • рахунки в різних валютах;
  • курси валют;
  • операції в різних валютах;
  • перекази між рахунками в різних валютах;
  • перерахунок загального балансу в базову валюту;
  • звіти по окремих валютах і в базовій валюті.

Імпорт банківських виписок CSV

Опціонально потрібно передбачити імпорт операцій із банківських виписок у форматі CSV.

Імпорт має дозволяти:

  • завантажити CSV-файл;
  • розпізнати дату, суму, опис і рахунок;
  • визначити тип операції: дохід або витрата;
  • запропонувати категорію на основі опису;
  • показати помилки імпорту;
  • не дублювати вже імпортовані операції;
  • дозволити користувачу підтвердити імпорт.

Звітність

Звіт «Доходи і витрати за місяць»

Звіт показує загальну картину фінансів за вибраний місяць.

У звіті потрібно показати:

  • загальну суму доходів;
  • загальну суму витрат;
  • різницю між доходами й витратами;
  • структуру доходів за категоріями;
  • структуру витрат за категоріями;
  • діаграми доходів і витрат.

Діаграми доходів і витрат

Для діаграм можна використовувати Chart.js.

Потрібні діаграми:

  • структура доходів за категоріями;
  • структура витрат за категоріями;
  • порівняння доходів і витрат за місяцями;
  • динаміка залишків по рахунках.

Звіт «Рух коштів по рахунках»

Звіт показує всі операції по конкретному рахунку.

У звіті потрібно відображати:

  • рахунок;
  • період;
  • залишок на початок;
  • доходи;
  • витрати;
  • перекази;
  • залишок на кінець;
  • деталізацію всіх операцій.

Звіт «Бюджет за місяць»

Звіт показує виконання бюджету.

У звіті потрібно показати:

  • категорію витрат;
  • встановлений ліміт;
  • фактичні витрати;
  • залишок бюджету;
  • відсоток використання;
  • перевищення, якщо воно є.

Звіт «Фінансові цілі»

Звіт показує прогрес по фінансових цілях.

У звіті потрібно відображати:

  • назву цілі;
  • суму цілі;
  • поточну суму;
  • прогрес;
  • планову дату досягнення;
  • залишок до цілі;
  • статус.

Експорт даних

Модуль має підтримувати експорт даних.

Експортувати потрібно:

  • доходи;
  • витрати;
  • рух коштів;
  • бюджети;
  • фінансові цілі;
  • звіти.

Формати експорту:

  • Excel;
  • PDF.

AJAX-інтерактив

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

Через AJAX мають працювати:

  • додавання доходу;
  • додавання витрати;
  • редагування операції;
  • видалення операції;
  • переказ між рахунками;
  • миттєве оновлення балансів;
  • створення бюджету;
  • контроль перевищення бюджету;
  • створення фінансової цілі;
  • оновлення прогресу цілі;
  • фільтрація журналів;
  • побудова діаграм.

Логування змін

Модуль повинен логувати важливі зміни.

Журнал змін має фіксувати:

  • хто створив операцію;
  • хто змінив операцію;
  • хто видалив операцію;
  • хто створив бюджет;
  • хто змінив бюджет;
  • хто створив фінансову ціль;
  • хто виконав імпорт CSV;
  • дату й час зміни;
  • старе та нове значення, якщо це можливо.

Технічні вимоги

Параметр Опис
Бекенд K2 Cloud ERP на Python або PHP
База даних PostgreSQL або MySQL
Фронтенд HTML5, JavaScript
AJAX Fetch API або Axios
UI-компоненти DataTables, Select2, Chart.js для діаграм
Імпорт CSV для банківських виписок, опціонально
Експорт PDF або Excel

Рекомендовані сутності бази даних

Для реалізації задачі доцільно передбачити такі сутності:

  • категорії доходів;
  • категорії витрат;
  • рахунки;
  • валюти;
  • курси валют;
  • доходи;
  • витрати;
  • перекази між рахунками;
  • бюджети;
  • фінансові цілі;
  • банківські виписки;
  • імпортовані операції;
  • звіти;
  • журнал змін.

Практичне завдання

У межах атестації потрібно продемонструвати робочий сценарій.

Мінімальний сценарій:

  1. створити категорії доходів;
  2. створити категорії витрат;
  3. створити кілька рахунків;
  4. вказати початкові залишки;
  5. додати дохід;
  6. перевірити збільшення балансу рахунку;
  7. додати витрату;
  8. перевірити зменшення балансу рахунку;
  9. виконати переказ між рахунками;
  10. перевірити списання з одного рахунку і зарахування на інший;
  11. створити місячний бюджет по категорії;
  12. додати витрати, які наближають до ліміту;
  13. перевірити попередження при перевищенні бюджету;
  14. створити фінансову ціль;
  15. прив’язати її до рахунку;
  16. перевірити розрахунок прогресу;
  17. сформувати звіт доходів і витрат за місяць;
  18. сформувати звіт руху коштів по рахунках;
  19. сформувати звіт бюджету;
  20. сформувати звіт фінансових цілей;
  21. експортувати звіт у Excel або PDF;
  22. опціонально імпортувати банківську виписку CSV.

Критерії оцінювання

Критерій Бали Що перевіряється
Реалізація журналу доходів і витрат 20 Додавання, редагування, категоризація, фільтри, вплив на баланси рахунків
Перекази між рахунками 15 Списання з одного рахунку, зарахування на інший, коректне відображення в русі коштів
Бюджетування і фінансові цілі 20 Ліміти по категоріях, контроль перевищення, цілі, прогрес накопичень
Формування звітів і діаграм 20 Доходи й витрати, рух коштів, бюджети, фінансові цілі, Chart.js
Інтерактивність через AJAX 15 Додавання операцій, оновлення балансів, фільтри, діаграми без перезавантаження
Підтримка мультивалютності 10 Валюти, курси, рахунки в різних валютах, перерахунок у базову валюту
Разом 100 Максимальна оцінка

Шкала оцінювання

Бали Рівень Опис
90–100 Відмінно Модуль повністю працює: доходи, витрати, рахунки, перекази, бюджети, цілі, звіти, мультивалютність і AJAX реалізовані коректно
75–89 Добре Основна логіка працює, є незначні недоліки, які не руйнують облік особистих фінансів
60–74 Зараховано Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання
0–59 Не зараховано Відсутня критична логіка: рахунки, доходи, витрати, перекази, баланси або звіти

Критичні помилки

Критичними помилками вважаються ситуації, коли:

  • неможливо створити рахунок;
  • дохід не збільшує баланс рахунку;
  • витрата не зменшує баланс рахунку;
  • переказ між рахунками помилково рахується як дохід або витрата;
  • переказ не змінює залишки обох рахунків;
  • баланс рахунку не відповідає операціям;
  • неможливо створити бюджет;
  • система не показує перевищення бюджету;
  • фінансова ціль не рахує прогрес;
  • звіти не відповідають фактичним операціям;
  • мультивалютні операції не зберігають валюту;
  • імпорт CSV створює дублікати без контролю;
  • зміни операцій не логуються.

Умова складання. Завдання не може бути зараховане, якщо система не дозволяє пройти базовий цикл домашньої бухгалтерії: рахунок → дохід → витрата → переказ → баланс → бюджет → фінансова ціль → звіт.

Очікуваний результат

У результаті виконання атестаційного завдання має бути створений модуль домашньої бухгалтерії в K2 ERP.

Модуль має підтримувати категорії доходів і витрат, рахунки, доходи, витрати, перекази між рахунками, бюджетування, фінансові цілі, мультивалютність, звіти, діаграми, експорт у PDF або Excel та опціональний імпорт банківських виписок CSV.

Примітка

Домашня бухгалтерія — популярний і зрозумілий користувачам модуль, який добре демонструє базові принципи обліку грошей.

Він допомагає контролювати особисті та сімейні фінанси, аналізувати витрати, уникати перевитрат і поступово досягати фінансових цілей.

Коротко

Питання Відповідь
Що потрібно створити? Модуль обліку особистих доходів і витрат
Які довідники потрібні? Категорії доходів, категорії витрат, рахунки, валюти
Які основні журнали? Доходи, витрати, перекази між рахунками
Що має відбуватися з балансом? Доходи збільшують баланс, витрати зменшують, перекази змінюють два рахунки
Що таке бюджетування? Місячні ліміти витрат за категоріями
Що таке фінансова ціль? Накопичення на конкретну суму до визначеної дати
Які звіти потрібні? Доходи й витрати, рух коштів, бюджет, фінансові цілі
Що є критичною вимогою? Коректний баланс рахунків на основі всіх операцій

Див. також