Skip to main content
Introduction

What's New in CareNova 1.2.0?

Written By Dev010

Last updated About 1 month ago

CareNova 1.2.0 introduces a clinic-branded Patient Portal and clinic-managed invoice payments while preserving the existing staff dashboard, clinical records, SaaS workspaces, and cash billing workflows.

Patient Portal

Patients now have a separate, secure portal where they can:

  • Sign up and sign in with email/password or a configured OAuth provider.

  • View upcoming and previous appointments.

  • Request an appointment without leaving the portal.

  • Export a confirmed appointment to their device calendar.

  • View invoices and download print-ready PDF copies.

  • Edit personal, health, emergency-contact, and profile-photo information.

  • Change their password or delete their portal login account.

Patient and staff access remain separate. Platform administrators use /admin, clinic staff use their clinic-specific sign-in route, and patients use /portal.

Clinic payments

Each clinic can independently enable one or both patient payment methods from Dashboard -> Settings -> Payment:

  • Bank transfer: the patient sees the clinic's bank details and a unique transfer reference, submits a full-balance payment claim, and waits for an administrator to approve or reject it.

  • Stripe Checkout: the patient pays the full outstanding invoice balance using a one-time Stripe Checkout session. Signed webhooks update the matching CareNova payment and invoice.

Patient-facing payments in version 1.2.0 are full-balance invoice payments. The portal does not offer subscriptions or partial invoice payments.

Other improvements

  • Clinic-aware light and dark themes across portal pages, dialogs, and scheduling.

  • Portal translations in English, French, Spanish, and Arabic, including RTL layouts.

  • Safer invoice PDFs with pagination, currency labels, doctor titles, long-content handling, and Arabic font support.

  • Better authentication errors and clinic-context preservation through signup, confirmation, and OAuth.

  • Public appointment requests now require a patient account and continue in the selected clinic's portal.

  • Purchase-code activation is disabled by default. CareNova runs normally when LICENSE_VERIFICATION_ENABLED is false or unset.

Existing installations

CareNova 1.1.0 installations must be backed up and upgraded with the two supplied additive migrations:

npm run db:apply-sql -- migrations/add_patient_portal.sql
npm run db:apply-sql -- migrations/add_clinic_invoice_payments.sql

Do not run INSTALL.sql, demo seeding, a database reset, or an unreviewed schema push over an existing customer database. Follow Upgrading from CareNova 1.1.0 to 1.2.0 before deployment.

Compatibility

  • Node.js 20.14.0 or a compatible Node.js 20 release.

  • Next.js 15.5.x with the included lockfile.

  • Supabase PostgreSQL, Auth, and Storage.

  • Node-compatible hosting or the included Cloudflare Workers/OpenNext adapter.