@defikitdotnet/education-module-ai
Version:
AI Education Module using Agent Framework
56 lines (55 loc) • 2.25 kB
TypeScript
import type { Request, Response, NextFunction } from "express";
import { EducationModuleAdapter } from "../database/EducationModuleAdapter";
import type { IDatabaseAdapter } from "@elizaos/core";
import { StudentRepository } from "../repositories/StudentRepository";
import { QuizService } from "../services/QuizService";
import { QuizQuestionService } from "../services/QuizQuestionService";
import { QuizSubmissionService } from "../services/QuizSubmissionService";
/**
* Student Controller - Handles student access, PROFILE management, and LOGIN
*/
export declare class StudentController {
private quizService;
private quizQuestionService;
private quizSubmissionService;
private educationModuleAdapter;
private mainDatabaseAdapter;
private studentRepository;
path: string;
constructor(mainDatabaseAdapter: IDatabaseAdapter, quizService: QuizService, quizQuestionService: QuizQuestionService, quizSubmissionService: QuizSubmissionService, studentRepository: StudentRepository);
setEducationModuleAdapter(adapter: EducationModuleAdapter): void;
initRoutes(): void;
/**
* Register a new student profile
*/
registerStudent(req: Request, res: Response, next: NextFunction): Promise<void>;
/**
* Get published content for students
*/
getPublishedContent(req: Request, res: Response): Promise<void>;
/**
* Get specific content by ID
*/
getContentById(req: Request, res: Response): Promise<void>;
/**
* Submit assessment/quiz answers (Old endpoint - likely unused)
*/
submitAssessment(req: Request, res: Response): Promise<void>;
/**
* Get feedback on submitted assessment
*/
getAssessmentFeedback(req: Request, res: Response): Promise<void>;
/**
* Submit answers for a specific Quiz identified by quizId
*/
submitQuiz(req: Request, res: Response): Promise<void>;
/**
* Get courses for a specific teacher
* Requires student authentication
*/
getCoursesByTeacherId(req: Request, res: Response): Promise<void>;
/**
* Login a student using email and password (Moved from AuthController)
*/
loginStudent(req: Request, res: Response, next: NextFunction): Promise<void>;
}