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

    Module progress.schemas

    Progress tracking validation schemas for WayrApp language learning platform

    This module provides comprehensive Zod validation schemas for all progress tracking and learning analytics operations in the WayrApp language learning platform. It serves as the data validation foundation for lesson completion tracking, offline progress synchronization, and progress analytics, ensuring data integrity and consistency across all learning progress operations.

    The schemas support the platform's learning analytics system by providing robust validation for lesson completion events, batch progress synchronization for offline learning scenarios, and comprehensive query parameters for progress analysis and reporting. They ensure accurate tracking of learner achievements, time investment, and performance metrics essential for educational effectiveness measurement.

    Key architectural features include offline-first progress tracking that supports mobile learning scenarios, comprehensive completion metadata including scores and time tracking, flexible synchronization patterns for various client applications, and robust query capabilities for progress analytics and reporting systems.

    The module implements gamification support through experience point tracking, performance analytics through score and time measurement, learning path optimization through completion pattern analysis, and educational effectiveness measurement through comprehensive progress data collection and validation.

    Security considerations include input sanitization for all progress data, validation of temporal data to prevent manipulation, score validation to ensure realistic performance metrics, and comprehensive logging support for audit trails and learning analytics while protecting user privacy and data integrity.

    Exequiel Trujillo

    1.0.0

    // Basic usage with validation middleware
    import { LessonCompletionSchema, ProgressSyncSchema } from '@/shared/schemas/progress.schemas';
    import { validate } from '@/shared/middleware/validation';

    router.post('/lessons/:id/complete', validate({ body: LessonCompletionSchema }), progressController.completeLesson);
    router.post('/progress/sync', validate({ body: ProgressSyncSchema }), progressController.syncProgress);
    // Type inference for progress operations
    import { LessonCompletionRequest, ProgressSyncRequest } from '@/shared/schemas/progress.schemas';

    const trackCompletion = async (completionData: LessonCompletionRequest) => {
    // completionData is fully typed with validation constraints
    return await progressService.recordCompletion(completionData);
    };
    // Progress analytics and querying
    import { ProgressQuerySchema } from '@/shared/schemas/progress.schemas';

    router.get('/progress/analytics', validate({ query: ProgressQuerySchema }), (req, res) => {
    const { page, limit, from_date, to_date, min_score, max_score } = req.query;
    // All query parameters are properly typed and validated
    });

    Type Aliases

    LessonCompletionRequest
    ProgressSyncRequest
    ProgressQueryParams

    Variables

    LessonCompletionSchema
    ProgressSyncSchema
    ProgressQuerySchema