Case / 04 of 07
PawTales
The booking model changes when the customer has four legs.
Context
A pet grooming platform based on the salon booking model.
Customers book grooming services for a specific pet while stores manage appointments, offers and earnings.
System
Customer appPartner app
NestJS API
PostgreSQL
CashfreeMSG91S3Google OAuth
What I built
- Customer application
- Partner application
- Booking system
- Pet profiles
- Payments
- Coupons
- Search
- Notifications
- Store management
The hard part
A booking belongs to a particular animal.
A booking isn’t just attached to a customer.
That changes how the data model, booking flow and operational experience have to behave.
Engineering decisions
- 01
The pet is part of the booking.
Bookings reference a pet profile, not just a customer account.
- 02
Store timezone for booking and refunds.
Booking and refund rules are evaluated in the store’s timezone.
Shipped
- Customer app
- Partner app
Stack
- React
- Vite
- Tailwind
- TypeScript
- NestJS
- PostgreSQL
- TypeORM
Integrations
- Cashfree
- MSG91
- AWS S3
- Google OAuth