Атестаційні завдання K2 ERP/Трансфери та таксі
Атестаційне завдання K2 ERP — Трансфери та таксі — це практична задача для перевірки навичок розробника або впроваджувача K2 ERP у створенні модуля обліку замовлень трансферів, таксі та корпоративних перевезень.
Модуль має забезпечувати повний цикл роботи сервісу перевезень: прийом бронювання, облік клієнтів, водіїв і автомобілів, розрахунок вартості поїздки, призначення водія, контроль статусів, оплату, сповіщення клієнтів, оцінювання поїздок і звітність.
Коротко. Потрібно реалізувати модуль для трансферів і таксі: клієнти, замовлення, водії, автомобілі, типи поїздок, маршрути, тарифи, бронювання на дату й час, призначення водія, статуси поїздки, оплата, квитанції, сповіщення, рейтинги та звіти.
Назва завдання
Модуль обліку замовлень трансферів і таксі: бронювання, водії, автопарк, платежі.
Мета завдання
Мета завдання — створити в K2 ERP модуль для автоматизації роботи компанії, яка надає послуги таксі, трансферів, оренди автомобілів з водієм або корпоративних перевезень.
Система повинна дозволяти:
- вести клієнтів;
- вести автомобілі;
- вести водіїв;
- вести типи поїздок;
- створювати замовлення вручну або через сайт;
- приймати попередні бронювання на дату і час;
- вказувати пункт відправлення і пункт призначення;
- розраховувати вартість поїздки;
- призначати водія і автомобіль;
- контролювати доступність водіїв і авто;
- змінювати статуси замовлення;
- фіксувати оплату;
- підтримувати готівкову, карткову і безготівкову оплату;
- надсилати клієнту сповіщення;
- давати клієнту можливість оцінити поїздку;
- формувати квитанції;
- формувати звіти по замовленнях, доходах, водіях і автомобілях.
Головний принцип. Замовлення поїздки має пройти зрозумілий шлях: заявка → призначення водія → подача авто → виконання → оплата → завершення → оцінка.
Реальний бізнес-контекст
Компанія організовує пасажирські перевезення для приватних і корпоративних клієнтів.
Це можуть бути:
- таксі по місту;
- трансфер з аеропорту до готелю;
- трансфер з вокзалу;
- міжміські поїздки;
- VIP-трансфери;
- корпоративні перевезення;
- оренда автомобіля з водієм по годинах;
- групові перевезення мінівенами або автобусами;
- регулярне обслуговування бізнес-клієнтів.
У роботі такої компанії важливо швидко приймати замовлення, правильно призначати вільного водія й автомобіль, контролювати статус поїздки, бачити оплату, уникати накладок у графіку та аналізувати ефективність роботи водіїв і автопарку.
Основний бізнес-процес
Типовий процес роботи сервісу трансферів і таксі виглядає так:
- клієнт створює заявку через сайт, телефон або менеджера;
- менеджер або система створює замовлення;
- вказується тип поїздки;
- вказуються дата, час, адреса подачі й адреса призначення;
- система розраховує вартість;
- система або диспетчер підбирає доступного водія й автомобіль;
- клієнт отримує підтвердження;
- водій приймає замовлення;
- автомобіль подається клієнту;
- поїздка переходить у статус «Виконується»;
- після прибуття поїздка завершується;
- фіксується оплата;
- клієнту надсилається квитанція;
- клієнт може оцінити поїздку;
- дані потрапляють у звіти.
Основні об’єкти модуля
| Об’єкт | Призначення |
|---|---|
| Клієнти | Замовники поїздок |
| Автомобілі | Транспортні засоби компанії |
| Водії | Виконавці поїздок |
| Типи поїздок | Таксі, трансфер, оренда з водієм, корпоративна поїздка |
| Замовлення | Основний документ поїздки |
| Маршрути | Пункти відправлення і призначення |
| Тарифи | Правила розрахунку вартості |
| Оплати | Готівка, картка, безготівковий розрахунок |
| Сповіщення | Повідомлення клієнту і водію |
| Рейтинги | Оцінка якості поїздки і водія |
| Квитанції | Документ підтвердження оплати |
| Звіти | Аналітика по замовленнях, доходах, водіях і авто |
Довідник «Клієнти»
Клієнти — це фізичні або юридичні особи, які замовляють поїздки.
Поля клієнта
| Поле | Опис |
|---|---|
| ПІБ або назва компанії | Ім’я клієнта або назва організації |
| Тип клієнта | Приватний або корпоративний |
| Телефон | Основний контактний номер |
| Для квитанцій і сповіщень | |
| Коментар | Особливі побажання або внутрішні примітки |
| Статус | Активний, заблокований, архівний |
Довідник «Автомобілі»
Довідник автомобілів містить транспорт, який може бути призначений на поїздки.
Типи автомобілів
- седан;
- універсал;
- мінівен;
- мікроавтобус;
- автобус;
- бізнес-клас;
- VIP-клас.
Поля автомобіля
| Поле | Опис |
|---|---|
| Номер авто | Державний номер автомобіля |
| Марка і модель | Наприклад: Toyota Camry, Mercedes Vito |
| Тип транспорту | Седан, мінівен, автобус тощо |
| Кількість місць | Скільки пасажирів може перевозити авто |
| Рік випуску | Опціонально |
| Колір | Для інформування клієнта |
| Статус авто | Активний, у сервісі, недоступний, у поїздці |
| Водій за замовчуванням | Якщо авто закріплене за конкретним водієм |
Важливо. Автомобіль зі статусом «У сервісі», «Недоступний» або «У поїздці» не повинен автоматично призначатися на нове замовлення.
Довідник «Водії»
Довідник водіїв містить працівників або партнерів, які виконують поїздки.
Поля водія
| Поле | Опис |
|---|---|
| ПІБ | Повне ім’я водія |
| Телефон | Контактний номер |
| Фото | Опціонально, для відображення клієнту |
| Категорії посвідчення | B, D або інші категорії |
| Основний автомобіль | Авто, з яким найчастіше працює водій |
| Рейтинг | Середня оцінка поїздок |
| Статус | Активний, зайнятий, не на зміні, заблокований |
| Примітки | Службова інформація |
Довідник «Типи поїздок»
Тип поїздки визначає сценарій обслуговування та принцип розрахунку.
Приклади типів поїздок
- таксі містом;
- трансфер аеропорт — готель;
- трансфер готель — аеропорт;
- міжміський трансфер;
- оренда авто з водієм по годинах;
- корпоративна поїздка;
- груповий трансфер;
- VIP-трансфер.
Поля типу поїздки
| Поле | Опис |
|---|---|
| Назва типу | Наприклад: трансфер аеропорт — готель |
| Опис | Коротке пояснення |
| Спосіб розрахунку | Фіксована ціна, за кілометражем, погодинно |
| Мінімальна ціна | Мінімальна вартість поїздки |
| Активність | Чи доступний тип поїздки для нових замовлень |
Тарифи
Тарифи визначають, як розраховується вартість поїздки.
Варіанти тарифікації
- фіксована ціна;
- ціна за кілометр;
- ціна за годину;
- мінімальна вартість поїздки;
- доплата за очікування;
- доплата за нічний час;
- доплата за клас авто;
- індивідуальний корпоративний тариф.
Поля тарифу
| Поле | Опис |
|---|---|
| Назва тарифу | Наприклад: Місто, Аеропорт, VIP, Корпоративний |
| Тип поїздки | До якого типу застосовується тариф |
| Базова ціна | Стартова вартість |
| Ціна за км | Для розрахунку за відстанню |
| Ціна за годину | Для погодинної оренди |
| Мінімальна ціна | Нижня межа вартості |
| Доплата за очікування | Опціонально |
| Активність | Чи діє тариф |
База «Замовлення»
Замовлення — головний документ модуля.
Колонки бази замовлень
| Колонка | Опис |
|---|---|
| Номер замовлення | Унікальний номер поїздки |
| Дата і час замовлення | Коли створено заявку |
| Дата і час подачі | Коли потрібно подати авто |
| Клієнт | Замовник поїздки |
| Тип поїздки | Таксі, трансфер, оренда з водієм |
| Пункт відправлення | Звідки забрати клієнта |
| Пункт призначення | Куди доставити клієнта |
| Автомобіль | Призначене авто |
| Водій | Призначений водій |
| Статус | Нове, призначено, виконується, виконано, скасовано |
| Ціна поїздки | Розрахована або встановлена вручну |
| Тип оплати | Готівка, картка, безготівково |
Поля замовлення
| Поле | Опис |
|---|---|
| Номер замовлення | Генерується автоматично |
| Клієнт | Хто замовляє поїздку |
| Контактний телефон | Телефон пасажира |
| Тип поїздки | Таксі, трансфер, оренда з водієм |
| Дата і час подачі | Коли потрібен автомобіль |
| Пункт відправлення | Адреса або точка старту |
| Пункт призначення | Адреса або точка завершення |
| Кількість пасажирів | Для підбору авто |
| Багаж | Опціонально |
| Коментар клієнта | Побажання до поїздки |
| Водій | Призначений виконавець |
| Автомобіль | Призначене авто |
| Ціна | Вартість поїздки |
| Тип оплати | Готівка, картка, безготівковий розрахунок |
| Статус | Поточний стан замовлення |
Статуси замовлення
| Статус | Значення |
|---|---|
| Нове | Заявка створена, водій ще не призначений |
| Очікує підтвердження | Замовлення потребує підтвердження менеджера або клієнта |
| Призначено | Водій і автомобіль призначені |
| Водій прийняв | Водій підтвердив виконання замовлення |
| Авто подано | Автомобіль прибув до клієнта |
| Виконується | Поїздка триває |
| Виконано | Поїздку завершено |
| Оплачено | Оплату підтверджено |
| Скасовано | Замовлення не відбулося |
Створення бронювання
Бронювання може створювати менеджер або сам клієнт через сайт.
Кроки бронювання
- Клієнт або менеджер обирає тип поїздки.
- Вказує дату і час подачі авто.
- Вказує пункт відправлення.
- Вказує пункт призначення.
- Вказує кількість пасажирів.
- Обирає клас або тип автомобіля.
- Система розраховує орієнтовну ціну.
- Клієнт підтверджує заявку.
- Система створює замовлення.
- Менеджер або система призначає водія й автомобіль.
Призначення водія і автомобіля
Призначення може бути ручним або автоматичним.
Ручне призначення
Диспетчер сам обирає водія й автомобіль зі списку доступних.
Автоматичне призначення
Система може підбирати водія й авто за параметрами:
- статус водія;
- статус автомобіля;
- кількість місць;
- тип авто;
- зайнятість на вказаний час;
- рейтинг водія;
- прив’язка водія до автомобіля;
- відстань до точки подачі, якщо реалізовано мапу.
Критично. Один водій або автомобіль не повинні бути призначені на дві поїздки, які перетинаються за часом, без попередження диспетчера.
Розрахунок вартості поїздки
Система має підтримувати кілька способів розрахунку.
Фіксована ціна
Фіксована ціна застосовується для типових трансферів.
Приклад:
Аеропорт → Готель = 900 грн
Розрахунок за кілометражем
Ціна = Базова ціна + Відстань × Ціна за км
Погодинна оренда
Ціна = Кількість годин × Ціна за годину
Очікування
Опціонально можна враховувати платне очікування.
Доплата за очікування = Кількість хвилин понад норму × Тариф очікування
Оплати
Модуль має підтримувати різні типи оплати.
Типи оплати
- готівка водію;
- банківська картка;
- онлайн-оплата;
- безготівковий розрахунок для корпоративного клієнта;
- передплата;
- післяплата.
Статуси оплати
| Статус | Значення |
|---|---|
| Не оплачено | Оплата ще не отримана |
| Очікує оплати | Клієнту виставлено рахунок або посилання на оплату |
| Частково оплачено | Оплачена частина суми |
| Оплачено | Оплата отримана повністю |
| Повернення | Кошти повернено клієнту |
Рахунок і квитанція
Для поїздки система може формувати рахунок або квитанцію.
Дані квитанції
Квитанція має містити:
- номер замовлення;
- дату і час поїздки;
- клієнта;
- маршрут;
- водія;
- автомобіль;
- суму;
- тип оплати;
- статус оплати.
Сповіщення клієнтів
Система має надсилати клієнту повідомлення про ключові події.
Події для сповіщень
- замовлення створено;
- замовлення підтверджено;
- водія призначено;
- авто подано;
- поїздку розпочато;
- поїздку завершено;
- оплату підтверджено;
- замовлення скасовано;
- запит на оцінку поїздки.
Дані в повідомленні про призначення водія
Клієнту бажано показати:
- ім’я водія;
- телефон водія;
- марку і модель авто;
- номер авто;
- час подачі;
- орієнтовну вартість.
Рейтинг і відгуки
Після завершення поїздки клієнт може оцінити сервіс.
Поля оцінки
| Поле | Опис |
|---|---|
| Замовлення | До якої поїздки належить оцінка |
| Клієнт | Хто залишив оцінку |
| Водій | Кого оцінюють |
| Оцінка | Наприклад, від 1 до 5 |
| Коментар | Текстовий відгук |
| Дата | Коли залишено оцінку |
Мапа і маршрути
Опціонально можна інтегрувати мапу.
Можливості мапи
- відображення пункту відправлення;
- відображення пункту призначення;
- побудова маршруту;
- розрахунок відстані;
- розрахунок приблизного часу;
- відображення автомобілів, якщо реалізовано GPS-інтеграцію.
Звіти
Звіт «Замовлення по періодах»
Звіт показує кількість і суму замовлень за вибраний період.
У звіті потрібно відображати:
- дату;
- кількість замовлень;
- кількість виконаних;
- кількість скасованих;
- суму доходу;
- середній чек.
Звіт «Ефективність водіїв»
Звіт показує роботу водіїв.
У звіті потрібно відображати:
- водія;
- кількість виконаних замовлень;
- кількість скасованих;
- середню оцінку;
- суму доходу;
- пробіг, якщо фіксується;
- кількість скарг, якщо реалізовано.
Звіт «Доходи по автомобілях»
Звіт показує, скільки заробив кожен автомобіль.
У звіті потрібно відображати:
- автомобіль;
- кількість поїздок;
- суму доходу;
- середній дохід на поїздку;
- кількість годин у роботі;
- статус автомобіля.
Звіт «Скасовані замовлення»
Звіт показує причини втрати замовлень.
У звіті потрібно відображати:
- номер замовлення;
- клієнта;
- дату;
- водія, якщо був призначений;
- причину скасування;
- хто скасував;
- час до подачі авто.
Звіт «Оплати»
Звіт показує фінансовий стан поїздок.
У звіті потрібно відображати:
- номер замовлення;
- клієнта;
- суму;
- тип оплати;
- статус оплати;
- дату оплати;
- борг, якщо є.
AJAX-інтерактив
Інтерфейс має працювати швидко та зручно для диспетчера, водія і клієнта.
Через AJAX мають працювати:
- створення бронювання;
- пошук клієнта;
- вибір адрес;
- розрахунок ціни;
- вибір водія;
- вибір автомобіля;
- зміна статусу замовлення;
- підтвердження поїздки;
- фіксація оплати;
- відправка сповіщення;
- оцінювання поїздки;
- фільтрація замовлень;
- оновлення звітів.
Логування змін
Модуль повинен фіксувати важливі дії.
Журнал змін має зберігати:
- хто створив замовлення;
- хто змінив дату або час подачі;
- хто змінив маршрут;
- хто призначив водія;
- хто призначив автомобіль;
- хто змінив статус поїздки;
- хто змінив ціну;
- хто зафіксував оплату;
- хто скасував замовлення;
- хто змінив статус водія або авто;
- дату й час дії;
- старе та нове значення, якщо це можливо.
Права доступу
Модуль має підтримувати розмежування прав.
| Роль | Можливості |
|---|---|
| Клієнт | Створює бронювання, переглядає свої поїздки, оплати й оцінки |
| Диспетчер | Приймає замовлення, призначає водіїв і авто, контролює статуси |
| Водій | Бачить свої замовлення, приймає поїздки, змінює статус виконання |
| Менеджер | Працює з клієнтами, тарифами, корпоративними замовленнями |
| Бухгалтер | Контролює оплати, рахунки, квитанції та борги |
| Керівник | Переглядає звіти, доходи, ефективність водіїв і автопарку |
| Адміністратор | Налаштовує права, тарифи, типи поїздок, авто, водіїв і службові параметри |
Технічні вимоги
| Параметр | Опис |
|---|---|
| Бекенд | K2 Cloud ERP на Python або PHP |
| База даних | PostgreSQL або MySQL |
| Фронтенд | HTML5, JavaScript |
| AJAX | Fetch API або Axios |
| UI-компоненти | DataTables для замовлень, Select2 для водіїв, авто і типів поїздок |
| Мапа | OpenStreetMap або Google Maps API, опціонально |
| Сповіщення | Email, SMS або месенджери, залежно від реалізації |
| Оплати | Онлайн-оплата, готівка, картка, безготівково |
| Друк | PDF-квитанції або рахунки, опціонально |
| Адаптивність | Мобільна версія для бронювання і роботи водія |
Рекомендовані сутності бази даних
Для реалізації задачі доцільно передбачити такі сутності:
- клієнти;
- автомобілі;
- типи автомобілів;
- водії;
- типи поїздок;
- тарифи;
- замовлення;
- статуси замовлень;
- маршрути;
- адреси;
- оплати;
- квитанції;
- сповіщення;
- рейтинги;
- відгуки;
- скасування;
- журнал змін;
- звіти;
- права доступу.
Практичне завдання
У межах атестації потрібно продемонструвати робочий сценарій.
Мінімальний сценарій:
- створити клієнта;
- створити кілька автомобілів;
- створити кілька водіїв;
- створити типи поїздок;
- створити тариф;
- створити нове замовлення;
- вказати дату, час, пункт відправлення і пункт призначення;
- розрахувати вартість поїздки;
- призначити водія й автомобіль;
- перевести замовлення у статус «Призначено»;
- перевести замовлення у статус «Авто подано»;
- перевести замовлення у статус «Виконується»;
- завершити поїздку;
- зафіксувати оплату;
- сформувати квитанцію;
- залишити оцінку поїздки;
- перевірити рейтинг водія;
- створити скасоване замовлення з причиною;
- сформувати звіт замовлень за період;
- сформувати звіт ефективності водіїв;
- сформувати звіт доходів по автомобілях;
- сформувати звіт оплат;
- перевірити журнал змін.
Критерії оцінювання
| Критерій | Бали | Що перевіряється |
|---|---|---|
| Реалізація бази автомобілів, водіїв і замовлень | 20 | Клієнти, авто, водії, типи поїздок, тарифи, замовлення |
| Створення бронювання і призначення водіїв | 20 | Бронювання на дату й час, вибір маршруту, підбір або ручне призначення водія й авто |
| Управління статусами поїздок і оплатою | 20 | Статуси замовлення, фіксація виконання, оплата, квитанція, скасування |
| Формування звітів по доходах і водіях | 20 | Замовлення за період, ефективність водіїв, доходи по авто, оплати, скасування |
| Інтерактивність через AJAX і сповіщення клієнтів | 20 | AJAX-бронювання, зміна статусів, розрахунок ціни, сповіщення, оцінювання |
| Разом | 100 | Максимальна оцінка |
Шкала оцінювання
| Бали | Рівень | Опис |
|---|---|---|
| 90–100 | Відмінно | Модуль повністю працює: клієнти, авто, водії, бронювання, призначення, статуси, оплати, сповіщення, рейтинги й звіти реалізовані коректно |
| 75–89 | Добре | Основна логіка працює, є незначні недоліки, які не руйнують процес обліку поїздок |
| 60–74 | Зараховано | Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання |
| 0–59 | Не зараховано | Відсутня критична логіка: замовлення, водії, автомобілі, статуси, оплата або звіти |
Критичні помилки
Критичними помилками вважаються ситуації, коли:
- неможливо створити клієнта;
- неможливо створити автомобіль;
- неможливо створити водія;
- неможливо створити замовлення;
- замовлення не має дати й часу подачі;
- замовлення не має пункту відправлення;
- неможливо призначити водія;
- неможливо призначити автомобіль;
- один водій призначається на дві одночасні поїздки без попередження;
- один автомобіль призначається на дві одночасні поїздки без попередження;
- статус поїздки не змінюється;
- виконана поїздка не фіксується;
- оплата не прив’язується до замовлення;
- скасоване замовлення показується як активне;
- рейтинг водія не оновлюється, якщо ця функція заявлена;
- звіти не відповідають фактичним замовленням і оплатам;
- зміни водія, авто, статусу або ціни не логуються.
Умова складання. Завдання не може бути зараховане, якщо система не дозволяє пройти базовий цикл трансферу або таксі: клієнт → замовлення → водій → авто → поїздка → оплата → квитанція → звіт.
Очікуваний результат
У результаті виконання атестаційного завдання має бути створений модуль трансферів і таксі в K2 ERP.
Модуль має підтримувати клієнтів, автомобілі, водіїв, типи поїздок, тарифи, замовлення, маршрути, бронювання, ручне або автоматичне призначення водія, статуси поїздок, розрахунок вартості, оплати, квитанції, сповіщення, рейтинги, звіти, AJAX-інтерактив і логування змін.
Примітка
Модуль трансферів і таксі потрібен таксомоторним службам, компаніям VIP-трансферів, корпоративним автопаркам, туристичним компаніям, готелям, аеропортам і сервісам персональних перевезень.
Автоматизація бронювань дозволяє зменшити навантаження на диспетчерів, швидше призначати водіїв, краще контролювати виконання поїздок, бачити доходи та підвищувати якість обслуговування клієнтів.
Коротко
| Питання | Відповідь |
|---|---|
| Що потрібно створити? | Модуль обліку замовлень трансферів і таксі |
| Які довідники потрібні? | Клієнти, автомобілі, водії, типи поїздок, тарифи |
| Який головний документ? | Замовлення поїздки |
| Що має містити замовлення? | Клієнта, дату, час, маршрут, водія, автомобіль, ціну, оплату і статус |
| Які статуси потрібні? | Нове, призначено, авто подано, виконується, виконано, оплачено, скасовано |
| Які оплати потрібні? | Готівка, картка, онлайн-оплата, безготівковий розрахунок |
| Які звіти потрібні? | Замовлення за період, ефективність водіїв, доходи по автомобілях, оплати, скасування |
| Що є критичною вимогою? | Повний цикл: бронювання → призначення → поїздка → оплата → звіт |