We are seeking an experienced
Node.js developer to build a robust appointment booking system tailored for a healthcare practice. This fixed-price project requires a comprehensive solution where patients can easily select a doctor, choose an available time slot, and complete payment via a payment gateway (supporting Pix and credit card transactions). Automatic confirmation will be sent to the patient upon successful
payment.The system's core functionality includes an admin interface for configuring doctors and their weekly availability, including limited Sunday hours. The system must intelligently generate available slots and clearly mark booked slots as non-selectable. Critical to this project is the implementation of reservation logic with database-level atomic locking to prevent double bookings, ensuring safe handling of simultaneous booking attempts. Additionally, slots must be automatically released if payment is not completed within a 10-minute window. Full integration with a payment gateway (e.g., AbacatePay, similar to Stripe or Mercado Pago) is required, including handling payment requests, processing signature-verified idempotent webhooks, and auto-confirming appointments upon payment approval. A background job will be necessary to manage and release expired reservations, with comprehensive event logging for all actions. The patient-facing booking flow should be lightweight, mobile-friendly, and embeddable into an existing landing page, following a clear path: doctor selection
date/time selection
patient information entry
payment processing
status display
final confirmation. All appointment records will be stored in PostgreSQL with status tracking for Available, Reserved, Paid, Expired, and Cancelled.
Technology Stack:
The project will be built using
Node.js and Express for the backend, PostgreSQL as the database, and Prisma for ORM. The frontend should be responsive and designed for easy embedding. Deployment is expected on platforms like Railway or Render.
Deliverables:
The successful freelancer will provide the complete source code, a detailed database schema, Prisma migration scripts, comprehensive API and webhook documentation, deployment and installation guides, a Postman collection for API testing, and a live production deployment.
Acceptance Criteria:
Project acceptance will be based on the following: demonstrable absence of double bookings under concurrent load, reliable automatic release of expired reservations, successful end-to-end Pix and credit card payment flows tested in a sandbox environment, and a reproducible setup from the provided installation guide.
Delivery term: Not specified