education-module-ai
Version:
AI Education Module using Agent Framework
140 lines (139 loc) • 3.34 kB
TypeScript
/**
* Educational content types
*/
export type ContentType = "explanation" | "tutorial" | "practice_problem" | "quiz" | "reference_material";
/**
* Educational levels
*/
export type EducationalLevel = "beginner" | "elementary" | "middle_school" | "high_school" | "undergraduate" | "graduate" | "professional";
/**
* Subject areas
*/
export type Subject = "mathematics" | "science" | "history" | "language_arts" | "computer_science" | "physics" | "chemistry" | "biology";
/**
* Educational content resource interface
*/
export interface EducationalContentResource {
id: string;
title: string;
content: string;
type: ContentType;
subject: Subject;
level: EducationalLevel;
keywords: string[];
createdAt: Date;
updatedAt?: Date;
}
/**
* Types of user interactions within a learning session
*/
export type InteractionType = "question" | "answer" | "explanation_request" | "practice_request" | "quiz_attempt" | "feedback";
/**
* Session message structure
*/
export interface SessionMessage {
role: "user" | "assistant";
content: string;
timestamp: Date;
interactionType: InteractionType;
relatedContentIds?: string[];
}
/**
* Learning session resource interface
*/
export interface LearningSessionResource {
id: string;
userId: string;
subject: Subject;
level: string;
startTime: Date;
endTime?: Date;
active: boolean;
messages: SessionMessage[];
feedback?: string;
}
/**
* Learning style preferences
*/
export type LearningStyle = "visual" | "auditory" | "reading_writing" | "kinesthetic" | "social" | "solitary";
/**
* Progress level for a subject
*/
export interface SubjectProgress {
level: number;
topics: Record<string, number>;
lastActivity?: Date;
completedSessions: number;
completedContent: string[];
}
/**
* Recommendation for learning content
*/
export interface LearningRecommendation {
contentId: string;
relevanceScore: number;
reason: string;
timestamp: Date;
}
/**
* User profile resource interface
*/
export interface UserProfileResource {
id: string;
name: string;
email?: string;
createdAt: Date;
learningStyles: LearningStyle[];
subjectProgress: Record<Subject, SubjectProgress>;
recommendations: LearningRecommendation[];
goals: string[];
streak: number;
lastActive?: Date;
badges: string[];
totalLearningTime: number;
}
/**
* Resource type for learning resources
*/
export declare enum ResourceType {
ARTICLE = "article",
VIDEO = "video",
EXERCISE = "exercise",
BOOK = "book",
COURSE = "course"
}
/**
* Resource interface for learning paths
*/
export interface Resource {
title: string;
type: ResourceType;
url?: string;
description: string;
}
/**
* Learning step interface
*/
export interface LearningStep {
title: string;
description: string;
timeEstimate: string;
resources: Resource[];
concepts: string[];
}
/**
* Learning path resource interface
*/
export interface LearningPathResource {
id: string;
userId: string;
subject: string;
topic: string;
overview: string;
difficultyLevel: string;
estimatedCompletionTime: string;
prerequisites: string[];
steps: LearningStep[];
createdAt: Date;
updatedAt: Date;
}