Welcome back, User 👋

Here's what's happening with your digital trust journey

72

DTMM Score (Mature)

3

Active Projects

2

Open Tickets

12

Frameworks Downloaded

Digital Trust Maturity Score

View Details →
Identity Maturity 65%
Security Maturity 78%
Privacy Maturity 70%
Governance Maturity 62%
Sovereignty Maturity 85%

Maturity Trend

Analysis Details →

Recent Activity

View All →

DTMM assessment updated

2 hours ago

Downloaded "AI Governance Framework"

1 day ago

Executive briefing scheduled for May 15, 2026

3 days ago

Support ticket #4281 resolved

1 week ago

Quick Actions

Active Engagements

View All →

Recommended Frameworks

View All →

Digital Trust Maturity Model (DTMM)

Complete framework with assessment workbook

Download →

AI Governance Layered Architecture

Full methodology with implementation templates

Download →

Identity Orchestration Framework

Deployment guide and architecture blueprints

Download →
// Mobile Navigation const hamburger = document.getElementById('navHamburger'); const navLinks = document.getElementById('portalNavLinks'); if (hamburger) { hamburger.addEventListener('click', () => { navLinks.classList.toggle('open'); }); } // Fetch User Stats and Update Dashboard async function loadDashboardData() { const user = auth.getCurrentUser(); if (!user) return; const res = await callApi('get_user_stats', { userId: user.id }); if (res.success) { const stats = res.stats; // Update Quick Stats document.querySelector('.stat-info h3').textContent = stats.latestScore || '--'; // Update DTMM Bars const dimBars = ['identity', 'security', 'privacy', 'governance', 'sovereignty']; stats.dimensions.forEach((val, i) => { const bar = document.getElementById(`bar-${dimBars[i]}`); if (bar) { bar.style.width = val + '%'; bar.closest('.dtmm-bar-item').querySelector('span:last-child').textContent = val + '%'; } }); // Update Doughnut Chart updateScoreChart(stats.latestScore); // Update Trend Chart updateTrendChart(stats.history); } } let scoreChart = null; function updateScoreChart(score) { const ctx = document.getElementById('dtmmScoreChart')?.getContext('2d'); if (!ctx) return; if (scoreChart) scoreChart.destroy(); scoreChart = new Chart(ctx, { type: 'doughnut', data: { datasets: [{ data: [score, 100 - score], backgroundColor: ['#E87121', '#E8ECEF'], borderWidth: 0, cutout: '65%' }] }, options: { responsive: true, maintainAspectRatio: true, plugins: { tooltip: { enabled: false }, legend: { display: false } } } }); } let trendChart = null; function updateTrendChart(history) { const ctx = document.getElementById('maturityTrendChart')?.getContext('2d'); if (!ctx) return; if (trendChart) trendChart.destroy(); const labels = history.map(h => h.date); const data = history.map(h => h.score); trendChart = new Chart(ctx, { type: 'line', data: { labels: labels.length ? labels : ['No Data'], datasets: [{ label: 'Maturity Score', data: data.length ? data : [0], borderColor: '#E87121', backgroundColor: 'rgba(232, 113, 33, 0.1)', fill: true, tension: 0.4, borderWidth: 3, pointBackgroundColor: '#E87121' }] }, options: { responsive: true, maintainAspectRatio: false, plugins: { legend: { display: false } }, scales: { y: { beginAtZero: true, max: 100, grid: { color: 'rgba(0,0,0,0.05)' } }, x: { grid: { display: false } } } } }); } // Initialize document.addEventListener('DOMContentLoaded', () => { loadDashboardData(); }); // GSAP Entry Animations gsap.registerPlugin(ScrollTrigger); gsap.from('.stat-card', { duration: 0.6, y: 30, opacity: 0, stagger: 0.1, ease: 'power3.out' }); gsap.from('.dashboard-card', { scrollTrigger: { trigger: '.dashboard-grid', start: 'top 85%', }, duration: 0.8, y: 40, opacity: 0, stagger: 0.15, ease: 'power3.out' }); gsap.from('.action-btn', { scrollTrigger: { trigger: '.quick-actions-grid', start: 'top 85%', }, duration: 0.6, y: 30, opacity: 0, stagger: 0.08, ease: 'power3.out' });