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/dashboardLayout 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
Patient Management
Operations
Financial Management
Website Management
The Calendar and Reports pages exist at
/dashboard/calendarand/dashboard/reportsbut 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):
Financial Overview (second row):
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:
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:
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:
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:
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.roleConfirm the relevant
module.viewpermission is granted in Dashboard → PermissionsCheck clinic type — Odontograms only appears for
dentalclinic type
Charts not rendering:
Charts require data in
appointments,invoices, andexpensestablesRun
npm run db:seedto 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.