Eigen product · Horeca & zorg

Roosterke: personeelsplanning in een eigen app

Van idee tot App Store, volledig door mij gebouwd: een planbord voor de planner, een app waarin het team zelf ruilt en open diensten oppakt, en een regelengine die elke dienst vooraf toetst aan de Arbeidstijdenwet en de cao.

Delen
Roosterke: personeelsplanning in een eigen app
iOS
app live in de App Store
970+
geautomatiseerde tests
6
modulecategorieën, per klant aan of uit
4 weken
eerlijk rooster in één klik

De uitdaging

In horeca en zorg wordt het rooster vaak nog in Excel gemaakt en via WhatsApp-groepjes rondgestuurd. Ruilen gaat via rondbellen, een ziekmelding betekent zelf een vervanger zoeken, en bij elke wijziging kan ongemerkt een rusttijd, een pauzeregel of een cao-afspraak sneuvelen. De planner merkt dat pas als het al fout is.

Daarbij verschilt elke organisatie: de ene wil alleen roosteren, de andere ook verlof, verzuim, loonexport en een eigen huisstijl in de app. Een standaardpakket past dan nooit helemaal.

Ik wilde een product waarin:

  • de planner het rooster maakt op één overzichtelijk planbord;
  • het team zelf ruilt, open diensten oppakt en zich ziek meldt in een app;
  • elke dienst vooraf klopt met de Arbeidstijdenwet en de cao, ook na een ruil;
  • elke organisatie alleen aanzet wat ze nodig heeft, in haar eigen logo, naam en kleur.

In beeld

Zo ziet het eruit

Roosterke-planbord met diensten per dag en het budget per afdeling
Het planbord: diensten slepen per dag, met het budget per afdeling live in beeld.
Automatisch plannen in Roosterke: 33 van 35 open diensten kunnen worden ingevuld
Automatisch plannen: 33 van de 35 open diensten in één klik ingevuld, binnen de wet en de contracturen.
Huisstijl instellen in Roosterke met live voorbeeld van de app
Huisstijl: elke organisatie zet haar eigen logo, naam en kleur in de app, met een live voorbeeld.
Overzicht van Arbeidstijdenwet- en cao-overtredingen per locatie
Overtredingen: blokkerende en waarschuwende signalen per locatie, nog voordat het rooster live gaat.
Roosterke-app: de eerstvolgende dienst en de maandkalender
Mijn diensten in één oogopslag
Roosterke-app: open diensten claimen
Open diensten claimen met één tik
Roosterke-app: bevestigen dat je een dienst oppakt
Duidelijk wat een dienst voor je rooster betekent
Roosterke-app: aanvraag verstuurd naar de planner
De planner keurt goed, jij krijgt een melding

De aanpak

Een strak gelaagd .NET 10-platform

De backend draait op .NET 10 en bestaat uit losse lagen met elk één verantwoordelijkheid: domein, logica, data, een Web API, een Blazor-beheerpaneel, een statistiekservice en een worker voor webhooks. De afhankelijkheden wijzen naar binnen, dus de kern weet niets van de database of de buitenwereld. Elke organisatie is netjes afgeschermd: alle data wordt per organisatie gefilterd, zodat klanten nooit elkaars gegevens zien.

Een regelengine voor wet en cao

Het hart van Roosterke is een regelengine die elke dienst toetst aan de Arbeidstijdenwet en de cao: rusttijden, pauzes, nachtwerk en regels voor jongeren onder de 16. Die engine werkt op een momentopname in plaats van rechtstreeks op de database. Daardoor is elke regel los te testen, en kan een ruil nooit stiekem een rusttijd breken. Zonder de compliance-module draait hij in adviesmodus; met de module blokkeert hij, met een verplichte afwijkreden.

Fundament plus modules

Het fundament staat altijd aan: roosters, planbord, open diensten, bieden, ruilen, teruggeven en ziekmelden, beschikbaarheid, uren en toeslagen. Daarbovenop zitten modules in zes categorieën: planning, team, HR, financieel, communicatie en compliance. Denk aan automatische planning, vraagvoorspelling, verlof met saldo in uren, verzuim met Poortwachter-taken en een loonexport naar Nmbrs, Loket of AFAS. Per organisatie gaat een module aan of uit, en uit is echt uit: de API weigert dan ook de bijbehorende endpoints.

Een eigen app voor iPhone, Android volgt

De app is gebouwd met NativePHP, Laravel en Vue 3 en draait native op iPhone. Medewerkers zien hun diensten, pakken open diensten op en ruilen met één knop. Pushmeldingen gaan via Apple (APNs) en Google (FCM) en worden via een wachtrij betrouwbaar afgeleverd. De app neemt de huisstijl van de organisatie over, en een uitnodigingslink opent direct de juiste omgeving.

Veilig en zonder gedoe bij updates

  • Inloggen met kortlevende tokens en roterende refresh-tokens; een deploy logt niemand uit.
  • Toestelcontrole via Apple App Attest en Google Play Integrity, plus rate limiting.
  • App-updates buiten de App Store om worden digitaal ondertekend, zodat alleen echte updates worden geïnstalleerd.
  • Ruim 970 geautomatiseerde tests, ook tegen een echte MariaDB-database.

Het resultaat

Roosterke is live. Het planbord draait in het webbeheer en de app staat in de App Store; Android volgt binnenkort.

  • Rust voor de planner: het rooster klopt vooraf met de wet, en het team regelt ruilen en open diensten zelf.
  • Ziekte zonder rondbellen: met één klik vraag je alle geschikte en beschikbare collega's om in te vallen.
  • Sneller plannen: de automatische planning maakt een eerlijk rooster voor tot vier weken, met uitleg per toewijzing.
  • Past bij elke organisatie: modules en huisstijl per klant, zonder aparte code per klant.

Ook een eigen app voor jouw bedrijf? Roosterke laat zien hoe ik maatwerk apps bouw: van analyse en ontwerp tot een app in de App Store, met dezelfde aandacht voor betrouwbaarheid als voor gebruiksgemak. Plan een gratis gesprek van 30 minuten en ik denk mee over wat jouw app moet kunnen. Meer over Roosterke zelf lees je op roosterke.nl.

Techniek

.NET 10 ASP.NET Core Blazor Server EF Core MariaDB NativePHP Vue 3 APNs & FCM xUnit
Neem contact op