P/01 — B2B healthcare marketplace
DentistFinder
Started by connecting dental clinics with dentists by the hour and is now evolving into a marketplace for healthcare professionals in general, from search to confirmed appointment.
Scope
The marketplace connects both sides of hiring healthcare professionals, starting with dentistry in São Paulo. Clinics search by specialty, equipment, region, rate and open hours, then send a proposal with a server-calculated summary. The professional accepts or declines. Acceptance books the slot, removes it from the public calendar and expires conflicting proposals. After the appointment, both sides confirm it happened or open a dispute.
The foundation proven with dentists (profiles, scheduling, proposals, completion and reviews) is being generalized to other healthcare fields. Medical records, patients and service payments are out of scope by product decision: the focus is hiring between professionals.
What I built
- Scheduling with recurrence, blocks and DST handling (Temporal/IANA); GiST exclusion prevents overlaps
- Search with 19 combinable, accent-insensitive filters and continuous availability coverage
- Idempotent proposals with immutable snapshots, database-clock expiry and a full lifecycle
- Two-sided completion, disputes, anti-retaliation review publishing and moderation
- Private storage (R2) with magic-number validation and EXIF stripping
- Plans and entitlements, admin panel with TOTP MFA and license verification
By the numbers
- API routes
- 113
- Automated tests
- 169
- SQL migrations
- 10+
- NestJS
- Next.js 16
- React 19
- PostgreSQL 18
- Prisma
- Zod
- TanStack Query
- Turborepo
- Vitest
- Playwright
Screens05
Mobile landing
Clinic search
Professional's calendar
Proposal review
Booking confirmed
Calendar · desktop
Two-sided completion · desktop