Dashboard Overview

A complete guide to the CareNova dashboard — layout, navigation structure, role-specific widgets, and what each role sees on login.

Written By Dev010

Last updated 19 days ago

The dashboard is the central workspace of CareNova. After logging in, every user lands here — but what they see depends entirely on their role. Each role has a tailored dashboard with widgets, metrics, and navigation relevant to their daily responsibilities.

Dashboard URL

https://yourdomain.com/dashboard

Layout Structure

The dashboard is divided into three persistent areas:

┌─────────────────────────────────────────────────┐
│                  Top Header Bar                  │
├──────────────┬──────────────────────────────────┤
│              │                                   │
│   Sidebar    │         Main Content Area         │
│  Navigation  │                                   │
│              │   (widgets, tables, charts)        │
│              │                                   │
└──────────────┴──────────────────────────────────┘

Sidebar — Module navigation filtered by role and permissions. Collapsible on smaller screens.

Top Header Bar — Clinic name, theme switcher (light/dark/system), notification bell, and user menu (profile, settings, sign out).

Main Content Area — Role-specific widgets, stat cards, charts, and quick-access tables.

Sidebar Navigation

The sidebar is organized into five sections. Items appear or hide based on the user's role and permission keys:

Overview

Item

Roles

Notes

Dashboard

All

Role-specific view

Patient Management

Item

Roles

Permission Key

Patients

All

patients.view

Appointments

All

appointments.view

Prescriptions

All

prescriptions.view

Test Reports

All

test_reports.view

Medical Records

All (non-dental)

medical_records.view

Odontograms

All (dental only)

odontogram.view

Operations

Item

Roles

Permission Key

Services

All

services.view

Departments

All

departments.view

Inventory

Admin, Nurse

inventory.view

Staff

Admin

staff.view

Lab Vendors

Admin

test_reports.view

Permissions

Admin only

Admin only

Financial Management

Item

Roles

Permission Key

Invoices

Admin, Receptionist

billing.view

Payments

Admin, Receptionist

billing.view

Expenses

Admin, Receptionist

billing.view

Website Management

Item

Roles

Permission Key

Blog / News

Admin, Doctor

Landing Settings

Admin only

settings.view

The Calendar and Reports pages exist at /dashboard/calendar and /dashboard/reports but are not included in the sidebar navigation in the current version. They are accessible directly via URL.

Role-Specific Dashboards

Each role sees a completely different set of widgets and metrics when they land on the dashboard. The data is fetched server-side and rendered for the specific logged-in user.


Admin Dashboard

The most comprehensive view. Covers financial performance, operational metrics, and clinic-wide activity.

Stat Cards (top row):

Card

What It Shows

Today's Appointments

Count of appointments scheduled for today

Total Patients

All-time patient count

Monthly Revenue

Total payments received this month

Low Stock Items

Inventory items below minimum stock level

Financial Overview (second row):

Card

What It Shows

Total Revenue

Revenue this month from paid invoices

Total Expenses

Expenses recorded this month

Net Income

Revenue minus expenses

Outstanding

Total value of unpaid invoices

Charts:

  • Revenue vs Expenses — Bar chart by month showing revenue and expenses side by side (last 6 months)

  • Appointment Status — Pie/donut chart showing distribution of pending, confirmed, completed, and cancelled appointments

  • Activity — Line chart showing appointment volume by month

Tables and Lists:

  • Recent Appointments — last 5 appointments with patient name, doctor, status

  • Recent Patients — last 5 registered patients

  • Unpaid Invoices — outstanding invoices with amounts due

Alerts:

  • Overdue Invoice Banner — appears when invoices are past their due date, showing count and total overdue amount


Doctor Dashboard

Focused on the doctor's own schedule and their patient workload.

Stat Cards:

Card

What It Shows

Today's Appointments

Appointments assigned to this doctor today

Completed Today

Completed appointments for today

New Patients This Month

Patients registered this month

Total Patients

All patients assigned to this doctor

Tables and Lists:

  • Today's Schedule — all appointments for this doctor today with time, patient, and status

  • Recent Patients — last patients this doctor has seen

  • Upcoming Appointments — next scheduled appointments for this doctor

Doctor dashboard data is scoped to the logged-in doctor's own records. A doctor cannot see another doctor's schedule or patient list from the dashboard.


Receptionist Dashboard

Focused on front desk operations — today's schedule and billing queue.

Stat Cards:

Card

What It Shows

Today's Appointments

All appointments scheduled for today

Total Patients

All-time patient count

Billing Queue

Count of unpaid invoices awaiting payment

Tables and Lists:

  • Today's Schedule — full appointment list for today with patient, doctor, service, and status

  • Recent Patients — recently registered patients

  • Recent Unpaid Invoices — invoices with unpaid status for follow-up


Nurse Dashboard

Focused on patient care support and inventory monitoring.

Stat Cards:

Card

What It Shows

Total Patients

All-time patient count

Today's Appointments

Appointments scheduled for today

Low Stock Items

Inventory items below minimum stock level

Tables and Lists:

  • Today's Schedule — appointment list for today

  • Recent Patients — recently registered patients

  • Low Stock Alerts — inventory items that need restocking with current quantity vs minimum stock level


Theme and Display Options

The top header bar includes a theme switcher allowing each user to set their preferred display mode independently:

Mode

Description

Light

White background, dark text

Dark

Dark background, light text

System

Follows the OS preference

The preference is stored per-user and persists across sessions.

Navigation Workflow Examples

Common workflows that start from the dashboard:

Register a new patient: Sidebar → Patients → Add Patient button

Book an appointment: Sidebar → Appointments → Book Appointment button

Record vitals after a visit: Sidebar → Medical Records → Vitals → Add Vitals

Issue a prescription: Sidebar → Prescriptions → New Prescription

Create an invoice: Sidebar → Invoices → New Invoice

Check low stock: Dashboard widget (Admin/Nurse) → Sidebar → Inventory

Approve a new staff member: Sidebar → Pending Approval (Admin only)

Performance Notes

The dashboard is a Server Component — all data is fetched server-side before the page is sent to the browser. This means:

  • No loading spinners for initial data

  • No client-side API calls on page load

  • Data is always fresh on each visit

  • Charts and tables render with real data immediately

For the Admin dashboard, multiple database queries run in parallel using Promise.all batched into two groups to avoid connection pool exhaustion. The full admin dashboard typically loads in under 1 second on a standard Supabase free tier project.

Troubleshooting

Dashboard shows no data after seeding:

  • Hard refresh the browser (Cmd+Shift+R)

  • Confirm you are logged in with the correct role account

  • Verify seed data exists in Supabase → Table Editor

Sidebar items missing:

  • Confirm the user's role is set correctly in users.role

  • Confirm the relevant module.view permission is granted in Dashboard → Permissions

  • Check clinic type — Odontograms only appears for dental clinic type

Charts not rendering:

  • Charts require data in appointments, invoices, and expenses tables

  • Run npm run db:seed to populate demo data if testing locally

Wrong dashboard showing for role:

  • The dashboard detects role server-side on every load — if the role was recently changed, sign out and back in to refresh

Next Step

Continue to the Patients module guide to learn how patient profiles, medical history, and records are managed in CareNova.