VetCar24
Staff App
Native Android app for the VetCar24 team: bookings, customers, messaging, analytics, and blog management — one app, fully offline-capable.
Internal business tool. All visuals shown are representative mockups without real customer data, at the explicit request of the client.
Privacy & Confidentiality
This app is an internal business tool belonging to the client. All visuals on this page are representative illustrations — no real app screenshots, no real customer data. Only architecture, tech stack, and feature scope are shown.
Dashboard view (representative mockup)
Bookings view (representative mockup)
Feature Scope
Everything a mobile veterinary team needs, day to day.
Dashboard
At-a-glance overview: today's bookings, next appointment, unread messages, quick actions
Booking Management
Week calendar strip, filter by status, swipe to cancel or complete, real-time status updates
Customer CRM
Full customer profiles, booking history, notes, per-booking messaging thread
Message Inbox
Per-booking messaging between customers and the practice, real-time via Supabase Realtime
Analytics
Revenue charts, booking statistics, period-over-period comparisons, all data cached locally
Blog Editor
Full rich text editor on mobile — create articles with SEO settings, publish directly to vetcar24.de
Time Blocker
Block time slots, set vacation days or breaks, instantly synced to the booking system
Permission System
Owner vs. staff roles: granular rights per feature — who sees what, who can edit what
Offline Mode
Fully functional without network: SQLite cache, action queue, automatic sync on reconnect
Biometric Lock
Automatic app lock after inactivity, unlock via fingerprint or Face ID
Push Notifications
Push alerts for new bookings, messages, cancellations — via Expo + Firebase
Staff Management
Invite team members, assign roles, manage access — all from mobile
Tech Stack in Detail
Native Android experience, real native components — no WebView
Expo Router v6 with file-based navigation, OTA updates via EAS
Strict mode, branded types, complete type safety end-to-end
Auth, Realtime updates, Row-Level Security, file storage
Local SQLite database, full offline capability with sync engine
Query persistence via AsyncStorage, optimistic updates, background sync
60fps animations on the JS thread, spring physics, layout transitions
Full rich text editor inside the app — create and publish blog posts on mobile
GPU-accelerated analytics charts with React Native Skia
Real-time crash reporting, performance monitoring, stack traces
Biometric unlock: fingerprint or face recognition
Native key-value store 10× faster than AsyncStorage, global state
Development Phase by Phase
Analysis & Architecture
Week 1–2Auth & Core
Week 3–4Bookings & Customers
Week 5–7Offline & Sync
Week 8–9Advanced Features
Week 10–12Testing & Deploy
Week 13–14Offline Architecture
expo-sqlite + Drizzle ORM store all critical data locally. The app remains fully usable without a network connection.
Mutations are buffered in a local queue and automatically synced with Supabase when connectivity is restored.
Optimistic updates with server-side validation. Conflicts resolved via last-write-wins strategy with rollback support.