Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
HOS Desk — truck driver trip planner: legal HOS routes + FMCSA-style daily logs. Django API + React/MapLibre SPA.
Translation pending
BusinessJavaScript · PythonGitHub @KarmSakhaOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
A night-dispatch trip planner that turns a truck driver's leg into a FMCSA-style planned daily log. Enter the truck's current location, the pickup,
the dropoff, and how much of the 70-hour/8-day cycle is already burned — the
app geocodes the points, routes the truck, inserts breaks, fuel and rest under the stated planning assumptions, and draws one recognizable paper log sheet per
calendar day.
This is a take-home prototype, not a certified ELD. It renders familiar
Records of Duty Status paper logs (the JJ Keller / Schneider style) for
planning and explanation.Read the full README ↗Live: https://hosdesk.karmx.dev
A night-dispatch trip planner that turns a truck driver's leg into a FMCSA-style planned daily log. Enter the truck's current location, the pickup, the dropoff, and how much of the 70-hour/8-day cycle is already burned — the app geocodes the points, routes the truck, inserts breaks, fuel and rest under the stated planning assumptions, and draws one recognizable paper log sheet per calendar day.
This is a take-home prototype, not a certified ELD. It renders familiar Records of Duty Status paper logs (the JJ Keller / Schneider style) for planning and explanation.
current → pickup → dropoff. A driver who
is already at the pickup gets no deadhead leg.24:00 day total, a 70h/60h recap table (A = last 7
days, B = 70 − A, C = last 8 days; the supplied blank misprints two of the
day counts), driver signature and co-driver lines, and the
circled on-duty decimal — all drawn in a hand-written style and animated as
if being penned.| Method | Path | Purpose |
|---|---|---|
GET | /api/health/ | Liveness |
GET | /api/geocode/?q= | Typeahead suggestions |
POST | /api/trips/ | Plan a trip; returns route, stops, gauges, per-day logs |
GET | /api/trips/<uuid>/ | Fetch a saved trip (shareable URL) |
POST /api/trips/ body:
{
"current_location": "Green Bay, WI",
"pickup_location": "Chicago, IL",
"dropoff_location": "Dallas, TX",
"current_cycle_used_hours": 20,
"start_time": "06:00",
"timezone": "America/Chicago",
"carrier": "...", "shipper": "...", "commodity": "...",
"manifest": "...", "tractor": "...", "trailer": "...",
"driver": "...", "home_terminal": "...", "main_office": "..."
}
Every optional text field defaults to N/A.
# backend (Python 3.12+)
cd backend
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver # http://127.0.0.1:8000
# frontend (Node 22+)
cd frontend
npm install
npm run dev # http://localhost:5173
The frontend uses same-origin /api; Vite proxies it to http://127.0.0.1:8000 locally. Set VITE_API_URL only for a split deployment.
cd backend && source .venv/bin/activate
python manage.py test trips
36 backend tests cover the 11h/14h/30-min/70h/34h/fuel rules, multi-day splits, per-day totals, and a golden Schneider-style fixture.
Backend environment variables:
| Var | Default | Notes |
|---|---|---|
DJANGO_SECRET_KEY | dev value | set in production |
DJANGO_DEBUG | True | False in production |
DJANGO_ALLOWED_HOSTS | * | comma-separated |
DATABASE_URL | sqlite | Postgres via dj-database-url |
CORS_ALLOWED_ORIGINS | localhost:5173 | comma-separated |
NOMINATIM_URL | public Nominatim | point at a private instance for production |
OSRM_URL | public OSRM demo | likewise |
GEO_USER_AGENT | HOSDesk/1.1 … | required by Nominatim policy |
GEO_REFERER | https://trucklog.local/ | same |
Frontend environment variables:
| Var | Default |
|---|---|
VITE_API_URL | empty (same origin) |
render.yaml ships a web service: gunicorn config.wsgi with
WhiteNoise serving static files; env vars wired for DATABASE_URL +
CORS_ALLOWED_ORIGINS.Dockerfile builds the Vite bundle and serves the whole
app (API + static frontend) from one Gunicorn container.frontend/ is a plain Vite app; point VITE_API_URL at the
hosted API. vercel.json rewrites /trips/* to index.html for share
links.America/Chicago), matching the paper form's instruction.backend/ Django 5 API
trips/
planner/ pure-Python HOS engine (core) + day splitter (days)
services/ geocode (Nominatim→Photon) + OSRM routing
tests/ planner rule tests
frontend/ React 19 + Vite + MapLibre
src/components/ DispatchTicket, Gauges, RouteMap, LogBook, LogSheet (SVG)
Generated with Devin.
Repository: https://github.com/KarmSakha/truck-log
Record a 3–5 minute Loom before submitting; no recording is linked yet. Suggested sequence: sample trip and map stops (45s), daily log totals and mobile zoom (45s), replay/pause/seek and print (30s), planner rules and tests (60s), React log renderer and API structure (45s). Include the live URL, repository, and recording link in the submission.
Frontend regression checks: cd frontend && npm test && npm run lint && npm run build.
Saved trips restore all optional fields. Replay supports pause, seek, and resume.
Road-by-road directions are included for newly planned trips. Replan older saved trips to obtain directions. Routes use a general driving profile, not truck-specific clearance or weight restrictions. Fuel/rest markers are estimated route positions, not verified facilities. The driver is assumed fully rested at the start; supplied cycle hours do not describe the current shift. These assumptions are also visible in the logbook.
A timed recording outline is available in docs/demo-walkthrough.md.