2285 PLN
22 oferty
Istota projektu Śledzimy ciężarówki transportujące ładunki naszych klientów (zakłady przemysłowe). Do ciężarówek przy załadunku wydawane są autonomiczne GPS-znaczniki TKSTAR TK-905B (przesyłanie współrzędnych co 5 minut). Znaczniki NIE są przypisane do pojazdów na stałe — działają w systemie rotacji: menedżer wydaje znacznik kierowcy przy załadunku, po kursie kierowca zwraca znacznik z dokumentami, a ten sam znacznik jest wydawany na następny kurs już z innym pojazdem. Potrzebna jest platforma internetowa: znaczniki wysyłają dane na nasz serwer, klienci (zakłady) wchodzą na stronę i widzą na mapie swoje pojazdy w czasie rzeczywistym. Każdy zakład widzi TYLKO swoje znaczniki. Część 1. Backend Rozwinąć Traccar (open-source) na VPS. VPS kupujemy my, kandydat rekomenduje konfigurację. Skonfigurować odbiór danych z znaczników TK-905B (protokół jest wspierany przez Traccar "z pudełka"). Pomóc z przekierowaniem znaczników z chińskiego serwera na nasz (komendy SMS).Multitenancy. Role:Admin (my): widzi wszystkie znaczniki, wszystkie firmy, wszystkie kursy. Tworzy firmy i użytkowników, przypisuje kursy firmom.Menedżer/dyspozytor (nasz pracownik na miejscu załadunku): wydaje i przyjmuje znaczniki (patrz moduł rotacji).Klient (zakład): login/hasło, widzi tylko swoje aktywne kursy i swoją historię. Nie widzi cudzych znaczników, wolnego puli i informacji służbowych. Część 2. Moduł rotacji znaczników (kluczowa logika) Każdy znacznik ma krótki numer w systemie (nr 1, nr 2, nr 3...), odpowiadający naklejce na obudowie. Wyszukiwanie znacznika po tym numerze.Wydanie: menedżer wybiera znacznik z puli → wprowadza numer pojazdu (pole obowiązkowe) + opcjonalnie: imię i nazwisko/telefon kierowcy, kierunek/punkt rozładunku, firma-zamawiająca. Operacja powinna zajmować sekundy: jedno okno, minimum pól. Od momentu wydania na mapie punkt podpisany numerem pojazdu i kursem (np. "AХ1234ВХ → Kijów"), a nie ID urządzenia.Ponowne wydanie = zamknięcie starego kursu + otwarcie nowego. Dla menedżera wygląda to jak "po prostu wpisał nowy numer pojazdu", ale system musi zachować historię powiązań: każdy okres pracy znacznika jest powiązany z numerem pojazdu, który był aktywny w danym momencie. Nadpisanie numeru z utratą historii — niedopuszczalne (w przeciwnym razie stare ślady będą podpisane cudzymi pojazdami).Zakończenie kursu i zwrot znacznika do magazynu — dwa oddzielne działania: kurs zamyka się przy rozładunku (powrotny transport znacznika z pocztą do klienta nie jest pokazywany), zwrot przekształca znacznik w status "w puli, wolny". Wolne znaczniki (w puli / na ładowaniu / wracają pocztą) na mapie klienta nie są wyświetlane. Admin widzi je ze statusami. Historia: dla każdego znacznika — wszystkie jego poprzednie kursy; dla każdej firmy — wszystkie jej kursy. Część 3. Frontend (strona internetowa) Makieta strony:Na środku — żywa mapa z pojazdami w czasie rzeczywistym (aktualizacja bez przeładowania strony, WebSocket/polling). Ikony pojazdów; kliknięcie na pojazd → karta: numer pojazdu, kierowca, kierunek, prędkość, czas ostatniego oznaczenia, status (w ruchu / stoi / brak połączenia).Po prawej — panel profilu zalogowanego użytkownika: nazwa firmy, lista jej aktywnych kursów ze statusami online/offline, szybkie przejście do pojazdu na mapie.Na górze — wyszukiwanie po swoich znacznikach/pojazdach (po numerze pojazdu, numerze znacznika, kierunku). Strona logowania. Responsywność na urządzenia mobilne (menedżerowie i klienci będą otwierać z telefonu). Funkcje:Historia trasy za wybrany okres (odtwarzanie śladu na mapie).Raport o postojach: gdzie stał pojazd, od kiedy do kiedy, ile godzin (przykład: "Kijów, wt 08:00 — czw 09:00, 49 godz.").Geostrefy: admin obrysowuje na mapie strefy (zakład, punkty rozładunku). Raport o czasie w strefach + powiadomienia o wjeździe/wyjeździe (w interfejsie; e-mail/Telegram — dodatkowo, do omówienia). Eksport raportów do Excel/PDF — dodatkowo. Część 4. Wymagania techniczne Backend: API Traccar (REST + WebSocket). Niestandardowa logika rotacji — oddzielną warstwą nad Traccar (własna usługa + Baza Danych) lub przez atrybuty Traccar, według uznania wykonawcy, ale z uzasadnieniem. Frontend: React lub Vue. Mapa: Leaflet + OpenStreetMap (lub Google Maps, jeśli uzasadnisz).
Skonfigurować automatyczne czyszczenie historii współrzędnych starszych niż 6 miesięcy (polityka retencji w Traccar / po uzgodnieniu), aby baza nie rozrastała się w nieskończoność. Raporty i podsumowania kursów za stare okresy powinny być zachowane.
Język interfejsu: ukraiński (rosyjski — dodatkowo, przełącznik nie jest obowiązkowy na początku). Dane i serwer są całkowicie nasze: żadnych powiązań z zewnętrznymi zamkniętymi usługami. Część 5. Oddanie projektu Działająca platforma na naszej domenie. Wszystkie dostępności: VPS, Traccar, baza, repozytorium z kodem. Krótka instrukcja (tekst lub wideo): jak dodać nowy znacznik, jak stworzyć firmę/użytkownika, jak menedżer wydaje i przyjmuje znaczniki. 2–4 tygodnie wsparcia po oddaniu na poprawki błędów (do omówienia). Pytania do kandydata (obowiązkowo odpowiedzieć w odpowiedzi) Czy rozwijałeś Traccar? Czy robiłeś niestandardowy frontend nad API Traccar? Linki/zrzuty ekranu przykładów. Jak proponujesz zrealizować multitenancy i moduł rotacji (krótko, 3–5 zdań)? Termin i cena: (a) MVP — mapa, loginy, rotacja, postoje; (b) pełna wersja z geostrefami i raportami. Rekomendowana konfiguracja VPS pod ~20–50 znaczników.