WayrApp Backend & Ecosystem Documentation - v1.0.0
    Preparing search index...

    Class ProgressController

    HTTP API controller for progress tracking operations.

    ProgressController

    Index

    Constructors

    Methods

    • Retrieves the current authenticated user's progress data.

      Handles GET /api/progress endpoint. Requires authentication.

      Parameters

      • req: Request

        Express request object containing user authentication data

      • res: Response

        Express response object

      • next: NextFunction

        Express next function for error handling

      Returns Promise<void>

      Promise that resolves when response is sent

      // Response format:
      {
      "success": true,
      "data": {
      "user_id": "user-123",
      "experience_points": 1250,
      "lives_current": 5,
      "streak_current": 7,
      "last_completed_lesson_id": "lesson-456",
      "last_activity_date": "2025-01-01T10:00:00Z",
      "updated_at": "2025-01-01T10:00:00Z"
      }
      }
    • Retrieves comprehensive progress summary with aggregated statistics for the current user.

      Handles GET /api/progress/summary endpoint. Requires authentication.

      Parameters

      • req: Request

        Express request object containing user authentication data

      • res: Response

        Express response object

      • next: NextFunction

        Express next function for error handling

      Returns Promise<void>

      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.

      Parameters

      • req: Request

        Express request object with lesson ID in params and completion data in body

      • res: Response

        Express response object

      • next: NextFunction

        Express next function for error handling

      Returns Promise<void>

      Promise that resolves when response is sent

      // Request body:
      {
      "score": 85,
      "time_spent_seconds": 120
      }

      // Response format:
      {
      "success": true,
      "data": {
      "progress": { ... },
      "completion": { ... },
      "experience_gained": 25
      },
      "message": "Lesson completed successfully"
      }
    • Synchronizes offline lesson completions with the server, handling conflicts and duplicates.

      Handles PUT /api/progress/sync endpoint. Requires authentication.

      Parameters

      • req: Request

        Express request object with offline sync data in body

      • res: Response

        Express response object

      • next: NextFunction

        Express next function for error handling

      Returns Promise<void>

      Promise that resolves when response is sent

      // Request body:
      {
      "completions": [
      {
      "lesson_id": "lesson-123",
      "completed_at": "2025-01-01T10:00:00Z",
      "score": 92,
      "time_spent_seconds": 180
      }
      ],
      "last_sync_timestamp": "2025-01-01T09:00:00Z"
      }
    • 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.

      Parameters

      • req: Request

        Express request object with pagination parameters in query

      • res: Response

        Express response object

      • next: NextFunction

        Express next function for error handling

      Returns Promise<void>

      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.

      Parameters

      • req: Request

        Express request object with lesson ID in params

      • res: Response

        Express response object

      • next: NextFunction

        Express next function for error handling

      Returns Promise<void>

      Promise that resolves when response is sent

    • Updates user progress with manual adjustments (administrative function).

      Handles PUT /api/progress endpoint. Requires authentication.

      Parameters

      • req: Request

        Express request object with progress updates in body

      • res: Response

        Express response object

      • next: NextFunction

        Express next function for error handling

      Returns Promise<void>

      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.

      Parameters

      • req: Request

        Express request object with bonus award data in body

      • res: Response

        Express response object

      • next: NextFunction

        Express next function for error handling

      Returns Promise<void>

      Promise that resolves when response is sent

      // Request body:
      {
      "target_user_id": "user-456",
      "bonus_points": 100,
      "reason": "Contest winner bonus"
      }
    • Updates user's current lives count for gamification features.

      Handles PUT /api/progress/lives endpoint. Requires authentication.

      Parameters

      • req: Request

        Express request object with lives change data in body

      • res: Response

        Express response object

      • next: NextFunction

        Express next function for error handling

      Returns Promise<void>

      Promise that resolves when response is sent

      // Request body:
      {
      "lives_change": -1 // Subtract one life
      }
    • Resets a target user's progress to initial state (administrative function).

      Handles POST /api/progress/reset endpoint. Requires admin role.

      Parameters

      • req: Request

        Express request object with target user ID in body

      • res: Response

        Express response object

      • next: NextFunction

        Express next function for error handling

      Returns Promise<void>

      Promise that resolves when response is sent

      // Request body:
      {
      "target_user_id": "user-789"
      }
    • Retrieves aggregated completion statistics for a specific lesson (analytics function).

      Handles GET /api/progress/lesson/:id/stats endpoint. Requires admin or content_creator role.

      Parameters

      • req: Request

        Express request object with lesson ID in params

      • res: Response

        Express response object

      • next: NextFunction

        Express next function for error handling

      Returns Promise<void>

      Promise that resolves when response is sent

      // Response format:
      {
      "success": true,
      "data": {
      "total_completions": 150,
      "average_score": 82.5,
      "average_time_spent": 145.2
      }
      }