@defikitdotnet/education-module-ai
Version:
AI Education Module using Agent Framework
67 lines (66 loc) • 3.02 kB
TypeScript
/**
* Backend entry point for the Education Module
* Exports all backend components for use in external systems
*/
import { Express } from "express";
import cors from "cors";
export * from "./models/index";
export * from "./repositories/index";
export * from "./services/index";
export * from "./controllers/index";
export { CourseService } from "./services/CourseService";
export { CategoryService } from "./services/CategoryService";
export { SectionService } from "./services/SectionService";
export { LectureService } from "./services/LectureService";
export { QuizService } from "./services/QuizService";
export { QuizQuestionService } from "./services/QuizQuestionService";
export { QuizSubmissionService } from "./services/QuizSubmissionService";
export { AiContentService } from "./services/AiContentService";
export { EnrollmentService } from "./services/EnrollmentService";
export { TeacherService } from "./services/TeacherService";
export { TeacherRepository } from "./repositories/TeacherRepository";
export { TeacherController } from "./controllers/TeacherController";
export { authenticateStudent } from "./middleware/auth";
export { SqliteAdapter } from "./database/SqliteAdapter";
export { createAiContentRoutes } from "./routes/aiContentRoutes";
export { createUserRoutes } from "./routes/userRoutes";
export { createH5PRoutes } from "./routes/h5pRoutes";
export { createAuthRoutes } from "./routes/authRoutes";
export { errorHandler } from "./middleware/errorHandler";
export { registerControllers } from "./utils/controller-registry";
export { createTestStudentAccounts, createTestTeacherAccounts } from "./utils/createTestAccounts";
/**
* Configuration interface for the Education Module API
*/
export interface EducationModuleConfig {
port?: number;
apiPrefix?: string;
dbPath?: string;
jwtSecret?: string;
corsOptions?: cors.CorsOptions;
enableStaticFiles?: boolean;
staticFilesPath?: string;
aiApiKey?: string;
}
/**
* Initialize the Education Module API with optional configuration
* This is a simplified implementation - in a real scenario, you would:
* 1. Import and initialize all repositories
* 2. Create service instances with repositories
* 3. Create controllers with services
* 4. Set up routes with controllers
*
* @param config - Optional configuration object
* @returns An Express application instance
*/
export declare function initializeEducationAPI(customConfig?: Partial<EducationModuleConfig>): Promise<Express>;
/**
* Helper function to mount the Education Module API in an existing Express application
*
* @param app - The parent Express application
* @param path - The path where the Education Module API will be mounted
* @param config - Optional configuration object
* @returns The parent Express application with the Education Module API mounted
*/
export declare function mountEducationAPI(app: Express, mountPath?: string, config?: Partial<EducationModuleConfig>): Promise<Express>;
export default initializeEducationAPI;