02 / 07SAAS · KAPPER & BARBIERBinnenkort
Afsprakensysteem voor kappers
Ons eigen platform voor afspraken en bedrijfsbeheer voor kappers en barbiers: een agenda per medewerker, afspraken zonder dubbele boekingen, beheer van klanten, diensten en personeel, en rechten per rol. De gegevens van elke salon blijven op databaseniveau gescheiden.
- Wat we deden
- Multi-tenant SaaS-architectuur
- Agenda & afsprakenmotor
- Klanten-, diensten- en personeelsbeheer
- Rollen & veilige login
- Technologieën
- NestJSNext.jsTypeScriptPostgreSQL 16 (RLS)PrismaDocker
- Type
- SaaS · Eigen product
01Over het project
De vraag
Kappers en barbiers plannen hun afspraken vaak tussen telefoon, agenda en losse berichten door. Wij wilden één systeem waarin elke salon zijn agenda, medewerkers, diensten en klanten beheert, terwijl salons op hetzelfde platform elkaars gegevens onder geen enkele voorwaarde kunnen zien.
Onze aanpak
We bouwden het als multi-tenant SaaS: elk gegeven hoort bij één salon, en die scheiding wordt door de database zelf afgedwongen, niet alleen door de applicatie. De afsprakenlogica zit in één engine die los staat van het kanaal; nu gebruikt het webpaneel die, later kunnen een bot of WhatsApp dezelfde engine gebruiken. Het systeem is nog in ontwikkeling.
02Belangrijkste functies
- 01
Dagagenda
De dag van de salon op één scherm: afspraken op tijd, met hun status (gepland, verschenen, geannuleerd), en snel bladeren tussen dagen.
- 02
Controle op dubbele boekingen
Heeft een medewerker op dat moment al een afspraak, dan waarschuwt het systeem en toont het de overlappende afspraken. De salon kan bewust toch doorgaan.
- 03
Prijs en duur liggen vast
Een afspraak bewaart de prijs en duur van de diensten op het moment van boeken. Veranderen de prijzen later, dan blijft het bedrag van eerdere afspraken gelijk.
- 04
Medewerkers, diensten en klanten
Rollen voor eigenaar en medewerker, diensten met duur en prijs, klantkaarten met telefoon en notities. Een afspraak kan meerdere diensten bevatten en later aan een medewerker worden toegewezen.
- 05
Gegevens per salon gescheiden
De gegevens van elke salon zijn op databaseniveau gescheiden (row-level security); een salon kan nooit bij de gegevens van een andere salon.
- 06
Veilige sessies
Kortlevende inlogsleutels vernieuwen zichzelf veilig, en wordt een gestolen sessiesleutel opnieuw gebruikt, dan merkt het systeem dat op. De platformbeheerder die salons aanmaakt, logt via een volledig aparte weg in.
03Video's
Rondleiding door het paneel
Video volgt binnenkort
Een afspraak maken
Video volgt binnenkort
Mobiele weergave
Video volgt binnenkort
04Schermen
05Technologie
Interface
- Next.js
- Beheerpaneel voor de salon
- React 19 & TypeScript
- Type-veilige paneelcomponenten
- TanStack Query
- Data ophalen en cachen in het paneel
- Tailwind CSS 4
- Vormgeving en layout van het paneel
Server & data
- NestJS
- API in modules: afspraken, klanten, personeel
- PostgreSQL 16 (RLS)
- Gegevensscheiding per salon op rijniveau
- Prisma
- Databaseschema en queries
- JWT & Argon2
- Sessies en veilig opgeslagen wachtwoorden
Infrastructuur
- Docker
- Database-omgeving
- pnpm-monorepo
- API, paneel en gedeelde types in één repo
06Status
Dit project is in ontwikkeling. Denkt u aan iets vergelijkbaars?








