Creates and configures an Express router with progress tracking and gamification routes.
This factory function initializes a complete Express router configuration for progress-related operations,
including user progress tracking, lesson completion monitoring, gamification features, and administrative
analytics. The function instantiates the complete dependency chain (Repository → Service → Controller)
and configures all routes with appropriate middleware for authentication, authorization, and error handling.
The returned router includes comprehensive progress management capabilities supporting individual user
progress tracking, lesson completion monitoring, experience points and gamification, offline synchronization,
and administrative oversight. All routes require authentication, with additional role-based access control
for administrative functions.
Parameters
prisma: PrismaClient
Prisma database client instance for repository initialization and database operations
Returns Router
Configured Express router with all progress tracking and gamification endpoints
Throws
When PrismaClient initialization fails or database connection is unavailable
Example
// Basic usage in main application import { createProgressRoutes } from'@/modules/progress/routes/progressRoutes'; import { prisma } from'@/shared/database/connection';
Creates and configures an Express router with progress tracking and gamification routes.
This factory function initializes a complete Express router configuration for progress-related operations, including user progress tracking, lesson completion monitoring, gamification features, and administrative analytics. The function instantiates the complete dependency chain (Repository → Service → Controller) and configures all routes with appropriate middleware for authentication, authorization, and error handling.
The returned router includes comprehensive progress management capabilities supporting individual user progress tracking, lesson completion monitoring, experience points and gamification, offline synchronization, and administrative oversight. All routes require authentication, with additional role-based access control for administrative functions.