feat: setup dashboard analytics api (#604)

* feat: setup dashboard analytics api

* chore: requested pr fixes

* fix: dash analytics server side type

* refactor: update Avatar component usage across the dashboard

- Replaced custom Avatar component with the new @cio/ui/base/avatar implementation for consistency.
- Enhanced avatar rendering with fallback options and improved accessibility.
- Cleaned up unused Avatar component files and related functions.
- Updated various components to utilize the new Avatar structure, ensuring a uniform appearance and behavior across the application.

* chore: remove console.log statements from analytics routes and API calls

- Eliminated console.log statements for orgId and siteName in the dash analytics router and DashStatApi class to clean up the code and improve performance.

---------

Co-authored-by: Rotimi Best <[email protected]>
This commit is contained in:
Adeyemi Adetunji
2025-12-02 15:27:41 +01:00
committed by GitHub
co-authored by Rotimi Best
parent c7854efae3
commit 9a5aee1ee0
40 changed files with 573 additions and 276 deletions
@@ -23,7 +23,3 @@ export function openUpgradeModal() {
goto(resolve(window.location.pathname + `?${searchParams}`, {}));
}
export function getShortOrgName(name: string) {
return name?.substring(0, 2)?.toUpperCase() || '';
}
@@ -1,3 +1,7 @@
export function capitalizeFirstLetter(val: string): string {
return val.charAt(0).toUpperCase() + val.slice(1);
}
export function shortenName(name: string | null | undefined): string {
return name?.substring(0, 2)?.toUpperCase() || '';
}
@@ -119,26 +119,6 @@ export interface UserAnalytics {
overallAverageGrade: number;
}
export interface OrganisationAnalytics {
revenue: number;
numberOfCourses: number;
totalStudents: number;
topCourses: {
id: string;
title: string;
enrollments: number;
completion: number;
}[];
enrollments: {
id: string;
avatarUrl: string;
name: string;
courseId: string;
course: string;
date: string;
}[];
}
export interface UserCourseAnalytics {
user: User;
averageGrade: number;