Issue #73 - Entry-Centered Graph View: - Added GET /api/knowledge/entries/:id/graph endpoint with depth parameter - Returns entry + connected nodes with link relationships - Created GraphService for graph traversal using BFS - Added EntryGraphViewer component for frontend - Integrated graph view tab into entry detail page Issue #74 - Graph Statistics Dashboard: - Added GET /api/knowledge/stats endpoint - Returns overview stats (entries, tags, links by status) - Includes most connected entries, recent activity, tag distribution - Created StatsDashboard component with visual stats - Added route at /knowledge/stats Backend: - GraphService: BFS-based graph traversal with configurable depth - StatsService: Parallel queries for comprehensive statistics - GraphQueryDto: Validation for depth parameter (1-5) - Entity types for graph nodes/edges and statistics - Unit tests for both services Frontend: - EntryGraphViewer: Entry-centered graph visualization - StatsDashboard: Statistics overview with charts - Graph view tab on entry detail page - API client functions for new endpoints - TypeScript strict typing throughout
36 lines
679 B
TypeScript
36 lines
679 B
TypeScript
/**
|
|
* Knowledge base statistics
|
|
*/
|
|
export interface KnowledgeStats {
|
|
overview: {
|
|
totalEntries: number;
|
|
totalTags: number;
|
|
totalLinks: number;
|
|
publishedEntries: number;
|
|
draftEntries: number;
|
|
archivedEntries: number;
|
|
};
|
|
mostConnected: Array<{
|
|
id: string;
|
|
slug: string;
|
|
title: string;
|
|
incomingLinks: number;
|
|
outgoingLinks: number;
|
|
totalConnections: number;
|
|
}>;
|
|
recentActivity: Array<{
|
|
id: string;
|
|
slug: string;
|
|
title: string;
|
|
updatedAt: Date;
|
|
status: string;
|
|
}>;
|
|
tagDistribution: Array<{
|
|
id: string;
|
|
name: string;
|
|
slug: string;
|
|
color: string | null;
|
|
entryCount: number;
|
|
}>;
|
|
}
|