{"routes":[{"endpoint":"admin.ai_audit_log","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/ai-audit"},{"endpoint":"admin.api_check_progress","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/system-check/progress/<int:check_id>"},{"endpoint":"admin.api_check_results","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/system-check/results/<int:check_id>"},{"endpoint":"admin.api_export_check_results","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/system-check/export/<int:check_id>"},{"endpoint":"admin.api_export_parent_link_audit","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/parent-link-audit/export/<audit_timestamp>"},{"endpoint":"admin.api_get_active_users","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/usage/active-users"},{"endpoint":"admin.api_get_engagement_metrics","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/usage/engagement-metrics"},{"endpoint":"admin.api_get_error_statistics","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/incidents/statistics"},{"endpoint":"admin.api_get_health_status","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/system-health/status-summary"},{"endpoint":"admin.api_get_health_trends","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/system-health/trends"},{"endpoint":"admin.api_get_incident_details","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/incidents/<int:incident_id>"},{"endpoint":"admin.api_get_incidents","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/incidents"},{"endpoint":"admin.api_get_past_runs","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/system-health/past-runs"},{"endpoint":"admin.api_get_platform_health","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/usage/platform-health"},{"endpoint":"admin.api_get_retention_metrics","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/usage/retention"},{"endpoint":"admin.api_get_run_details","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/system-health/run-details/<int:run_id>"},{"endpoint":"admin.api_get_sparklines","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/system-health/sparklines"},{"endpoint":"admin.api_get_usage_patterns","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/usage/patterns"},{"endpoint":"admin.api_legacy_system_check","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/system-check"},{"endpoint":"admin.api_logs","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/logs"},{"endpoint":"admin.api_logs_analyze","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/logs/analyze"},{"endpoint":"admin.api_recent_checks","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/system-check/recent"},{"endpoint":"admin.api_recent_logins","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/recent-logins"},{"endpoint":"admin.api_recent_signups","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/recent-signups"},{"endpoint":"admin.api_run_parent_link_audit","methods":["OPTIONS","POST"],"rule":"/admin/api/parent-link-audit/run"},{"endpoint":"admin.api_search_incidents","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/incidents/search"},{"endpoint":"admin.api_settings","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/settings"},{"endpoint":"admin.api_simulate_parent_access","methods":["OPTIONS","POST"],"rule":"/admin/api/parent-link-audit/simulate-access"},{"endpoint":"admin.api_start_system_check","methods":["OPTIONS","POST"],"rule":"/admin/api/system-check/start"},{"endpoint":"admin.api_stop_system_check","methods":["OPTIONS","POST"],"rule":"/admin/api/system-check/stop/<int:check_id>"},{"endpoint":"admin.api_system_health","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/system-health"},{"endpoint":"admin.api_update_incident_status","methods":["OPTIONS","PUT"],"rule":"/admin/api/incidents/<int:incident_id>/status"},{"endpoint":"admin.api_user_activity","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/user-activity"},{"endpoint":"admin.bulk_update_waitlist","methods":["OPTIONS","POST"],"rule":"/admin/api/waitlist/bulk-update"},{"endpoint":"admin.dashboard","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/dashboard"},{"endpoint":"admin.export_waitlist_csv","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/api/waitlist/export-csv"},{"endpoint":"admin.stripe_test","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/stripe-test"},{"endpoint":"admin.stripe_test_create_session","methods":["OPTIONS","POST"],"rule":"/admin/stripe-test/create-session"},{"endpoint":"admin.stripe_test_publishable_key","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/stripe-test/publishable-key"},{"endpoint":"admin.stripe_test_reset_user","methods":["OPTIONS","POST"],"rule":"/admin/stripe-test/reset-user/<int:user_id>"},{"endpoint":"admin.trigger_trial_reminders","methods":["OPTIONS","POST"],"rule":"/admin/api/trigger-trial-reminders"},{"endpoint":"admin.update_contact_status","methods":["OPTIONS","POST"],"rule":"/admin/api/waitlist/update-contact-status"},{"endpoint":"admin.waitlist_dashboard","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/waitlist"},{"endpoint":"admin_diagnostics.check_stuck_jobs","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/diagnostics/stuck-jobs"},{"endpoint":"admin_diagnostics.fix_all_stuck_jobs","methods":["OPTIONS","POST"],"rule":"/admin/diagnostics/fix-all-jobs"},{"endpoint":"admin_diagnostics.fix_single_job","methods":["OPTIONS","POST"],"rule":"/admin/diagnostics/fix-job/<int:job_id>"},{"endpoint":"admin_diagnostics.job_details","methods":["GET","OPTIONS","HEAD"],"rule":"/admin/diagnostics/job-details/<int:job_id>"},{"endpoint":"analyze.analyze_uploaded_exam","methods":["GET","OPTIONS","HEAD"],"rule":"/analyze"},{"endpoint":"analyze_enhanced.analyze_comprehensive","methods":["GET","OPTIONS","HEAD"],"rule":"/analyze/comprehensive"},{"endpoint":"analyze_enhanced.api_analyze_comprehensive","methods":["OPTIONS","POST"],"rule":"/api/analyze/comprehensive"},{"endpoint":"apple_touch_icon","methods":["GET","OPTIONS","HEAD"],"rule":"/apple-touch-icon.png"},{"endpoint":"auth.about_info","methods":["GET","OPTIONS","HEAD"],"rule":"/about"},{"endpoint":"auth.admin_dashboard","methods":["GET","OPTIONS","HEAD"],"rule":"/admin-dashboard"},{"endpoint":"auth.all_students_analysis","methods":["GET","OPTIONS","HEAD"],"rule":"/all-students-analysis"},{"endpoint":"auth.analysis_status","methods":["GET","OPTIONS","HEAD"],"rule":"/analysis-status"},{"endpoint":"auth.billing_portal","methods":["GET","OPTIONS","HEAD"],"rule":"/billing-portal"},{"endpoint":"auth.change_password","methods":["GET","OPTIONS","HEAD","POST"],"rule":"/change-password"},{"endpoint":"auth.class_summary","methods":["GET","OPTIONS","HEAD"],"rule":"/class-summary"},{"endpoint":"auth.create_checkout_session","methods":["OPTIONS","POST"],"rule":"/create-checkout-session"},{"endpoint":"auth.delete_class","methods":["OPTIONS","POST"],"rule":"/delete-class/<int:class_id>"},{"endpoint":"auth.detailed_analysis","methods":["GET","OPTIONS","HEAD"],"rule":"/detailed-analysis"},{"endpoint":"auth.export_summary","methods":["GET","OPTIONS","HEAD"],"rule":"/export-summary"},{"endpoint":"auth.faq","methods":["GET","OPTIONS","HEAD"],"rule":"/faq"},{"endpoint":"auth.forgot_password","methods":["GET","OPTIONS","HEAD","POST"],"rule":"/forgot-password"},{"endpoint":"auth.get_teacher_classes_api","methods":["GET","OPTIONS","HEAD"],"rule":"/api/teacher/classes"},{"endpoint":"auth.hod_dashboard","methods":["GET","OPTIONS","HEAD"],"rule":"/hod-dashboard"},{"endpoint":"auth.home","methods":["GET","OPTIONS","HEAD"],"rule":"/"},{"endpoint":"auth.login","methods":["GET","OPTIONS","HEAD","POST"],"rule":"/login"},{"endpoint":"auth.logout","methods":["GET","OPTIONS","HEAD"],"rule":"/logout"},{"endpoint":"auth.parent_approve_extension_api","methods":["OPTIONS","POST"],"rule":"/api/parent/approve-extension/<int:child_id>"},{"endpoint":"auth.parent_child_assessment_api","methods":["GET","OPTIONS","HEAD"],"rule":"/api/parent/child-assessment"},{"endpoint":"auth.parent_child_login_info","methods":["GET","OPTIONS","HEAD"],"rule":"/parent/child-login-info"},{"endpoint":"auth.parent_dashboard","methods":["GET","OPTIONS","HEAD"],"rule":"/parent-dashboard"},{"endpoint":"auth.parent_dashboard_api","methods":["GET","OPTIONS","HEAD"],"rule":"/api/parent/dashboard/<int:child_id>"},{"endpoint":"auth.parent_logout","methods":["GET","OPTIONS","HEAD"],"rule":"/parent/logout"},{"endpoint":"auth.parent_pending_requests_api","methods":["GET","OPTIONS","HEAD"],"rule":"/api/parent/pending-requests/<int:child_id>"},{"endpoint":"auth.parent_preferences_api","methods":["OPTIONS","POST"],"rule":"/api/parent/preferences/<int:child_id>"},{"endpoint":"auth.parent_register","methods":["GET","OPTIONS","HEAD","POST"],"rule":"/parent/register"},{"endpoint":"auth.parent_register_simple","methods":["GET","OPTIONS","HEAD","POST"],"rule":"/parent/register-simple"},{"endpoint":"auth.parent_setup_payment","methods":["GET","OPTIONS","HEAD"],"rule":"/parent/setup-payment"},{"endpoint":"auth.parent_time_controls_api","methods":["OPTIONS","POST"],"rule":"/api/parent/time-controls/<int:child_id>"},{"endpoint":"auth.parents_info","methods":["GET","OPTIONS","HEAD"],"rule":"/parents"},{"endpoint":"auth.payment_cancel","methods":["GET","OPTIONS","HEAD"],"rule":"/payment/cancel"},{"endpoint":"auth.payment_success","methods":["GET","OPTIONS","HEAD"],"rule":"/payment/success"},{"endpoint":"auth.practice_session","methods":["GET","OPTIONS","HEAD"],"rule":"/practice-session"},{"endpoint":"auth.register","methods":["GET","OPTIONS","HEAD","POST"],"rule":"/register"},{"endpoint":"auth.register_interest","methods":["GET","OPTIONS","HEAD"],"rule":"/register_interest"},{"endpoint":"auth.resend_verification","methods":["OPTIONS","POST"],"rule":"/resend-verification"},{"endpoint":"auth.reset_password","methods":["GET","OPTIONS","HEAD","POST"],"rule":"/reset-password/<token>"},{"endpoint":"auth.signup_redirect","methods":["GET","OPTIONS","HEAD"],"rule":"/signup"},{"endpoint":"auth.stripe_webhook","methods":["OPTIONS","POST"],"rule":"/stripe/webhook"},{"endpoint":"auth.student_configuration_api","methods":["GET","OPTIONS","HEAD","POST"],"rule":"/api/student/configuration"},{"endpoint":"auth.student_dashboard","methods":["GET","OPTIONS","HEAD"],"rule":"/student-dashboard"},{"endpoint":"auth.student_data_api","methods":["GET","OPTIONS","HEAD"],"rule":"/api/student/data"},{"endpoint":"auth.student_detailed_analysis","methods":["GET","OPTIONS","HEAD"],"rule":"/student-analysis/<student_name>"},{"endpoint":"auth.student_practice","methods":["GET","OPTIONS","HEAD"],"rule":"/student/practice"},{"endpoint":"auth.student_self_assessment","methods":["GET","OPTIONS","HEAD","POST"],"rule":"/student/self-assessment"},{"endpoint":"auth.subscribe","methods":["GET","OPTIONS","HEAD"],"rule":"/subscribe"},{"endpoint":"auth.switch_student_subject","methods":["OPTIONS","POST"],"rule":"/api/student/subject/switch"},{"endpoint":"auth.teacher_classes","methods":["GET","OPTIONS","HEAD"],"rule":"/teacher-classes"},{"endpoint":"auth.teacher_dashboard","methods":["GET","OPTIONS","HEAD"],"rule":"/teacher-dashboard"},{"endpoint":"auth.teacher_export_data","methods":["OPTIONS","POST"],"rule":"/teacher/export-data"},{"endpoint":"auth.teacher_submit_feedback","methods":["OPTIONS","POST"],"rule":"/api/teacher/submit-feedback"},{"endpoint":"auth.teachers_info","methods":["GET","OPTIONS","HEAD"],"rule":"/teachers"},{"endpoint":"auth.tutoring_info","methods":["GET","OPTIONS","HEAD"],"rule":"/tutoring"},{"endpoint":"auth.update_threshold","methods":["OPTIONS","POST"],"rule":"/update-threshold/<int:session_id>"},{"endpoint":"auth.upload","methods":["GET","OPTIONS","HEAD","POST"],"rule":"/upload"},{"endpoint":"auth.verification_pending","methods":["GET","OPTIONS","HEAD"],"rule":"/verification-pending"},{"endpoint":"auth.verify_email","methods":["GET","OPTIONS","HEAD"],"rule":"/verify-email/<token>"},{"endpoint":"bulletproof_practice.get_question","methods":["GET","OPTIONS","HEAD"],"rule":"/api/bulletproof/get-question"},{"endpoint":"bulletproof_practice.list_all_questions","methods":["GET","OPTIONS","HEAD"],"rule":"/api/bulletproof/list-all-questions"},{"endpoint":"bulletproof_practice.mark_answer_bulletproof","methods":["OPTIONS","POST"],"rule":"/api/bulletproof/mark-answer"},{"endpoint":"bulletproof_practice.test_database","methods":["GET","OPTIONS","HEAD"],"rule":"/api/bulletproof/test-database"},{"endpoint":"button_test","methods":["GET","OPTIONS","HEAD","POST"],"rule":"/button-test"},{"endpoint":"check_secret","methods":["GET","OPTIONS","HEAD"],"rule":"/check-secret"},{"endpoint":"coming_soon","methods":["GET","OPTIONS","HEAD","POST"],"rule":"/coming-soon"},{"endpoint":"db_health","methods":["GET","OPTIONS","HEAD"],"rule":"/db-health"},{"endpoint":"db_ping","methods":["GET","OPTIONS","HEAD"],"rule":"/debug/db-ping"},{"endpoint":"debug_database","methods":["GET","OPTIONS","HEAD"],"rule":"/debug-database"},{"endpoint":"debug_production","methods":["GET","OPTIONS","HEAD"],"rule":"/debug-production"},{"endpoint":"debug_routes","methods":["GET","OPTIONS","HEAD"],"rule":"/debug-routes"},{"endpoint":"debug_static_files","methods":["GET","OPTIONS","HEAD"],"rule":"/debug/static-files"},{"endpoint":"debug_test_signup","methods":["GET","OPTIONS","HEAD"],"rule":"/debug-test-signup"},{"endpoint":"debug_waitlist","methods":["GET","OPTIONS","HEAD"],"rule":"/debug-waitlist"},{"endpoint":"emergency_signup","methods":["GET","OPTIONS","HEAD","POST"],"rule":"/signup"},{"endpoint":"favicon","methods":["GET","OPTIONS","HEAD"],"rule":"/favicon.ico"},{"endpoint":"focus_api.get_next_focus_question","methods":["OPTIONS","POST"],"rule":"/api/focus/next"},{"endpoint":"focus_api.get_ranked_topics","methods":["GET","OPTIONS","HEAD"],"rule":"/api/focus/ranked-topics"},{"endpoint":"focus_api.get_weak_topics","methods":["GET","OPTIONS","HEAD"],"rule":"/api/focus/weak-topics"},{"endpoint":"focus_api.upgrade_choice","methods":["OPTIONS","POST"],"rule":"/api/focus/upgrade-choice"},{"endpoint":"gdpr.cookie_policy","methods":["GET","OPTIONS","HEAD"],"rule":"/gdpr/cookie-policy"},{"endpoint":"gdpr.data_settings","methods":["GET","OPTIONS","HEAD"],"rule":"/gdpr/data-settings"},{"endpoint":"gdpr.data_summary","methods":["GET","OPTIONS","HEAD"],"rule":"/gdpr/data-summary"},{"endpoint":"gdpr.delete_account","methods":["OPTIONS","POST"],"rule":"/gdpr/delete-account"},{"endpoint":"gdpr.export_user_data","methods":["OPTIONS","POST"],"rule":"/gdpr/export-data"},{"endpoint":"gdpr.object_to_processing","methods":["OPTIONS","POST"],"rule":"/gdpr/object-processing"},{"endpoint":"gdpr.privacy_policy","methods":["GET","OPTIONS","HEAD"],"rule":"/gdpr/privacy"},{"endpoint":"gdpr.privacy_students","methods":["GET","OPTIONS","HEAD"],"rule":"/gdpr/privacy-students"},{"endpoint":"gdpr.restrict_processing","methods":["OPTIONS","POST"],"rule":"/gdpr/restrict-processing"},{"endpoint":"gdpr.terms_and_conditions","methods":["GET","OPTIONS","HEAD"],"rule":"/gdpr/terms"},{"endpoint":"gdpr.update_consent","methods":["OPTIONS","POST"],"rule":"/gdpr/update-consent"},{"endpoint":"health_check","methods":["GET","OPTIONS","HEAD"],"rule":"/health"},{"endpoint":"healthz","methods":["GET","OPTIONS","HEAD"],"rule":"/healthz"},{"endpoint":"main_routes.about","methods":["GET","OPTIONS","HEAD"],"rule":"/about"},{"endpoint":"main_routes.dashboard","methods":["GET","OPTIONS","HEAD"],"rule":"/dashboard"},{"endpoint":"main_routes.debug_link_audit","methods":["GET","OPTIONS","HEAD"],"rule":"/debug/link-audit"},{"endpoint":"main_routes.debug_session","methods":["GET","OPTIONS","HEAD"],"rule":"/debug/session"},{"endpoint":"main_routes.home","methods":["GET","OPTIONS","HEAD"],"rule":"/"},{"endpoint":"main_routes.index","methods":["GET","OPTIONS","HEAD"],"rule":"/index"},{"endpoint":"main_routes.login","methods":["GET","OPTIONS","HEAD","POST"],"rule":"/login"},{"endpoint":"main_routes.logout","methods":["GET","OPTIONS","HEAD"],"rule":"/logout"},{"endpoint":"main_routes.parents","methods":["GET","OPTIONS","HEAD"],"rule":"/parents"},{"endpoint":"main_routes.recommends","methods":["GET","OPTIONS","HEAD"],"rule":"/recommends"},{"endpoint":"main_routes.resources","methods":["GET","OPTIONS","HEAD"],"rule":"/resources"},{"endpoint":"main_routes.student_parent","methods":["GET","OPTIONS","HEAD"],"rule":"/student-parent"},{"endpoint":"main_routes.students","methods":["GET","OPTIONS","HEAD"],"rule":"/students"},{"endpoint":"main_routes.teacherdemo","methods":["GET","OPTIONS","HEAD"],"rule":"/teacherdemo"},{"endpoint":"main_routes.teachers","methods":["GET","OPTIONS","HEAD"],"rule":"/teachers"},{"endpoint":"main_routes.test_templates","methods":["GET","OPTIONS","HEAD"],"rule":"/debug/template-test"},{"endpoint":"main_routes.tutoring","methods":["GET","OPTIONS","HEAD"],"rule":"/tutoring"},{"endpoint":"manifest_icon_192","methods":["GET","OPTIONS","HEAD"],"rule":"/web-app-manifest-192x192.png"},{"endpoint":"manifest_icon_512","methods":["GET","OPTIONS","HEAD"],"rule":"/web-app-manifest-512x512.png"},{"endpoint":"parent.api_child_time_limits","methods":["GET","OPTIONS","HEAD","POST"],"rule":"/parent/api/child/<int:child_id>/time_limits"},{"endpoint":"parent.api_get_child_progress","methods":["GET","OPTIONS","HEAD"],"rule":"/parent/api/child/<int:child_id>/progress"},{"endpoint":"parent.api_get_child_star_ratings","methods":["GET","OPTIONS","HEAD"],"rule":"/parent/api/child/<int:child_id>/star-ratings"},{"endpoint":"parent.api_get_children","methods":["GET","OPTIONS","HEAD"],"rule":"/parent/api/children"},{"endpoint":"parent.api_security_access_log","methods":["GET","OPTIONS","HEAD"],"rule":"/parent/api/security/access_log"},{"endpoint":"parent.api_set_time_limit","methods":["OPTIONS","POST"],"rule":"/parent/api/child/<int:child_id>/set-time-limit"},{"endpoint":"parent.dashboard","methods":["GET","OPTIONS","HEAD"],"rule":"/parent/dashboard"},{"endpoint":"parent.index","methods":["GET","OPTIONS","HEAD"],"rule":"/parent/"},{"endpoint":"parent.login_redirect","methods":["GET","OPTIONS","HEAD"],"rule":"/parent/login"},{"endpoint":"parent.logout","methods":["GET","OPTIONS","HEAD"],"rule":"/parent/logout"},{"endpoint":"parent.view_student","methods":["GET","OPTIONS","HEAD"],"rule":"/parent/view-student/<int:student_id>"},{"endpoint":"parent_api.get_child_accuracy","methods":["GET","OPTIONS","HEAD"],"rule":"/api/parent/child-accuracy/<int:child_id>"},{"endpoint":"parent_api.get_child_time_limit","methods":["GET","OPTIONS","HEAD"],"rule":"/api/parent/child-time-limit/<int:child_id>"},{"endpoint":"parent_api.get_dashboard_data","methods":["GET","OPTIONS","HEAD"],"rule":"/api/parent/dashboard/<int:child_id>"},{"endpoint":"parent_api.get_topic_details","methods":["GET","OPTIONS","HEAD"],"rule":"/api/parent/topic-details/<int:child_id>/<subject>"},{"endpoint":"parent_api.get_weekly_summary","methods":["GET","OPTIONS","HEAD"],"rule":"/api/parent/weekly-summary/<int:child_id>"},{"endpoint":"parent_api.reset_daily_usage","methods":["OPTIONS","POST"],"rule":"/api/parent/reset-daily-usage/<int:child_id>"},{"endpoint":"parent_api.update_preferences","methods":["OPTIONS","POST"],"rule":"/api/parent/preferences/<int:child_id>"},{"endpoint":"parent_api.update_time_controls","methods":["OPTIONS","POST"],"rule":"/api/parent/time-controls/<int:child_id>"},{"endpoint":"parent_views.parent_page","methods":["GET","OPTIONS","HEAD"],"rule":"/parent/<int:parent_id>"},{"endpoint":"parent_views.student_parent_shortcut","methods":["GET","OPTIONS","HEAD"],"rule":"/student/<int:student_id>/parent"},{"endpoint":"practice_api.end_practice_session","methods":["OPTIONS","POST"],"rule":"/api/practice/end-session"},{"endpoint":"practice_api.get_next_question","methods":["GET","OPTIONS","HEAD"],"rule":"/api/practice/get-next-question"},{"endpoint":"practice_api.get_session_status","methods":["GET","OPTIONS","HEAD"],"rule":"/api/practice/session-status"},{"endpoint":"practice_api.start_practice_session","methods":["OPTIONS","POST"],"rule":"/api/practice/start-session"},{"endpoint":"practice_api.submit_answer","methods":["OPTIONS","POST"],"rule":"/api/practice/submit-answer"},{"endpoint":"report_routes.approve_report","methods":["OPTIONS","POST"],"rule":"/teacher/reports/approve/<int:report_id>"},{"endpoint":"report_routes.configure_multi_source","methods":["GET","OPTIONS","HEAD","POST"],"rule":"/teacher/reports/multi-source/configure"},{"endpoint":"report_routes.delete_job","methods":["OPTIONS","POST"],"rule":"/teacher/reports/delete/<int:job_id>"},{"endpoint":"report_routes.delete_multiple_jobs","methods":["OPTIONS","POST"],"rule":"/teacher/reports/delete-multiple"},{"endpoint":"report_routes.edit_report","methods":["GET","OPTIONS","HEAD","POST"],"rule":"/teacher/reports/edit/<int:report_id>"},{"endpoint":"report_routes.export_reports","methods":["OPTIONS","POST"],"rule":"/teacher/reports/export/<int:job_id>"},{"endpoint":"report_routes.generate_multi_source","methods":["GET","OPTIONS","HEAD","POST"],"rule":"/teacher/reports/multi-source/generate"},{"endpoint":"report_routes.generate_reports","methods":["GET","OPTIONS","HEAD","POST"],"rule":"/teacher/reports/generate"},{"endpoint":"report_routes.job_status","methods":["GET","OPTIONS","HEAD"],"rule":"/teacher/reports/status/<int:job_id>"},{"endpoint":"report_routes.list_jobs","methods":["GET","OPTIONS","HEAD"],"rule":"/teacher/reports/jobs"},{"endpoint":"report_routes.preview_style","methods":["GET","OPTIONS","HEAD","POST"],"rule":"/teacher/reports/preview-style"},{"endpoint":"report_routes.regenerate_report","methods":["OPTIONS","POST"],"rule":"/teacher/reports/regenerate/<int:report_id>"},{"endpoint":"report_routes.report_settings","methods":["GET","OPTIONS","HEAD","POST"],"rule":"/teacher/reports/settings"},{"endpoint":"report_routes.view_reports","methods":["GET","OPTIONS","HEAD"],"rule":"/teacher/reports/view/<int:job_id>"},{"endpoint":"secure_parent_api.approve_extension_request","methods":["OPTIONS","POST"],"rule":"/api/secure_parent/child/<int:child_id>/extension_request/<int:request_id>/approve"},{"endpoint":"secure_parent_api.child_access_security_test","methods":["GET","OPTIONS","HEAD"],"rule":"/api/secure_parent/child/<int:child_id>/security_test"},{"endpoint":"secure_parent_api.get_insights_details","methods":["GET","OPTIONS","HEAD"],"rule":"/api/secure_parent/child/<int:child_id>/insights"},{"endpoint":"secure_parent_api.get_progress_report_details","methods":["GET","OPTIONS","HEAD"],"rule":"/api/secure_parent/child/<int:child_id>/progress_report"},{"endpoint":"secure_parent_api.get_secure_dashboard_data","methods":["GET","OPTIONS","HEAD"],"rule":"/api/secure_parent/child/<int:child_id>/dashboard"},{"endpoint":"secure_parent_api.get_subject_ratings_details","methods":["GET","OPTIONS","HEAD"],"rule":"/api/secure_parent/child/<int:child_id>/subject_ratings"},{"endpoint":"secure_parent_api.get_time_limits_details","methods":["GET","OPTIONS","HEAD"],"rule":"/api/secure_parent/child/<int:child_id>/time_limits"},{"endpoint":"secure_parent_api.security_test_endpoint","methods":["GET","OPTIONS","HEAD"],"rule":"/api/secure_parent/security_test"},{"endpoint":"self_study_api.end_self_study_session","methods":["OPTIONS","POST"],"rule":"/api/self-study/end-session"},{"endpoint":"self_study_api.get_self_study_question","methods":["GET","OPTIONS","HEAD"],"rule":"/api/self-study/get-question"},{"endpoint":"self_study_api.mark_self_study_answer","methods":["OPTIONS","POST"],"rule":"/api/self-study/mark-answer"},{"endpoint":"self_study_api.start_self_study_session","methods":["OPTIONS","POST"],"rule":"/api/self-study/start-session"},{"endpoint":"seo.robots_txt","methods":["GET","OPTIONS","HEAD"],"rule":"/robots.txt"},{"endpoint":"seo.sitemap_xml","methods":["GET","OPTIONS","HEAD"],"rule":"/sitemap.xml"},{"endpoint":"serve_google_verify","methods":["GET","OPTIONS","HEAD"],"rule":"/<path:filename>"},{"endpoint":"serve_google_verify_env","methods":["GET","OPTIONS","HEAD"],"rule":"/google-verify"},{"endpoint":"static","methods":["GET","OPTIONS","HEAD"],"rule":"/static/<path:filename>"},{"endpoint":"student.dashboard","methods":["GET","OPTIONS","HEAD"],"rule":"/student/dashboard"},{"endpoint":"student.required_practicals","methods":["GET","OPTIONS","HEAD"],"rule":"/student/required-practicals"},{"endpoint":"student.self_study","methods":["GET","OPTIONS","HEAD"],"rule":"/student/self-study"},{"endpoint":"student_api.check_practice_eligibility","methods":["GET","OPTIONS","HEAD"],"rule":"/api/student/practice/check-eligibility"},{"endpoint":"student_api.delete_student_assessment","methods":["OPTIONS","DELETE"],"rule":"/api/student/assessment"},{"endpoint":"student_api.diagnose_topic_rating","methods":["GET","OPTIONS","HEAD"],"rule":"/api/student/diagnose-topic-rating"},{"endpoint":"student_api.get_assessment_results","methods":["GET","OPTIONS","HEAD"],"rule":"/api/student/assessment-results"},{"endpoint":"student_api.get_available_subjects","methods":["GET","OPTIONS","HEAD"],"rule":"/api/student/subjects/available"},{"endpoint":"student_api.get_configured_subjects","methods":["GET","OPTIONS","HEAD"],"rule":"/api/student/subjects/configured"},{"endpoint":"student_api.get_current_configuration","methods":["GET","OPTIONS","HEAD"],"rule":"/api/student/configuration"},{"endpoint":"student_api.get_current_user_id","methods":["GET","OPTIONS","HEAD"],"rule":"/api/student/current-id"},{"endpoint":"student_api.get_paper_info","methods":["GET","OPTIONS","HEAD"],"rule":"/api/student/paper-info"},{"endpoint":"student_api.get_paper_topics","methods":["GET","OPTIONS","HEAD"],"rule":"/api/student/get-paper-topics"},{"endpoint":"student_api.get_self_study_topics","methods":["GET","OPTIONS","HEAD"],"rule":"/api/student/self-study/topics"},{"endpoint":"student_api.get_student_assessment","methods":["GET","OPTIONS","HEAD"],"rule":"/api/student/assessment"},{"endpoint":"student_api.get_student_data","methods":["GET","OPTIONS","HEAD"],"rule":"/api/student/data"},{"endpoint":"student_api.get_subject_topic_breakdown","methods":["GET","OPTIONS","HEAD"],"rule":"/api/student/performance/subject-breakdown/<subject>"},{"endpoint":"student_api.save_configuration","methods":["OPTIONS","POST"],"rule":"/api/student/configuration"},{"endpoint":"student_api.save_enhanced_assessment","methods":["OPTIONS","POST"],"rule":"/api/student/save-enhanced-assessment"},{"endpoint":"student_api.save_student_assessment","methods":["OPTIONS","POST"],"rule":"/api/student/assessment"},{"endpoint":"student_api.submit_feedback","methods":["OPTIONS","POST"],"rule":"/api/student/submit-feedback"},{"endpoint":"student_api.switch_current_subject","methods":["OPTIONS","POST"],"rule":"/api/student/subject/switch"},{"endpoint":"student_api.test_raw_sql_insert","methods":["OPTIONS","POST"],"rule":"/api/student/test-raw-sql-insert"},{"endpoint":"student_api.test_table_schemas","methods":["GET","OPTIONS","HEAD"],"rule":"/api/student/test-table-schemas"},{"endpoint":"student_api.update_paper_selection","methods":["OPTIONS","POST"],"rule":"/api/student/update-paper-selection"},{"endpoint":"student_api.update_topic_rating","methods":["OPTIONS","POST"],"rule":"/api/student/update-topic-rating"},{"endpoint":"submit_interest","methods":["OPTIONS","POST"],"rule":"/submit-interest"},{"endpoint":"system_info","methods":["GET","OPTIONS","HEAD"],"rule":"/debug/system-info"},{"endpoint":"test_helpers.cleanup_test_data","methods":["OPTIONS","POST"],"rule":"/testing/cleanup"},{"endpoint":"test_helpers.seed_test_data","methods":["OPTIONS","POST"],"rule":"/testing/seed"},{"endpoint":"test_signup","methods":["GET","OPTIONS","HEAD"],"rule":"/test-signup"}],"total_routes":250}
