Creates an instance of ProgressController.
Service layer for progress business logic
Retrieves the current authenticated user's progress data.
Handles GET /api/progress endpoint. Requires authentication.
Express request object containing user authentication data
Express response object
Express next function for error handling
Promise that resolves when response is sent
Retrieves comprehensive progress summary with aggregated statistics for the current user.
Handles GET /api/progress/summary endpoint. Requires authentication.
Express request object containing user authentication data
Express response object
Express next function for error handling
Promise that resolves when response is sent
Processes lesson completion and updates user progress with experience points.
Handles POST /api/progress/lesson/:id endpoint. Requires authentication.
Express request object with lesson ID in params and completion data in body
Express response object
Express next function for error handling
Promise that resolves when response is sent
Synchronizes offline lesson completions with the server, handling conflicts and duplicates.
Handles PUT /api/progress/sync endpoint. Requires authentication.
Express request object with offline sync data in body
Express response object
Express next function for error handling
Promise that resolves when response is sent
Retrieves paginated list of lesson completions for the current user.
Handles GET /api/progress/completions endpoint. Requires authentication. Supports query parameters: page, limit, sortBy, sortOrder for pagination and sorting.
Express request object with pagination parameters in query
Express response object
Express next function for error handling
Promise that resolves when response is sent
Checks whether a specific lesson has been completed by the current user.
Handles GET /api/progress/lesson/:id/completed endpoint. Requires authentication.
Express request object with lesson ID in params
Express response object
Express next function for error handling
Promise that resolves when response is sent
Updates user progress with manual adjustments (administrative function).
Handles PUT /api/progress endpoint. Requires authentication.
Express request object with progress updates in body
Express response object
Express next function for error handling
Promise that resolves when response is sent
Awards bonus experience points to a target user (administrative function).
Handles POST /api/progress/bonus endpoint. Requires admin role.
Express request object with bonus award data in body
Express response object
Express next function for error handling
Promise that resolves when response is sent
Updates user's current lives count for gamification features.
Handles PUT /api/progress/lives endpoint. Requires authentication.
Express request object with lives change data in body
Express response object
Express next function for error handling
Promise that resolves when response is sent
Resets a target user's progress to initial state (administrative function).
Handles POST /api/progress/reset endpoint. Requires admin role.
Express request object with target user ID in body
Express response object
Express next function for error handling
Promise that resolves when response is sent
Retrieves aggregated completion statistics for a specific lesson (analytics function).
Handles GET /api/progress/lesson/:id/stats endpoint. Requires admin or content_creator role.
Express request object with lesson ID in params
Express response object
Express next function for error handling
Promise that resolves when response is sent
HTTP API controller for progress tracking operations.
ProgressController