27 000 UAH
21 ставка
Суть проекту Ми відстежуємо фури, що перевозять вантажі наших клієнтів (промислові заводи). У фури під час завантаження видаються автономні GPS-маячки TKSTAR TK-905B (передача координат кожні 5 хвилин). Маячки НЕ закріплені за машинами постійно — вони працюють за схемою ротації: менеджер видає маячок водію під час завантаження, після рейсу водій повертає маячок з документами, і той же маячок видається на наступний рейс вже з іншою машиною. Потрібна веб-платформа: маячки надсилають дані на наш сервер, клієнти (заводи) заходять на сайт і бачать на карті свої машини в реальному часі. Кожен завод бачить ТІЛЬКИ свої маячки. Частина 1. Бекенд Розгорнути Traccar (open-source) на VPS. VPS купуємо ми, кандидат рекомендує конфігурацію. Налаштувати прийом даних з маячків TK-905B (протокол підтримується Traccar з коробки). Допомогти з перенаправленням маячків з китайського сервера на наш (SMS-команди).Мультитенантність. Ролі:Адмін (ми): бачить всі маячки, всі компанії, всі рейси. Створює компанії та користувачів, призначає рейси компаніям.Менеджер/диспетчер (наш співробітник на місці завантаження): видає та приймає маячки (див. модуль ротації).Клієнт (завод): логін/пароль, бачить тільки свої активні рейси та свою історію. Не бачить чужі маячки, вільний пул і службову інформацію. Частина 2. Модуль ротації маячків (ключова логіка) Кожен маячок має короткий номер у системі (№1, №2, №3...), що збігається з наклейкою на корпусі. Пошук маячка за цим номером.Видача: менеджер вибирає маячок з пулу → вводить номер машини (обов'язкове поле) + опціонально: ПІБ/телефон водія, напрямок/пункт вивантаження, компанія-замовник. Операція повинна займати секунди: одне вікно, мінімум полів. З моменту видачі на карті точка підписана номером машини та рейсом (наприклад «АХ1234ВХ → Київ»), а не ID пристрою.Повторна видача = закриття старого рейсу + відкриття нового. Для менеджера це виглядає як «просто вписав новий номер машини», але система зобов'язана зберігати історію прив'язок: кожен період роботи маячка прив'язаний до номера машини, який був активний у той момент. Перезапис номера з втратою історії — недопустима (інакше старі треки будуть підписані чужими машинами).Завершення рейсу та повернення маячка на склад — два окремі дії: рейс закривається при вивантаженні (зворотний шлях маячка з поштою клієнту не показується), повернення переводить маячок у статус «в пулі, вільний». Вільні маячки (в пулі / на зарядці / їдуть назад поштою) на клієнтській карті не відображаються. Адмін їх бачить зі статусами. Історія: по кожному маячку — всі його минулі рейси; по кожній компанії — всі її рейси. Частина 3. Фронтенд (веб-сайт) Макет сторінки:По центру — жива карта з машинами в реальному часі (оновлення без перезавантаження сторінки, WebSocket/полінг). Іконки машин; клік по машині → картка: номер машини, водій, напрямок, швидкість, час останньої позначки, статус (в русі / стоїть / немає зв'язку).Справа — панель профілю залогіненого користувача: назва компанії, список її активних рейсів зі статусами онлайн/офлайн, швидкий перехід до машини на карті.Зверху — пошук по своїм маячкам/машинам (по номеру машини, номеру маячка, напрямку). Сторінка логіна. Адаптив під мобільні (менеджери та клієнти будуть відкривати з телефону). Функції:Історія маршруту за вибраний період (проігрування треку на карті).Звіт по стоянкам: де стояла машина, з якого по яке час, скільки годин (приклад: «Київ, вт 08:00 — чт 09:00, 49 год»).Геозони: адмін обводить на карті зони (завод, пункти вивантаження). Звіт по часу в зонах + сповіщення про в'їзд/виїзд (в інтерфейсі; e-mail/Telegram — плюсом, обговорюється). Експорт звітів в Excel/PDF — плюсом. Частина 4. Технічні вимоги Бекенд: Traccar API (REST + WebSocket). Кастомна логіка ротації — окремим шаром поверх Traccar (свій сервіс + БД) або через атрибути Traccar, на розсуд виконавця, але з обґрунтуванням. Фронтенд: React або Vue. Карта: Leaflet + OpenStreetMap (або Google Maps, якщо обґрунтуєте).
Налаштувати автоочистку історії координат старше 6 місяців (retention policy в Traccar / за погодженням), щоб база не розросталася безкінечно. Звіти та підсумки рейсів за старі періоди при цьому повинні зберігатися.
Мова інтерфейсу: українська (російська — плюсом, перемикач не обов'язковий на старті). Дані та сервер повністю наші: жодних прив'язок до сторонніх закритих сервісів. Частина 5. Здача проекту Робоча платформа на нашому домені. Усі доступи: VPS, Traccar, база, репозиторій з кодом. Коротка інструкція (текст або відео): як додати новий маячок, як створити компанію/користувача, як менеджеру видавати та приймати маячки. 2–4 тижні підтримки після здачі на виправлення багів (обговорюється). Питання кандидату (обов'язково відповісти в відгуку) Розгортали ви Traccar? Робили кастомний фронтенд поверх Traccar API? Посилання/скріни прикладів. Як пропонуєте реалізувати мультитенантність і модуль ротації (коротко, 3–5 пропозицій)? Термін і ціна: (а) MVP — карта, логіни, ротація, стоянки; (б) повна версія з геозонами та звітами. Рекомендована конфігурація VPS під ~20–50 маячків.