605 USD
24 proposals
Project essence We track trucks transporting goods for our clients (industrial factories). Autonomous GPS beacons TKSTAR TK-905B are issued to the trucks during loading (coordinates are transmitted every 5 minutes). The beacons are NOT permanently attached to the vehicles — they operate on a rotation scheme: the manager issues the beacon to the driver during loading, after the trip the driver returns the beacon with documents, and the same beacon is issued for the next trip with a different vehicle. A web platform is needed: the beacons send data to our server, clients (factories) log into the site and see their vehicles on the map in real-time. Each factory sees ONLY its beacons. Part 1. Backend Deploy Traccar (open-source) on a VPS. We purchase the VPS, the candidate recommends the configuration. Set up data reception from TK-905B beacons (the protocol is supported by Traccar out of the box). Assist with redirecting beacons from the Chinese server to ours (SMS commands). Multitenancy. Roles: Admin (us): sees all beacons, all companies, all trips. Creates companies and users, assigns trips to companies. Manager/dispatcher (our employee at the loading site): issues and receives beacons (see the rotation module). Client (factory): login/password, sees only its active trips and its history. Does not see other beacons, the free pool, and service information. Part 2. Beacon rotation module (key logic) Each beacon has a short number in the system (No.1, No.2, No.3...), matching the sticker on the case. Search for the beacon by this number. Issuance: the manager selects a beacon from the pool → enters the vehicle number (mandatory field) + optionally: full name/phone of the driver, direction/delivery point, client company. The operation should take seconds: one window, minimum fields. From the moment of issuance, the point on the map is marked with the vehicle number and trip (for example, “AH1234VH → Kyiv”), not the device ID. Re-issuance = closing the old trip + opening a new one. For the manager, it looks like “just entered a new vehicle number,” but the system must keep a history of bindings: each period of the beacon's operation is tied to the vehicle number that was active at that moment. Overwriting the number with loss of history is unacceptable (otherwise, old tracks will be marked with other vehicles). Trip completion and return of the beacon to the warehouse — two separate actions: the trip is closed upon unloading (the return path of the beacon with mail is not shown to the client), the return changes the beacon's status to “in the pool, free.” Free beacons (in the pool / charging / returning by mail) are not displayed on the client map. The admin sees them with statuses. History: for each beacon — all its past trips; for each company — all its trips. Part 3. Frontend (website) Page layout: In the center — a live map with vehicles in real-time (updating without page reload, WebSocket/polling). Vehicle icons; click on a vehicle → card: vehicle number, driver, direction, speed, time of the last mark, status (moving / stopped / no connection). On the right — profile panel of the logged-in user: company name, list of its active trips with online/offline statuses, quick access to the vehicle on the map. At the top — search for its beacons/vehicles (by vehicle number, beacon number, direction). Login page. Responsive for mobile (managers and clients will open from their phones). Functions: Route history for the selected period (playing back the track on the map). Parking report: where the vehicle was parked, from what time to what time, how many hours (example: “Kyiv, Tue 08:00 — Thu 09:00, 49 hrs”). Geofences: admin outlines zones on the map (factory, unloading points). Report on time in zones + notifications of entry/exit (in the interface; e-mail/Telegram — a plus, negotiable). Export reports to Excel/PDF — a plus. Part 4. Technical requirements Backend: Traccar API (REST + WebSocket). Custom rotation logic — a separate layer on top of Traccar (own service + DB) or through Traccar attributes, at the discretion of the performer, but with justification. Frontend: React or Vue. Map: Leaflet + OpenStreetMap (or Google Maps, if justified).
Set up auto-cleaning of coordinate history older than 6 months (retention policy in Traccar / by agreement), so the database does not grow indefinitely. Reports and trip summaries for old periods must be preserved.
Interface language: Ukrainian (Russian — a plus, switch not mandatory at the start). Data and server are fully ours: no ties to third-party closed services. Part 5. Project delivery Working platform on our domain. All accesses: VPS, Traccar, database, repository with code. Brief instructions (text or video): how to add a new beacon, how to create a company/user, how the manager issues and receives beacons. 2–4 weeks of support after delivery for bug fixes (negotiable). Questions for the candidate (must answer in the response) Have you deployed Traccar? Have you created a custom frontend on top of the Traccar API? Links/screenshots of examples. How do you propose to implement multitenancy and the rotation module (briefly, 3–5 sentences)? Timeline and price: (a) MVP — map, logins, rotation, parking; (b) full version with geofences and reports. Recommended VPS configuration for ~20–50 beacons.