Bot Manager — Telegram & fleet operations
The internal operations panel of a US fleet company: a Telegram-style chat client for driver groups, scheduled posts, risk zones, inspections and role-based access.
- Role
- Frontend lead · built from scratch
- Longhorn Logistics Group
- Year
- 2024
- Stack
- Vue 3TypeScriptVitePiniaTanStack QuerySTOMP/WebSocketLeafletHERE Mapsvue-i18nTailwind CSSVitest
- My commits
- 1,700+
- Share of history
- 79%
- Feature modules
- 41
Multi-group post scheduling across US time zones Telegram Mirror: chat folders and mirrored driver groups Customers: subscriptions, connected events and billing status Role-based access control
The product
Dispatch, safety and maintenance teams talk to hundreds of truck drivers through Telegram groups. Bot Manager is the panel they work in every day: it mirrors those chats, automates posts and alerts, and connects them with fleet data — drivers, units, inspections (PTI), work orders and risk zones.
My role
Bot Manager is my project from the very first commit. I created the repository in December 2024 and built the whole frontend myself:
- Architecture — the
app / pages / modules / sharedlayering, isolated feature modules, the typed API layer and the lazy-loaded route registry with feature flags. - Build setup — Vite and TypeScript setup, and release detection that prompts users to refresh after a deploy.
- Realtime & resilience — the app-wide STOMP client, reconnect strategy and graceful handling of server restarts and expired sessions.
- Developer experience — ESLint, Prettier, husky, lint-staged, commitlint with module-based scopes and a pre-push hook running type-check, tests and a staging build.
- Product — the shared UI kit and most of the 41 feature modules, including Telegram Mirror, posts, risk zones, PTI and RBAC.
I wrote ~80% of the codebase history (1,700+ commits) and remain its lead.
Architecture
- Layers —
app / pages / modules / shared; thin route pages, isolated feature modules that never import each other, and 35 typed API domains with queries and mutations (TanStack Query) plus Pinia for client state. - Lazy-loaded route registry with build-time feature flags.
- RBAC — ~20 permission groups enforced on routes and down to individual chat folders.
Highlights
- Telegram Mirror — a Telegram-like client with chat folders, pinned messages, media and voice, deleted-message history and search. The message list is a bidirectional, jump-capable window that loads around the viewport and re-centres on a reply or search hit.
- Resilient realtime — one app-wide STOMP client that keeps handlers across reconnects, queues subscriptions made before connect and resumes when the network or tab returns.
- Graceful failure — 502/503/504 shows a “server restarting” banner with backoff and refetch; only 401 signs out and returns the user to the same page; a toast offers refresh when a new deploy is live.
- Scheduling across time zones — multi-group posts with CT/ET/MT/PT previews, state targeting, pinning and auto-delete.
- Quality bar — zero type errors enforced, Conventional Commits with module-based scopes, and a pre-push hook running type-check, tests and a staging build.
Next project
Load Up — TMS & dispatch board