Атестаційні завдання K2 ERP/Домашній склад: відмінності між версіями
R (обговорення | внесок) Первинна публікація |
R (обговорення | внесок) Немає опису редагування |
||
| Рядок 1: | Рядок 1: | ||
{{DISPLAYTITLE:Атестаційні завдання K2 ERP/Домашній склад}} | |||
= Модуль обліку особистих речей, запасів і товарів на домашньому складі = | '''Атестаційне завдання K2 ERP — Домашній склад''' — це практична задача для перевірки навичок розробника або впроваджувача [[K2 ERP]] у створенні простого модуля обліку особистих речей, домашніх запасів, продуктів, інструментів, техніки, побутової хімії та матеріалів. | ||
Модуль має допомагати користувачу знати, що є вдома, де саме це зберігається, скільки залишилось, що потрібно докупити, у яких речей закінчується термін придатності та які предмети були переміщені, використані або списані. | |||
<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;"> | |||
'''Коротко.''' Потрібно реалізувати модуль домашнього складу: категорії речей, локації зберігання, предмети, кількість, одиниці виміру, фото, придбання, використання, переміщення, списання, терміни придатності, мінімальні залишки, нагадування, звіти й AJAX-інтерактив. | |||
</div> | |||
__TOC__ | |||
== Назва завдання == | |||
'''Модуль обліку особистих речей, запасів і товарів на домашньому складі'''. | |||
== Мета завдання == | |||
Мета завдання — створити в K2 ERP простий модуль для обліку домашніх речей і запасів. | |||
Система повинна дозволяти: | |||
* вести категорії речей; | |||
* вести локації зберігання; | |||
* створювати картки предметів; | |||
* додавати фото речей; | |||
* фіксувати кількість; | |||
* вказувати одиницю виміру; | |||
* вести дату придбання; | |||
* зберігати орієнтовну вартість; | |||
* контролювати терміни придатності; | |||
* встановлювати мінімальні залишки; | |||
* реєструвати придбання; | |||
* списувати використані речі; | |||
* переміщувати речі між локаціями; | |||
* вести історію операцій; | |||
* формувати список покупок; | |||
* отримувати нагадування про низький залишок; | |||
* отримувати нагадування про закінчення терміну придатності; | |||
* формувати звіти по залишках, категоріях, локаціях і прострочених речах. | |||
<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;"> | |||
'''Головний принцип.''' Користувач має швидко відповісти на три питання: що є вдома, де воно лежить і чи потрібно це докупити або використати до завершення терміну придатності. | |||
</div> | |||
== Реальний життєвий контекст == | == Реальний життєвий контекст == | ||
У домі часто накопичується багато речей: продукти, побутова хімія, інструменти, одяг, техніка, батарейки, лампочки, медикаменти, будматеріали, кабелі, сезонні речі, документи, запаси для ремонту або дачі. | |||
* | |||
* | Без системного обліку виникають типові проблеми: | ||
* | |||
* складно згадати, де лежить потрібна річ; | |||
* купуються дублікати речей, які вже є вдома; | |||
* продукти або витратні матеріали псуються; | |||
* запаси побутової хімії закінчуються раптово; | |||
* інструменти губляться між гаражем, коморою і квартирою; | |||
* складно планувати покупки; | |||
* важко контролювати речі великої сім’ї. | |||
Домашній склад допомагає тримати порядок і планувати покупки без зайвих витрат. | |||
== Основний процес роботи == | |||
Типовий процес роботи з домашнім складом виглядає так: | |||
# користувач створює категорії речей; | |||
# створює локації зберігання; | |||
# додає предмет або запас; | |||
# вказує кількість, одиницю виміру і місце зберігання; | |||
# додає дату придбання і термін придатності, якщо потрібно; | |||
# встановлює мінімальний залишок; | |||
# при використанні речі списує кількість; | |||
# при купівлі додає нову кількість; | |||
# при перенесенні речі змінює локацію; | |||
# система показує низькі залишки і речі з терміном придатності, що закінчується; | |||
# користувач формує список покупок або звіт по залишках. | |||
==== Довідник «Категорії речей» ==== | == Основні об’єкти модуля == | ||
{| class="wikitable" style="width:100%;" | |||
! Об’єкт | |||
! Призначення | |||
|- | |||
| Категорії речей | |||
| Групування предметів: продукти, хімія, інструменти, техніка тощо | |||
|- | |||
| Локації зберігання | |||
| Кімната, шафа, полиця, комора, гараж, підвал | |||
|- | |||
| Предмети | |||
| Конкретні речі або запаси | |||
|- | |||
| Одиниці виміру | |||
| шт., кг, г, л, мл, м, м², упаковка | |||
|- | |||
| Операції | |||
| Придбання, використання, переміщення, списання | |||
|- | |||
| Фото | |||
| Зображення речі або місця зберігання | |||
|- | |||
| Нагадування | |||
| Повідомлення про низький залишок або термін придатності | |||
|- | |||
| Список покупок | |||
| Що потрібно докупити | |||
|- | |||
| Звіти | |||
| Залишки, категорії, локації, терміни придатності, списання | |||
|} | |||
== Довідник «Категорії речей» == | |||
Категорії допомагають швидко групувати речі. | |||
== Приклади категорій == | |||
* продукти харчування; | * продукти харчування; | ||
| Рядок 36: | Рядок 122: | ||
* електроніка; | * електроніка; | ||
* меблі; | * меблі; | ||
* матеріали для ремонту. | * матеріали для ремонту; | ||
* медикаменти; | |||
* батарейки та акумулятори; | |||
* лампочки; | |||
* кабелі та зарядні пристрої; | |||
* документи; | |||
* сезонні речі; | |||
* товари для дітей; | |||
* товари для тварин; | |||
* автотовари; | |||
* сад і дача. | |||
==== | == Поля категорії == | ||
* | {| class="wikitable" style="width:100%;" | ||
! Поле | |||
! Опис | |||
|- | |||
| Назва категорії | |||
| Наприклад: Продукти, Інструменти, Побутова хімія | |||
|- | |||
| Батьківська категорія | |||
| Для вкладених категорій, опціонально | |||
|- | |||
| Опис | |||
| Коротке пояснення | |||
|- | |||
| Активність | |||
| Чи використовується категорія | |||
|} | |||
== Довідник «Локації зберігання» == | |||
Локації дозволяють точно знати, де лежить предмет. | |||
== Приклади локацій == | |||
* кухня; | |||
* холодильник; | |||
* морозильна камера; | |||
* комора; | |||
* шафа; | * шафа; | ||
* полиця; | * полиця; | ||
* | * ящик; | ||
* спальня; | |||
* дитяча кімната; | |||
* ванна кімната; | |||
* гараж; | |||
* підвал; | * підвал; | ||
* гараж. | * балкон; | ||
* дача; | |||
* автомобіль. | |||
== Ієрархія локацій == | |||
Локації бажано зробити ієрархічними. | |||
== Приклад == | |||
* Квартира | |||
** Кухня | |||
*** Шафа №1 | |||
**** Полиця 2 | |||
** Комора | |||
*** Стелаж 1 | |||
** Гараж | |||
*** Ящик з інструментами | |||
== Поля локації == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Назва локації | |||
| Наприклад: Комора, Гараж, Полиця 2 | |||
|- | |||
| Батьківська локація | |||
| Для побудови структури | |||
|- | |||
| Тип локації | |||
| Кімната, шафа, полиця, коробка, гараж, підвал | |||
|- | |||
| Опис | |||
| Додаткові пояснення | |||
|- | |||
| Фото | |||
| Опціонально, фото полиці або місця зберігання | |||
|} | |||
== Довідник «Одиниці виміру» == | |||
Одиниці виміру потрібні для коректного обліку запасів. | |||
== Приклади одиниць == | |||
* шт.; | |||
* кг; | |||
* г; | |||
* л; | |||
* мл; | |||
* м; | |||
* м²; | |||
* упаковка; | |||
* коробка; | |||
* банка; | |||
* пляшка; | |||
* рулон; | |||
* комплект. | |||
== | == База «Речі/Предмети» == | ||
Це головна база модуля. | |||
* | == Колонки бази == | ||
* | |||
* локація; | {| class="wikitable" style="width:100%;" | ||
! Колонка | |||
! Опис | |||
|- | |||
| Назва предмета | |||
| Що зберігається | |||
|- | |||
| Категорія | |||
| До якої групи належить | |||
|- | |||
| Локація | |||
| Де лежить | |||
|- | |||
| Кількість | |||
| Скільки є | |||
|- | |||
| Одиниця виміру | |||
| У чому вимірюється | |||
|- | |||
| Дата придбання | |||
| Коли куплено | |||
|- | |||
| Орієнтовна вартість | |||
| Скільки коштувало | |||
|- | |||
| Термін придатності | |||
| Якщо застосовується | |||
|- | |||
| Мінімальний залишок | |||
| Коли потрібно докупити | |||
|- | |||
| Статус | |||
| У наявності, використано, списано, вийшло з ладу | |||
|} | |||
== Поля предмета == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Назва | |||
| Назва речі або запасу | |||
|- | |||
| Категорія | |||
| Група предмета | |||
|- | |||
| Локація | |||
| Місце зберігання | |||
|- | |||
| Кількість | |||
| Поточний залишок | |||
|- | |||
| Одиниця виміру | |||
| шт., кг, л тощо | |||
|- | |||
| Мінімальний залишок | |||
| Кількість, нижче якої потрібне поповнення | |||
|- | |||
| Дата придбання | |||
| Коли куплено | |||
|- | |||
| Орієнтовна вартість | |||
| Вартість предмета або запасу | |||
|- | |||
| Термін придатності | |||
| Для продуктів, батарейок, хімії, медикаментів | |||
|- | |||
| Фото | |||
| Зображення предмета | |||
|- | |||
| Штрихкод / QR-код | |||
| Опціонально для швидкого пошуку | |||
|- | |||
| Статус | |||
| У наявності, використано, списано, зламано, загублено | |||
|- | |||
| Примітки | |||
| Додаткові коментарі | |||
|} | |||
== Статуси предметів == | |||
{| class="wikitable" style="width:100%;" | |||
! Статус | |||
! Значення | |||
|- | |||
| У наявності | |||
| Річ є на складі | |||
|- | |||
| Використано | |||
| Запас повністю використано | |||
|- | |||
| Частково використано | |||
| Частина запасу ще лишилась | |||
|- | |||
| Переміщено | |||
| Річ перенесено в іншу локацію | |||
|- | |||
| Списано | |||
| Річ більше не використовується | |||
|- | |||
| Вийшло з ладу | |||
| Техніка або предмет зламані | |||
|- | |||
| Загублено | |||
| Річ не знайдено | |||
|} | |||
== Операції з речами == | |||
Модуль має підтримувати основні операції. | |||
== Типи операцій == | |||
* придбання; | |||
* додавання залишку; | |||
* використання; | |||
* часткове списання; | |||
* повне списання; | |||
* переміщення; | |||
* зміна локації; | |||
* зміна терміну придатності; | |||
* інвентаризація; | |||
* повернення на склад. | |||
== Операція «Придбання» == | |||
Операція збільшує залишок предмета. | |||
== Поля придбання == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Предмет | |||
| Що придбано | |||
|- | |||
| Кількість | |||
| Скільки додано | |||
|- | |||
| Дата придбання | |||
| Коли куплено | |||
|- | |||
| Вартість | |||
| Сума покупки | |||
|- | |||
| Локація | |||
| Куди покладено | |||
|- | |||
| Термін придатності | |||
| Якщо є | |||
|- | |||
| Коментар | |||
| Додаткова інформація | |||
|} | |||
== Операція «Використання» == | |||
Операція зменшує залишок предмета. | |||
== Приклади використання == | |||
* використано 1 упаковку макаронів; | |||
* використано 500 мл мийного засобу; | |||
* взято 2 батарейки; | |||
* використано 5 шурупів; | |||
* витрачено 1 рулон паперу. | |||
== Операція «Переміщення» == | |||
Переміщення змінює місце зберігання предмета. | |||
== Поля переміщення == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Предмет | |||
| Що переміщується | |||
|- | |||
| Звідки | |||
| Стара локація | |||
|- | |||
| Куди | |||
| Нова локація | |||
|- | |||
| Кількість | |||
| Скільки переміщується | |||
|- | |||
| Дата | |||
| Коли переміщено | |||
|- | |||
| Коментар | |||
| Примітка | |||
|} | |||
== Операція «Списання» == | |||
Списання використовується для речей, які більше не придатні або не потрібні. | |||
== Причини списання == | |||
* використано; | |||
* зіпсувалося; | |||
* закінчився термін придатності; | |||
* зламалося; | |||
* загубилося; | |||
* передано іншій людині; | |||
* викинуто; | |||
* продано; | |||
* інша причина. | |||
== Контроль термінів придатності == | |||
Для продуктів, медикаментів, батарейок, побутової хімії та інших витратних матеріалів важливо контролювати термін придатності. | |||
== Система повинна показувати == | |||
* предмети, термін яких уже закінчився; | |||
* предмети, термін яких закінчується найближчим часом; | |||
* кількість днів до завершення терміну; | |||
* локацію, де лежить предмет; | |||
* рекомендацію використати або списати. | |||
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;"> | |||
'''Критично.''' Предмети з простроченим терміном придатності мають бути помітно виділені в списку, щоб користувач не пропустив їх під час перегляду запасів. | |||
</div> | |||
== Мінімальні залишки == | |||
Для часто використовуваних речей можна встановлювати мінімальний залишок. | |||
== Приклади речей із мінімальним залишком == | |||
* туалетний папір; | |||
* мийні засоби; | |||
* крупи; | |||
* макарони; | |||
* корм для тварин; | |||
* батарейки; | |||
* лампочки; | |||
* пакети для сміття; | |||
* засоби гігієни. | |||
== Логіка мінімального залишку == | |||
Якщо поточна кількість менша або дорівнює мінімальному залишку, система має показати предмет у списку поповнення. | |||
== Список покупок == | |||
Список покупок формується вручну або автоматично. | |||
== Джерела формування списку покупок == | |||
* предмети з низьким залишком; | |||
* предмети, які закінчуються; | |||
* предмети, які користувач додав вручну; | |||
* товари, які часто списуються; | |||
* сезонні запаси. | |||
== Поля списку покупок == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Предмет | |||
| Що потрібно купити | |||
|- | |||
| Кількість | |||
| Скільки потрібно | |||
|- | |||
| Одиниця виміру | |||
| шт., кг, л тощо | |||
|- | |||
| Пріоритет | |||
| Низький, середній, високий | |||
|- | |||
| Коментар | |||
| Примітка | |||
|- | |||
| Статус | |||
| Заплановано, куплено, скасовано | |||
|} | |||
== Фото, QR-коди і штрихкоди == | |||
Опціонально модуль може підтримувати фото предметів, QR-коди або штрихкоди. | |||
== Можливості == | |||
* додати фото предмета; | |||
* додати фото місця зберігання; | |||
* шукати товар за штрихкодом; | |||
* згенерувати QR-код для коробки або полиці; | |||
* швидко відкрити список речей у конкретній коробці; | |||
* надрукувати етикетки для коробок. | |||
== Інвентаризація == | |||
Інвентаризація допомагає звірити фактичну наявність речей. | |||
== Поля інвентаризації == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Дата | |||
| Коли проводиться перевірка | |||
|- | |||
| Локація | |||
| Що перевіряється | |||
|- | |||
| Предмет | |||
| Яка річ звіряється | |||
|- | |||
| Кількість у системі | |||
| Обліковий залишок | |||
|- | |||
| Фактична кількість | |||
| Реально знайдена кількість | |||
|- | |||
| Різниця | |||
| Надлишок або нестача | |||
|- | |||
| Коментар | |||
| Пояснення | |||
|} | |||
== Нагадування == | |||
Система має формувати нагадування. | |||
== Типи нагадувань == | |||
* закінчується термін придатності; | |||
* термін придатності вже закінчився; | |||
* низький залишок; | |||
* потрібно провести інвентаризацію; | |||
* давно не використовувалась річ; | |||
* потрібно докупити запас; | |||
* потрібно перевірити батарейки або акумулятори. | |||
== Звіти == | |||
== Звіт «Поточні залишки» == | |||
У звіті потрібно відображати: | |||
* назву предмета; | |||
* категорію; | |||
* локацію; | |||
* кількість; | * кількість; | ||
* | * одиницю виміру; | ||
* статус; | |||
* статус | |||
* примітки. | * примітки. | ||
==== | == Звіт «Речі за категоріями» == | ||
У звіті потрібно відображати: | |||
* категорію; | |||
* кількість предметів; | |||
* загальну орієнтовну вартість; | |||
* перелік речей. | |||
== Звіт «Речі за локаціями» == | |||
У звіті потрібно відображати: | |||
* локацію; | |||
* предмети в цій локації; | |||
* кількість; | |||
* категорію; | |||
* статус. | |||
== Звіт «Термін придатності закінчується» == | |||
У звіті потрібно відображати: | |||
* предмет; | |||
* категорію; | |||
* локацію; | |||
* кількість; | |||
* термін придатності; | |||
* кількість днів до завершення; | |||
* статус. | |||
== Звіт «Низькі залишки» == | |||
У звіті потрібно відображати: | |||
* предмет; | |||
* поточний залишок; | |||
* мінімальний залишок; | |||
* рекомендовану кількість для покупки; | |||
* локацію. | |||
== Звіт «Списані речі» == | |||
У звіті потрібно відображати: | |||
* предмет; | |||
* кількість; | |||
* причину списання; | |||
* дату списання; | |||
* коментар. | |||
== AJAX-інтерактив == | |||
Інтерфейс має працювати швидко й без перезавантаження сторінок. | |||
Через AJAX мають працювати: | |||
* пошук речей; | |||
* фільтрація за категорією; | |||
* фільтрація за локацією; | |||
* створення предмета; | |||
* додавання фото; | |||
* придбання; | |||
* використання; | |||
* переміщення; | |||
* списання; | |||
* оновлення залишку; | |||
* формування списку покупок; | |||
* фільтрація звітів; | |||
* перевірка термінів придатності. | |||
== | == Простота інтерфейсу == | ||
Оскільки модуль призначений для домашнього використання, інтерфейс має бути максимально простим. | |||
== | == Обов’язкові принципи UX == | ||
* | * швидке додавання речі; | ||
* мінімум обов’язкових полів; | |||
* зручний пошук; | |||
* зрозуміла структура локацій; | |||
* помітні нагадування; | |||
* швидке списання; | |||
* швидке переміщення; | |||
* зручний список покупок; | |||
* можливість перегляду з телефону. | |||
== | == Логування змін == | ||
Модуль повинен фіксувати основні дії. | |||
** | |||
** | Журнал змін має зберігати: | ||
** | |||
** | * хто створив предмет; | ||
* хто змінив кількість; | |||
* хто перемістив предмет; | |||
* хто списав предмет; | |||
* хто змінив локацію; | |||
* хто змінив термін придатності; | |||
* хто додав фото; | |||
* хто додав предмет у список покупок; | |||
* дату й час дії; | |||
* старе та нове значення, якщо це можливо. | |||
== Права доступу == | |||
Для домашнього складу можна реалізувати просту модель доступу. | |||
{| class="wikitable" style="width:100%;" | |||
! Роль | |||
! Можливості | |||
|- | |||
| Власник | |||
| Повний доступ до всіх речей, локацій, звітів і налаштувань | |||
|- | |||
| Член сім’ї | |||
| Додає речі, списує використання, переглядає залишки | |||
|- | |||
| Перегляд | |||
| Може тільки дивитися список речей і локацій | |||
|- | |||
| Адміністратор | |||
| Налаштовує категорії, локації, права і службові параметри | |||
|} | |||
== Технічні вимоги == | == Технічні вимоги == | ||
{| class="wikitable" | |||
!Параметр | {| class="wikitable" style="width:100%;" | ||
!Опис | ! Параметр | ||
! Опис | |||
|- | |||
| Бекенд | |||
| K2 Cloud ERP на Python або PHP | |||
|- | |||
| База даних | |||
| PostgreSQL або MySQL | |||
|- | |||
| Фронтенд | |||
| HTML5, JavaScript | |||
|- | |- | ||
| | | AJAX | ||
| | | Fetch API або Axios | ||
|- | |- | ||
| | | UI-компоненти | ||
| | | DataTables для списку речей, Select2 для категорій і локацій | ||
|- | |- | ||
| | | Фото | ||
| | | Завантаження фото предметів і локацій | ||
|- | |- | ||
| | | Штрихкод / QR | ||
| | | Опціональна підтримка пошуку або маркування коробок | ||
|- | |- | ||
|Друк | | Друк | ||
| | | PDF або Excel-список речей, список покупок, етикетки для коробок | ||
|- | |||
| Експорт | |||
| CSV, Excel або PDF, опціонально | |||
|} | |} | ||
== Критерії | == Рекомендовані сутності бази даних == | ||
{| class="wikitable" | |||
!Критерій | Для реалізації задачі доцільно передбачити такі сутності: | ||
!Бали | |||
* категорії речей; | |||
* локації зберігання; | |||
* одиниці виміру; | |||
* предмети; | |||
* фото предметів; | |||
* операції руху; | |||
* придбання; | |||
* використання; | |||
* переміщення; | |||
* списання; | |||
* інвентаризація; | |||
* список покупок; | |||
* нагадування; | |||
* журнал змін; | |||
* звіти; | |||
* права доступу. | |||
== Практичне завдання == | |||
У межах атестації потрібно продемонструвати робочий сценарій. | |||
Мінімальний сценарій: | |||
# створити категорії речей; | |||
# створити ієрархію локацій; | |||
# створити одиниці виміру; | |||
# створити предмет; | |||
# додати фото предмета; | |||
# вказати кількість і локацію; | |||
# вказати термін придатності; | |||
# вказати мінімальний залишок; | |||
# виконати операцію придбання; | |||
# перевірити збільшення залишку; | |||
# виконати операцію використання; | |||
# перевірити зменшення залишку; | |||
# перемістити предмет в іншу локацію; | |||
# списати частину предмета; | |||
# створити предмет із терміном придатності, що завершується; | |||
# перевірити нагадування про термін придатності; | |||
# створити предмет із низьким залишком; | |||
# перевірити автоматичне додавання до списку покупок або попередження; | |||
# сформувати звіт поточних залишків; | |||
# сформувати звіт за категоріями; | |||
# сформувати звіт за локаціями; | |||
# сформувати звіт термінів придатності; | |||
# сформувати список покупок; | |||
# перевірити журнал змін. | |||
== Критерії оцінювання == | |||
{| class="wikitable" style="width:100%;" | |||
! Критерій | |||
! Бали | |||
! Що перевіряється | |||
|- | |||
| Реалізація обліку речей і локацій | |||
| 20 | |||
| Категорії, ієрархія локацій, предмети, одиниці виміру, фото, статуси | |||
|- | |- | ||
| | | Операції придбання, списання, переміщення | ||
|20 | | 20 | ||
| Придбання, використання, переміщення, списання, зміна залишків, історія операцій | |||
|- | |- | ||
| | | Нагадування про закінчення термінів | ||
|20 | | 20 | ||
| Терміни придатності, прострочені речі, низькі залишки, список покупок | |||
|- | |- | ||
| | | Звіти по залишках і категоріях | ||
|20 | | 20 | ||
| Поточні залишки, категорії, локації, низькі залишки, списані речі | |||
|- | |- | ||
| | | Інтерактивність через AJAX і зручність обліку | ||
|20 | | 20 | ||
| Швидкий пошук, фільтри, додавання, переміщення, списання, мобільна зручність | |||
|- | |- | ||
! Разом | |||
! 100 | |||
! Максимальна оцінка | |||
|} | |} | ||
== Шкала оцінювання == | |||
{| class="wikitable" style="width:100%;" | |||
! Бали | |||
! Рівень | |||
! Опис | |||
|- | |||
| 90–100 | |||
| Відмінно | |||
| Модуль повністю працює: категорії, локації, речі, фото, операції, терміни, нагадування, список покупок, звіти й AJAX реалізовані коректно | |||
|- | |||
| 75–89 | |||
| Добре | |||
| Основна логіка працює, є незначні недоліки, які не заважають вести домашній склад | |||
|- | |||
| 60–74 | |||
| Зараховано | |||
| Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання | |||
|- | |||
| 0–59 | |||
| Не зараховано | |||
| Відсутня критична логіка: речі, локації, операції, залишки, терміни або звіти | |||
|} | |||
== Критичні помилки == | |||
Критичними помилками вважаються ситуації, коли: | |||
* неможливо створити категорію; | |||
* неможливо створити локацію; | |||
* неможливо створити предмет; | |||
* предмет не має кількості; | |||
* предмет не має локації; | |||
* придбання не збільшує залишок; | |||
* використання не зменшує залишок; | |||
* переміщення не змінює локацію; | |||
* списання не змінює статус або залишок; | |||
* система не показує прострочені речі; | |||
* система не показує низькі залишки; | |||
* звіти не відповідають фактичним залишкам; | |||
* зміни кількості, локацій і списань не логуються. | |||
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;"> | |||
'''Умова складання.''' Завдання не може бути зараховане, якщо система не дозволяє пройти базовий цикл домашнього складу: категорія → локація → предмет → придбання → використання → переміщення → списання → нагадування → звіт. | |||
</div> | |||
== Очікуваний результат == | |||
У результаті виконання атестаційного завдання має бути створений модуль домашнього складу в K2 ERP. | |||
Модуль має підтримувати категорії речей, локації зберігання, одиниці виміру, предмети, фото, придбання, використання, переміщення, списання, інвентаризацію, терміни придатності, мінімальні залишки, список покупок, нагадування, звіти, AJAX-інтерактив і журнал змін. | |||
== Примітка == | == Примітка == | ||
Домашній склад у вигляді невеликого ERP-рішення допомагає тримати речі під контролем, уникати зайвих покупок, краще планувати запаси й швидко знаходити потрібні предмети. | |||
* | |||
* | Особливо корисно для великих сімей, приватних будинків, майстерень, гаражів, дач, комор і домогосподарств, які активно запасаються товарами. | ||
== Коротко == | |||
{| class="wikitable" style="width:100%;" | |||
! Питання | |||
! Відповідь | |||
|- | |||
| Що потрібно створити? | |||
| Модуль домашнього складу | |||
|- | |||
| Які довідники потрібні? | |||
| Категорії речей, локації, одиниці виміру | |||
|- | |||
| Який головний об’єкт? | |||
| Предмет або запас | |||
|- | |||
| Які операції потрібні? | |||
| Придбання, використання, переміщення, списання, інвентаризація | |||
|- | |||
| Що потрібно контролювати? | |||
| Залишки, локації, терміни придатності, мінімальні запаси | |||
|- | |||
| Які звіти потрібні? | |||
| Поточні залишки, категорії, локації, терміни придатності, низькі залишки | |||
|- | |||
| Що є критичною вимогою? | |||
| Користувач має бачити, що є вдома, де воно лежить і що потрібно докупити | |||
|- | |||
| Що бажано додати? | |||
| Фото, QR-коди, список покупок, мобільну зручність, нагадування | |||
|} | |||
== Див. також == | |||
* [[K2 Cloud ERP|K2 ERP]] | |||
* [[K2 ERP]] | |||
* [[Атестаційні завдання K2 ERP]] | |||
* [[Домашня бухгалтерія]] | |||
* [[Складський облік]] | |||
* [[Залишки товарів]] | |||
* [[Інвентаризація]] | |||
* [[Список покупок]] | |||
* [[Термін придатності]] | |||
* [[QR-код]] | |||
* [[AJAX]] | |||
[[Категорія:K2 ERP]] | |||
[[Категорія:Атестаційні завдання K2]] | |||
[[Категорія:Домашній склад]] | |||
[[Категорія:Складський облік]] | |||
[[Категорія:Домашня автоматизація]] | |||
[[Категорія:Корпоративна Wiki]] | |||
Поточна версія на 20:35, 1 травня 2026
Атестаційне завдання K2 ERP — Домашній склад — це практична задача для перевірки навичок розробника або впроваджувача K2 ERP у створенні простого модуля обліку особистих речей, домашніх запасів, продуктів, інструментів, техніки, побутової хімії та матеріалів.
Модуль має допомагати користувачу знати, що є вдома, де саме це зберігається, скільки залишилось, що потрібно докупити, у яких речей закінчується термін придатності та які предмети були переміщені, використані або списані.
Коротко. Потрібно реалізувати модуль домашнього складу: категорії речей, локації зберігання, предмети, кількість, одиниці виміру, фото, придбання, використання, переміщення, списання, терміни придатності, мінімальні залишки, нагадування, звіти й AJAX-інтерактив.
Назва завдання
Модуль обліку особистих речей, запасів і товарів на домашньому складі.
Мета завдання
Мета завдання — створити в K2 ERP простий модуль для обліку домашніх речей і запасів.
Система повинна дозволяти:
- вести категорії речей;
- вести локації зберігання;
- створювати картки предметів;
- додавати фото речей;
- фіксувати кількість;
- вказувати одиницю виміру;
- вести дату придбання;
- зберігати орієнтовну вартість;
- контролювати терміни придатності;
- встановлювати мінімальні залишки;
- реєструвати придбання;
- списувати використані речі;
- переміщувати речі між локаціями;
- вести історію операцій;
- формувати список покупок;
- отримувати нагадування про низький залишок;
- отримувати нагадування про закінчення терміну придатності;
- формувати звіти по залишках, категоріях, локаціях і прострочених речах.
Головний принцип. Користувач має швидко відповісти на три питання: що є вдома, де воно лежить і чи потрібно це докупити або використати до завершення терміну придатності.
Реальний життєвий контекст
У домі часто накопичується багато речей: продукти, побутова хімія, інструменти, одяг, техніка, батарейки, лампочки, медикаменти, будматеріали, кабелі, сезонні речі, документи, запаси для ремонту або дачі.
Без системного обліку виникають типові проблеми:
- складно згадати, де лежить потрібна річ;
- купуються дублікати речей, які вже є вдома;
- продукти або витратні матеріали псуються;
- запаси побутової хімії закінчуються раптово;
- інструменти губляться між гаражем, коморою і квартирою;
- складно планувати покупки;
- важко контролювати речі великої сім’ї.
Домашній склад допомагає тримати порядок і планувати покупки без зайвих витрат.
Основний процес роботи
Типовий процес роботи з домашнім складом виглядає так:
- користувач створює категорії речей;
- створює локації зберігання;
- додає предмет або запас;
- вказує кількість, одиницю виміру і місце зберігання;
- додає дату придбання і термін придатності, якщо потрібно;
- встановлює мінімальний залишок;
- при використанні речі списує кількість;
- при купівлі додає нову кількість;
- при перенесенні речі змінює локацію;
- система показує низькі залишки і речі з терміном придатності, що закінчується;
- користувач формує список покупок або звіт по залишках.
Основні об’єкти модуля
| Об’єкт | Призначення |
|---|---|
| Категорії речей | Групування предметів: продукти, хімія, інструменти, техніка тощо |
| Локації зберігання | Кімната, шафа, полиця, комора, гараж, підвал |
| Предмети | Конкретні речі або запаси |
| Одиниці виміру | шт., кг, г, л, мл, м, м², упаковка |
| Операції | Придбання, використання, переміщення, списання |
| Фото | Зображення речі або місця зберігання |
| Нагадування | Повідомлення про низький залишок або термін придатності |
| Список покупок | Що потрібно докупити |
| Звіти | Залишки, категорії, локації, терміни придатності, списання |
Довідник «Категорії речей»
Категорії допомагають швидко групувати речі.
Приклади категорій
- продукти харчування;
- побутова хімія;
- інструменти;
- одяг;
- електроніка;
- меблі;
- матеріали для ремонту;
- медикаменти;
- батарейки та акумулятори;
- лампочки;
- кабелі та зарядні пристрої;
- документи;
- сезонні речі;
- товари для дітей;
- товари для тварин;
- автотовари;
- сад і дача.
Поля категорії
| Поле | Опис |
|---|---|
| Назва категорії | Наприклад: Продукти, Інструменти, Побутова хімія |
| Батьківська категорія | Для вкладених категорій, опціонально |
| Опис | Коротке пояснення |
| Активність | Чи використовується категорія |
Довідник «Локації зберігання»
Локації дозволяють точно знати, де лежить предмет.
Приклади локацій
- кухня;
- холодильник;
- морозильна камера;
- комора;
- шафа;
- полиця;
- ящик;
- спальня;
- дитяча кімната;
- ванна кімната;
- гараж;
- підвал;
- балкон;
- дача;
- автомобіль.
Ієрархія локацій
Локації бажано зробити ієрархічними.
Приклад
- Квартира
- Кухня
- Шафа №1
- Полиця 2
- Шафа №1
- Комора
- Стелаж 1
- Гараж
- Ящик з інструментами
- Кухня
Поля локації
| Поле | Опис |
|---|---|
| Назва локації | Наприклад: Комора, Гараж, Полиця 2 |
| Батьківська локація | Для побудови структури |
| Тип локації | Кімната, шафа, полиця, коробка, гараж, підвал |
| Опис | Додаткові пояснення |
| Фото | Опціонально, фото полиці або місця зберігання |
Довідник «Одиниці виміру»
Одиниці виміру потрібні для коректного обліку запасів.
Приклади одиниць
- шт.;
- кг;
- г;
- л;
- мл;
- м;
- м²;
- упаковка;
- коробка;
- банка;
- пляшка;
- рулон;
- комплект.
База «Речі/Предмети»
Це головна база модуля.
Колонки бази
| Колонка | Опис |
|---|---|
| Назва предмета | Що зберігається |
| Категорія | До якої групи належить |
| Локація | Де лежить |
| Кількість | Скільки є |
| Одиниця виміру | У чому вимірюється |
| Дата придбання | Коли куплено |
| Орієнтовна вартість | Скільки коштувало |
| Термін придатності | Якщо застосовується |
| Мінімальний залишок | Коли потрібно докупити |
| Статус | У наявності, використано, списано, вийшло з ладу |
Поля предмета
| Поле | Опис |
|---|---|
| Назва | Назва речі або запасу |
| Категорія | Група предмета |
| Локація | Місце зберігання |
| Кількість | Поточний залишок |
| Одиниця виміру | шт., кг, л тощо |
| Мінімальний залишок | Кількість, нижче якої потрібне поповнення |
| Дата придбання | Коли куплено |
| Орієнтовна вартість | Вартість предмета або запасу |
| Термін придатності | Для продуктів, батарейок, хімії, медикаментів |
| Фото | Зображення предмета |
| Штрихкод / QR-код | Опціонально для швидкого пошуку |
| Статус | У наявності, використано, списано, зламано, загублено |
| Примітки | Додаткові коментарі |
Статуси предметів
| Статус | Значення |
|---|---|
| У наявності | Річ є на складі |
| Використано | Запас повністю використано |
| Частково використано | Частина запасу ще лишилась |
| Переміщено | Річ перенесено в іншу локацію |
| Списано | Річ більше не використовується |
| Вийшло з ладу | Техніка або предмет зламані |
| Загублено | Річ не знайдено |
Операції з речами
Модуль має підтримувати основні операції.
Типи операцій
- придбання;
- додавання залишку;
- використання;
- часткове списання;
- повне списання;
- переміщення;
- зміна локації;
- зміна терміну придатності;
- інвентаризація;
- повернення на склад.
Операція «Придбання»
Операція збільшує залишок предмета.
Поля придбання
| Поле | Опис |
|---|---|
| Предмет | Що придбано |
| Кількість | Скільки додано |
| Дата придбання | Коли куплено |
| Вартість | Сума покупки |
| Локація | Куди покладено |
| Термін придатності | Якщо є |
| Коментар | Додаткова інформація |
Операція «Використання»
Операція зменшує залишок предмета.
Приклади використання
- використано 1 упаковку макаронів;
- використано 500 мл мийного засобу;
- взято 2 батарейки;
- використано 5 шурупів;
- витрачено 1 рулон паперу.
Операція «Переміщення»
Переміщення змінює місце зберігання предмета.
Поля переміщення
| Поле | Опис |
|---|---|
| Предмет | Що переміщується |
| Звідки | Стара локація |
| Куди | Нова локація |
| Кількість | Скільки переміщується |
| Дата | Коли переміщено |
| Коментар | Примітка |
Операція «Списання»
Списання використовується для речей, які більше не придатні або не потрібні.
Причини списання
- використано;
- зіпсувалося;
- закінчився термін придатності;
- зламалося;
- загубилося;
- передано іншій людині;
- викинуто;
- продано;
- інша причина.
Контроль термінів придатності
Для продуктів, медикаментів, батарейок, побутової хімії та інших витратних матеріалів важливо контролювати термін придатності.
Система повинна показувати
- предмети, термін яких уже закінчився;
- предмети, термін яких закінчується найближчим часом;
- кількість днів до завершення терміну;
- локацію, де лежить предмет;
- рекомендацію використати або списати.
Критично. Предмети з простроченим терміном придатності мають бути помітно виділені в списку, щоб користувач не пропустив їх під час перегляду запасів.
Мінімальні залишки
Для часто використовуваних речей можна встановлювати мінімальний залишок.
Приклади речей із мінімальним залишком
- туалетний папір;
- мийні засоби;
- крупи;
- макарони;
- корм для тварин;
- батарейки;
- лампочки;
- пакети для сміття;
- засоби гігієни.
Логіка мінімального залишку
Якщо поточна кількість менша або дорівнює мінімальному залишку, система має показати предмет у списку поповнення.
Список покупок
Список покупок формується вручну або автоматично.
Джерела формування списку покупок
- предмети з низьким залишком;
- предмети, які закінчуються;
- предмети, які користувач додав вручну;
- товари, які часто списуються;
- сезонні запаси.
Поля списку покупок
| Поле | Опис |
|---|---|
| Предмет | Що потрібно купити |
| Кількість | Скільки потрібно |
| Одиниця виміру | шт., кг, л тощо |
| Пріоритет | Низький, середній, високий |
| Коментар | Примітка |
| Статус | Заплановано, куплено, скасовано |
Фото, QR-коди і штрихкоди
Опціонально модуль може підтримувати фото предметів, QR-коди або штрихкоди.
Можливості
- додати фото предмета;
- додати фото місця зберігання;
- шукати товар за штрихкодом;
- згенерувати QR-код для коробки або полиці;
- швидко відкрити список речей у конкретній коробці;
- надрукувати етикетки для коробок.
Інвентаризація
Інвентаризація допомагає звірити фактичну наявність речей.
Поля інвентаризації
| Поле | Опис |
|---|---|
| Дата | Коли проводиться перевірка |
| Локація | Що перевіряється |
| Предмет | Яка річ звіряється |
| Кількість у системі | Обліковий залишок |
| Фактична кількість | Реально знайдена кількість |
| Різниця | Надлишок або нестача |
| Коментар | Пояснення |
Нагадування
Система має формувати нагадування.
Типи нагадувань
- закінчується термін придатності;
- термін придатності вже закінчився;
- низький залишок;
- потрібно провести інвентаризацію;
- давно не використовувалась річ;
- потрібно докупити запас;
- потрібно перевірити батарейки або акумулятори.
Звіти
Звіт «Поточні залишки»
У звіті потрібно відображати:
- назву предмета;
- категорію;
- локацію;
- кількість;
- одиницю виміру;
- статус;
- примітки.
Звіт «Речі за категоріями»
У звіті потрібно відображати:
- категорію;
- кількість предметів;
- загальну орієнтовну вартість;
- перелік речей.
Звіт «Речі за локаціями»
У звіті потрібно відображати:
- локацію;
- предмети в цій локації;
- кількість;
- категорію;
- статус.
Звіт «Термін придатності закінчується»
У звіті потрібно відображати:
- предмет;
- категорію;
- локацію;
- кількість;
- термін придатності;
- кількість днів до завершення;
- статус.
Звіт «Низькі залишки»
У звіті потрібно відображати:
- предмет;
- поточний залишок;
- мінімальний залишок;
- рекомендовану кількість для покупки;
- локацію.
Звіт «Списані речі»
У звіті потрібно відображати:
- предмет;
- кількість;
- причину списання;
- дату списання;
- коментар.
AJAX-інтерактив
Інтерфейс має працювати швидко й без перезавантаження сторінок.
Через AJAX мають працювати:
- пошук речей;
- фільтрація за категорією;
- фільтрація за локацією;
- створення предмета;
- додавання фото;
- придбання;
- використання;
- переміщення;
- списання;
- оновлення залишку;
- формування списку покупок;
- фільтрація звітів;
- перевірка термінів придатності.
Простота інтерфейсу
Оскільки модуль призначений для домашнього використання, інтерфейс має бути максимально простим.
Обов’язкові принципи UX
- швидке додавання речі;
- мінімум обов’язкових полів;
- зручний пошук;
- зрозуміла структура локацій;
- помітні нагадування;
- швидке списання;
- швидке переміщення;
- зручний список покупок;
- можливість перегляду з телефону.
Логування змін
Модуль повинен фіксувати основні дії.
Журнал змін має зберігати:
- хто створив предмет;
- хто змінив кількість;
- хто перемістив предмет;
- хто списав предмет;
- хто змінив локацію;
- хто змінив термін придатності;
- хто додав фото;
- хто додав предмет у список покупок;
- дату й час дії;
- старе та нове значення, якщо це можливо.
Права доступу
Для домашнього складу можна реалізувати просту модель доступу.
| Роль | Можливості |
|---|---|
| Власник | Повний доступ до всіх речей, локацій, звітів і налаштувань |
| Член сім’ї | Додає речі, списує використання, переглядає залишки |
| Перегляд | Може тільки дивитися список речей і локацій |
| Адміністратор | Налаштовує категорії, локації, права і службові параметри |
Технічні вимоги
| Параметр | Опис |
|---|---|
| Бекенд | K2 Cloud ERP на Python або PHP |
| База даних | PostgreSQL або MySQL |
| Фронтенд | HTML5, JavaScript |
| AJAX | Fetch API або Axios |
| UI-компоненти | DataTables для списку речей, Select2 для категорій і локацій |
| Фото | Завантаження фото предметів і локацій |
| Штрихкод / QR | Опціональна підтримка пошуку або маркування коробок |
| Друк | PDF або Excel-список речей, список покупок, етикетки для коробок |
| Експорт | CSV, Excel або PDF, опціонально |
Рекомендовані сутності бази даних
Для реалізації задачі доцільно передбачити такі сутності:
- категорії речей;
- локації зберігання;
- одиниці виміру;
- предмети;
- фото предметів;
- операції руху;
- придбання;
- використання;
- переміщення;
- списання;
- інвентаризація;
- список покупок;
- нагадування;
- журнал змін;
- звіти;
- права доступу.
Практичне завдання
У межах атестації потрібно продемонструвати робочий сценарій.
Мінімальний сценарій:
- створити категорії речей;
- створити ієрархію локацій;
- створити одиниці виміру;
- створити предмет;
- додати фото предмета;
- вказати кількість і локацію;
- вказати термін придатності;
- вказати мінімальний залишок;
- виконати операцію придбання;
- перевірити збільшення залишку;
- виконати операцію використання;
- перевірити зменшення залишку;
- перемістити предмет в іншу локацію;
- списати частину предмета;
- створити предмет із терміном придатності, що завершується;
- перевірити нагадування про термін придатності;
- створити предмет із низьким залишком;
- перевірити автоматичне додавання до списку покупок або попередження;
- сформувати звіт поточних залишків;
- сформувати звіт за категоріями;
- сформувати звіт за локаціями;
- сформувати звіт термінів придатності;
- сформувати список покупок;
- перевірити журнал змін.
Критерії оцінювання
| Критерій | Бали | Що перевіряється |
|---|---|---|
| Реалізація обліку речей і локацій | 20 | Категорії, ієрархія локацій, предмети, одиниці виміру, фото, статуси |
| Операції придбання, списання, переміщення | 20 | Придбання, використання, переміщення, списання, зміна залишків, історія операцій |
| Нагадування про закінчення термінів | 20 | Терміни придатності, прострочені речі, низькі залишки, список покупок |
| Звіти по залишках і категоріях | 20 | Поточні залишки, категорії, локації, низькі залишки, списані речі |
| Інтерактивність через AJAX і зручність обліку | 20 | Швидкий пошук, фільтри, додавання, переміщення, списання, мобільна зручність |
| Разом | 100 | Максимальна оцінка |
Шкала оцінювання
| Бали | Рівень | Опис |
|---|---|---|
| 90–100 | Відмінно | Модуль повністю працює: категорії, локації, речі, фото, операції, терміни, нагадування, список покупок, звіти й AJAX реалізовані коректно |
| 75–89 | Добре | Основна логіка працює, є незначні недоліки, які не заважають вести домашній склад |
| 60–74 | Зараховано | Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання |
| 0–59 | Не зараховано | Відсутня критична логіка: речі, локації, операції, залишки, терміни або звіти |
Критичні помилки
Критичними помилками вважаються ситуації, коли:
- неможливо створити категорію;
- неможливо створити локацію;
- неможливо створити предмет;
- предмет не має кількості;
- предмет не має локації;
- придбання не збільшує залишок;
- використання не зменшує залишок;
- переміщення не змінює локацію;
- списання не змінює статус або залишок;
- система не показує прострочені речі;
- система не показує низькі залишки;
- звіти не відповідають фактичним залишкам;
- зміни кількості, локацій і списань не логуються.
Умова складання. Завдання не може бути зараховане, якщо система не дозволяє пройти базовий цикл домашнього складу: категорія → локація → предмет → придбання → використання → переміщення → списання → нагадування → звіт.
Очікуваний результат
У результаті виконання атестаційного завдання має бути створений модуль домашнього складу в K2 ERP.
Модуль має підтримувати категорії речей, локації зберігання, одиниці виміру, предмети, фото, придбання, використання, переміщення, списання, інвентаризацію, терміни придатності, мінімальні залишки, список покупок, нагадування, звіти, AJAX-інтерактив і журнал змін.
Примітка
Домашній склад у вигляді невеликого ERP-рішення допомагає тримати речі під контролем, уникати зайвих покупок, краще планувати запаси й швидко знаходити потрібні предмети.
Особливо корисно для великих сімей, приватних будинків, майстерень, гаражів, дач, комор і домогосподарств, які активно запасаються товарами.
Коротко
| Питання | Відповідь |
|---|---|
| Що потрібно створити? | Модуль домашнього складу |
| Які довідники потрібні? | Категорії речей, локації, одиниці виміру |
| Який головний об’єкт? | Предмет або запас |
| Які операції потрібні? | Придбання, використання, переміщення, списання, інвентаризація |
| Що потрібно контролювати? | Залишки, локації, терміни придатності, мінімальні запаси |
| Які звіти потрібні? | Поточні залишки, категорії, локації, терміни придатності, низькі залишки |
| Що є критичною вимогою? | Користувач має бачити, що є вдома, де воно лежить і що потрібно докупити |
| Що бажано додати? | Фото, QR-коди, список покупок, мобільну зручність, нагадування |