A flexible, embeddable health data dashboard that can be easily integrated into various systems including web applications, desktop apps, DHIS2, and other platforms.
- 🎯 Framework-Agnostic - Works with React, Vue, Angular, or vanilla JavaScript
- 📦 Multiple Distribution Formats - Web Components, ES Modules, iframe, and framework-specific packages
- 🎨 Customizable - Theme support and configuration-driven design
- 🔌 Flexible Data Sources - REST APIs, GraphQL, DHIS2, and custom adapters
- 📱 Responsive - Works on desktop, tablet, and mobile devices
- ♿ Accessible - WCAG compliant
<script type="module" src="https://cdn.hearts360.org/dashboard.js"></script>
<hearts360-dashboard
data-source="https://api.example.com/data"
theme="light"
></hearts360-dashboard>npm install @hearts360/dashboard-reactimport { Hearts360Dashboard } from '@hearts360/dashboard-react';
<Hearts360Dashboard
dataSource={data}
config={config}
/>npm install @hearts360/dashboard-vue<template>
<Hearts360Dashboard :data-source="data" :config="config" />
</template>
<script>
import { Hearts360Dashboard } from '@hearts360/dashboard-vue';
</script>npm install @hearts360/dashboard-angularimport { Hearts360DashboardModule } from '@hearts360/dashboard-angular';<iframe
src="https://dashboard.hearts360.org/embed?config=..."
width="100%"
height="600"
frameborder="0"
></iframe>The dashboard accepts configuration through props, attributes, or a configuration object:
{
dataSource: {
type: 'rest', // 'rest' | 'graphql' | 'dhis2' | 'custom'
url: 'https://api.example.com/data',
// ... other options
},
theme: 'light', // 'light' | 'dark' | 'auto'
locale: 'en',
charts: {
// Chart configuration
},
// ... more options
}See FRAMEWORK_ANALYSIS.md for detailed framework comparison and architecture decisions.
MIT