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.
- 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
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