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

    Module ProgressRoutes

    Express routing configuration for user progress tracking and gamification operations.

    This module provides REST API route definitions for managing user learning progress, lesson completion tracking, experience points, gamification features, and offline synchronization capabilities. The routes support comprehensive progress monitoring, achievement tracking, and learning analytics for both individual users and administrative oversight.

    The module implements a factory function pattern that accepts a PrismaClient instance and returns a configured Express router with all progress-related endpoints. This design supports dependency injection and enables clean separation between route configuration and business logic. All routes require authentication and implement role-based access control for administrative functions.

    Key architectural features include comprehensive user progress tracking with experience points and streaks, lesson completion monitoring with timestamps and scoring, gamification elements including lives system and bonus experience, offline progress synchronization for mobile applications, administrative progress management and analytics, role-based access control for sensitive operations, and comprehensive progress analytics for content creators and administrators.

    The routes integrate with the ProgressController for business logic execution and support both individual user progress management and administrative oversight capabilities. This module serves as a critical component of the learning experience, enabling personalized progress tracking and motivation through gamification elements.

    Exequiel Trujillo

    1.0.0

    // Mount progress routes in main application
    import { createProgressRoutes } from '@/modules/progress/routes/progressRoutes';
    import { prisma } from '@/shared/database/connection';

    const API_BASE = '/api/v1';
    app.use(API_BASE, createProgressRoutes(prisma));
    // Available user progress endpoints:
    // GET /api/v1/progress - Get user progress overview
    // GET /api/v1/progress/summary - Get progress summary with statistics
    // PUT /api/v1/progress - Update user progress data
    // GET /api/v1/progress/completions - Get user lesson completions
    // PUT /api/v1/progress/sync - Sync offline progress data
    // PUT /api/v1/progress/lives - Update user lives count
    // Available lesson completion endpoints:
    // POST /api/v1/progress/lesson/:id - Mark lesson as completed
    // GET /api/v1/progress/lesson/:id/completed - Check lesson completion status
    // GET /api/v1/progress/lesson/:id/stats - Get lesson completion statistics (admin/content_creator)
    // Available administrative endpoints:
    // POST /api/v1/progress/bonus - Award bonus experience (admin only)
    // POST /api/v1/progress/reset - Reset user progress (admin only)

    Functions

    createProgressRoutes