Werk · Voor zelfstandige professionals

Vier Excel-versies werden één app.

Total Tankstation had elke maand hetzelfde verhaal: een Excel-rooster dat in vier versies tegelijk circuleerde, ruilverzoeken via WhatsApp, en niemand wist meer wat de meest recente waarheid was.

KlantTotal Tankstation SectorRetail / Tankstations Periode2026 StatusIn productie StackReact · Node · Postgres · Docker

Het probleem

Een tankstation draait 24/7. Het rooster is daarmee het belangrijkste document van de operatie — als het niet klopt, staat de pomp leeg of staat er één te veel. De manager bouwde elke maand het rooster in Excel, mailde het rond, en daarna begon het echte werk: medewerkers gaven ruilverzoeken door via WhatsApp, de manager paste het Excel-bestand handmatig aan, en mailde een nieuwe versie. Halverwege de maand circuleerden er typisch vier versies tegelijk. De vraag "welke versie geldt?" werd vaker gesteld dan ik wil opschrijven.

Daarbovenop: geen mobiele weergave (iedereen op een laptop met een file met 30 kolommen), geen logging (wie heeft wat goedgekeurd?), en als de manager op vakantie was viel alles stil.

VOOR

  • 4 Excel-versies per maand
  • Ruilverzoeken via WhatsApp
  • Geen mobiel
  • Geen audit trail
  • Manager-afhankelijk

NA

  • Eén bron van waarheid
  • Ruilen in-app, met goedkeuring
  • Mobiel-eerst
  • Volledige audit log
  • Automatische e-mail reminders

De oplossing

Een webapplicatie die het Excel-bestand letterlijk vervangt. Niet "meer features" — minder. De manager bouwt het rooster in een kalender-grid, publiceert het, en medewerkers zien direct hun diensten op hun telefoon. Beschikbaarheid en vrije dagen worden in-app aangevraagd. Diensten ruilen werkt met een tweezijdige goedkeuring (collega akkoord → manager akkoord → rooster bijgewerkt) — geen WhatsApp meer.

Wat er onder de motorkap zit

  • Frontend React 18 + Vite + TailwindCSS + Zustand. Mobile-first.
  • Backend Node.js 20 + Express + Prisma ORM
  • Database PostgreSQL 16, met dagelijkse off-site backups
  • Auth JWT — 15-min access token + 7-daags httpOnly refresh-cookie, met token-rotatie
  • Notificaties In-app belletje + e-mail (cron-job 18:00 voor dienst-reminders, 09:00 voor manager-reminders)
  • Deployment Docker Compose + nginx op Hetzner (~€10/maand)

Wat het opleverde

De maandelijkse rooster-cyclus is van een week-met-mailtjes naar een middag-in-de-app gegaan. Versie-conflicten: nul. Ruilverzoeken die "zoek raken" in WhatsApp: nul. Iedere medewerker heeft op zijn telefoon altijd het actuele rooster, met een notificatie de avond voor zijn dienst.

Belangrijkste minder-zichtbare winst: de manager hoeft niet meer in vakantie bereikbaar te zijn voor "welke versie geldt nu?". Het systeem is de bron van waarheid.