education-module-ai
Version:
AI Education Module using Agent Framework
62 lines (61 loc) • 1.82 kB
TypeScript
import { Subject } from "../models/EducationalContent";
/**
* User progress tracking event
*/
interface ProgressEvent {
userId: string;
timestamp: Date;
eventType: 'session_completed' | 'content_completed' | 'quiz_completed';
subject?: Subject;
contentId?: string;
score?: number;
timeSpent?: number;
}
/**
* Progress summary for a user
*/
interface ProgressSummary {
totalSessionsCompleted: number;
totalContentCompleted: number;
totalQuizzesCompleted: number;
totalTimeSpent: number;
subjectBreakdown: Record<Subject, {
sessionsCompleted: number;
contentCompleted: number;
quizzesCompleted: number;
averageScore: number;
timeSpent: number;
}>;
}
/**
* Service for tracking user learning progress
*/
declare class ProgressTrackingService {
private progressEvents;
/**
* Track a session completion
*/
trackSessionCompletion(userId: string, sessionId: string, subject: Subject, timeSpent?: number): Promise<void>;
/**
* Track content completion
*/
trackContentCompleted(userId: string, contentId: string, subject: Subject, timeSpent?: number): Promise<void>;
/**
* Track quiz completion
*/
trackQuizCompleted(userId: string, contentId: string, subject: Subject, score: number, timeSpent?: number): Promise<void>;
/**
* Get progress summary for a user
*/
getProgressSummary(userId: string): Promise<ProgressSummary>;
/**
* Get events for a specific user
*/
getUserEvents(userId: string): Promise<ProgressEvent[]>;
/**
* Get subject-specific progress for a user
*/
getSubjectProgress(userId: string, subject: Subject): Promise<any>;
}
export declare const progressTrackingService: ProgressTrackingService;
export {};