- Implement tests for retrieving a student's assignments, focus practices, finals, and returned worksheets in `test_my_tasks.py`.
- Ensure that the task list correctly reflects only the student's assignments and submissions.
- Add tests for quiz modes in `test_quiz_modes.py`, covering final quiz windows, sitting management, and grade release processes.
- Validate that only the class teacher can open final quiz windows and that practice is blocked while a final is active.
- Test the handling of photo submissions and the behavior of quiz sittings after deadlines.
10 days ago
Add tests for drafting and reviewing student answers
- Implement tests for the drafting of worked examples in `test_draft_examples.py`, ensuring well-formed drafts are generated for skills without examples, and that the model's responses are validated.
- Create tests in `test_teacher_review.py` to cover the teacher's review process of student answers, including handling review requests, score validation, and ensuring proper access control for teachers and students.
- Ensure that the tests cover various scenarios, including error handling and edge cases, to maintain robustness in the review and drafting functionalities.
feat: add AI queue for math requests, including database migration and tests
- Implemented a new table `math_ai_requests` to handle student requests for AI assistance in math problems.
- Created tests for the AI queue functionality, ensuring proper request handling and state management.
- Added browser tests to verify the user guide's accessibility and functionality for both students and teachers.
- Developed a class report feature for teachers to view student progress and grades.
13 days ago
Add monitoring features for system health and activity tracking
- Implemented a new monitoring module to track system health, error logs, and open-answer activity.
- Added endpoints for monitoring summaries, Supabase status, and activity tracking.
- Created a logging handler to count errors and maintain recent log entries for monitoring.
- Enhanced the CSS for monitoring UI components.
- Developed tests for monitoring functionalities to ensure proper access control and data accuracy.
- Implemented scoped attempts with optional diagnostics in SupabaseAuth.
- Extended LibraryAuth to support new analytics tools and modified existing methods for compatibility.
- Introduced new tests for pronunciation difficulties, learning progress, class comparisons, and learning bottlenecks.
- Updated OpenSpec documentation and specifications to reflect new analytics capabilities and privacy requirements.
- Ensured all new tools adhere to existing authorization and privacy standards, suppressing small cohort data.
- Created `test_models_tab.py` to verify the functionality of the models tab, including model switching and settings management.
- Introduced `test_powsm_onnx.py` to test the POWSM ONNX export functionality, ensuring correct handling of model exports and environmental configurations.
- Developed `finetune_powsm.py` for fine-tuning the POWSM-CTC model on Palestinian Arabic recordings, including support for dynamic padding and training configurations.
21 days ago
feat: add support for measuring long vowels said short by duration
- Implemented a mechanism in the scorer to evaluate long vowels pronounced short based on their duration, following rule 3.8.
- Updated the Rules class to include a new length attribute for tracking long vowel duration.
- Enhanced the scoring logic to incorporate checks for shortened long vowels and adjusted the scoring stages accordingly.
- Added tests to validate the new functionality, ensuring that long vowels pronounced short are flagged correctly and that the scoring reflects this.
- Updated documentation to reflect changes in pronunciation rules and scoring behavior.
- Introduced a new audio storage test suite to verify audio migration and storage functionality.
Add tests for learner home functionality and browser interactions
- Implement tests for saving and reading current lessons for learners.
- Create a mock authentication class to simulate Supabase interactions.
- Add tests for handling various scenarios including missing keys, table absence, and server downtime.
- Develop browser tests for the focused learner home page using headless Chrome.
- Validate lesson selection, reminders, and class-specific lesson handling.
- Ensure tests cover both successful and error scenarios for lesson management.
23 days ago
feat(auth): increase MAX_MONITOR_ATTEMPTS for improved pronunciation pattern sampling
feat(main): update class progress handling to retain student history across classes
feat(index): enhance logout button styling for better accessibility and visibility
test: adjust assertions to reflect changes in class progress tracking and student data
feat(activity): implement scoped activity monitoring and fallback mechanism
- Updated service worker cache version to v19.
- Created a new directory for demo video scripts and added .gitignore.
- Added README.md for demo video instructions, including setup and usage.
- Implemented make_takes.py to generate student voice takes using TTS.
- Developed make_voice.py to create Hebrew voiceovers from script lines.
- Introduced music.py to synthesize background music for the demo video.
- Added overlay.js for captioning and tap effects during the demo.
- Created record.py to handle the recording of the demo video with sound and captions.
- Defined script.py to manage captions and voice lines for the demo video.
25 days ago
Add the math path, photographed problems, math classes, backups and the mathly Space
- Updated the logo animation in `logo-intro.svg` to enhance visual effects and timing.
- Changed the service worker cache version from v7 to v17 and removed an unused logo file.
- Adjusted test cases to reflect the updated logo path.
- Introduced a new `live.py` module to manage live class sessions, including session creation, participant management, and question handling.
- Added tests for the new live session functionality to ensure correct behavior for student participation and session lifecycle.
26 days ago
Enhance scoring and training scripts with new features and benchmarks
- Updated test_scoring.py to include subject handling in save_class and added assertions for progress tracking.
- Modified finetune.py to introduce new command-line arguments for layer training, optimizer selection, gradient checkpointing, and maximum training steps.
- Added minerva_benchmark.py for benchmarking phoneme models on Minerva lines, including false flag detection and planted mistake scoring.
- Created minerva_dataset.py to cut reviewed Minerva lines into a training set, ensuring a proper split by video and maintaining CSV compatibility for training.
27 days ago
Add keystore for managing API keys securely and update tests
- Implemented a new KeyStore class to handle API keys securely, encrypting them and ensuring they are never exposed.
- Added functionality to load, save, and clear keys, with validation against their respective providers.
- Created tests for the KeyStore to ensure keys are stored encrypted, swapped in place, and reverted to environment variables when cleared.
- Updated existing tests to include checks for new functionality related to API keys and tutor model management.
feat: enhance flagging system to retain audio recordings in private storage
- Updated the flagging process to no longer store user audio recordings, retaining only structured diagnostics.
- Modified the `add_flag` method to accept only the row data without audio parameters.
- Adjusted related API endpoints and tests to reflect the removal of audio storage.
- Updated documentation to clarify changes in flagging behavior and data storage.
feat: implement pagination for lab samples retrieval and add install prompt for PWA
- Introduced a new API call to fetch system activity data.
- Added a new section in the UI to display recent system events with appropriate labels and icons.
- Enhanced error handling for system activity loading.
- Updated activity statistics to include a summary of total attempts and active students.
- Improved accessibility and user feedback during data loading.
refactor: update references from "ערבוט" to "יאללה נדבר" across application files
Refactor tutor game references from "בחכי ערבי" to "ערבוט" across application files; update access management features and permissions handling in the management panel; enhance user interface for access permissions; add access management functionality in the management system; improve test setup for authentication.
- Implement tests to verify lesson scenarios and their corresponding lines.
- Ensure vocabulary expands correctly with each lesson.
- Validate conversation flow, including turn handling and summary generation.
- Test for new words and their recognition in lessons.
- Check that corrections without changes are ignored.
- Confirm that only teachers can initiate sessions until opened.
- Validate daily limits based on stored data.
- Ensure conversations are restricted to the respective students.
- Implement input validation for start parameters.
- Handle refused answers appropriately without counting them.
Add tests for GOP pooling and windowing functionality
- Implemented tests for GOP frame pooling in `test_gop_pooling.py` to validate the scoring of synthetic CTC emissions, including various scenarios for vowel and consonant recognition.
- Created tests for class-based GOP windows in `test_gop_window.py`, ensuring proper handling of vowel and consonant transitions, substitutions, and deletions.
- Added a test for the Minerva import functionality in `test_minerva_import.py` to verify the integrity of the pilot manifest and associated phrases.
29 days ago
Add comprehensive tests for lab functionality and scoring
- Introduced a new test suite in `tests/test_lab.py` to validate the lab scoring system.
- Implemented mock classes for TTS and authentication to facilitate testing.
- Added tests for item validation, lab scores, flagging, and rescore functionality.
- Verified the integration of TTS with lab scoring and ensured proper handling of audio files.
- Included benchmarks for false rejections and caught mistakes in scoring.
- Updated pronunciation rules in `pronunciation-rules.md` to clarify the handling of shwa and kubutz sounds, including new examples and scoring rules.
- Modified `index.html` to integrate scoring rules display, allowing teachers to toggle rules on and off.
- Added tests in `test_scoring.py` to verify the functionality of newly implemented scoring rules and their impact on pronunciation scoring.
- Introduced a new script `compare_verbs.py` to check the phonemes of Arabic verbs against the scorer's expectations, ensuring consistency in pronunciation handling.
Refactor scoring tests and add pronunciation rules documentation
- Updated test_sign_in_guards_the_practice_endpoints to reflect changes in scoring logic for unmatched recordings.
- Enhanced test_spoken_questions_keep_expected_forms_server_side to assert additional properties of speech phrases.
- Introduced a new markdown file for pronunciation rules tailored for Hebrew speakers learning Palestinian Arabic, detailing articulation, dialect differences, and self-practice guidelines.
- Updated privacy policy to clarify that regular student recordings are not stored, with exceptions for teacher-reported issues.
- Revised the description of data retention for practice sessions to include technical summaries of sound analysis.
- Added tests for phrase calibration to ensure correct handling of confusion cases and scoring.
- Implemented additional test cases for flagging recordings and managing calibration statuses, including creation, updating, and deletion of calibrations.
feat: enhance video library management with renaming and ordering functionality
- Add SpeechEvaluationService for handling speech scoring with uncertainty management.
- Introduce verb game mechanics for generating exercises and server-side checking for "פועל יוצא" levels 1-5.
- Create tests for speech evaluation and verb game functionalities to ensure correctness and reliability.
- Enhance existing test suite with new scenarios for tutor and student interactions in the scoring system.
- Introduced a new structure for handling daily videos, allowing classes to assign videos with specific dates.
- Updated the `save_class` method to accommodate daily video assignments.
- Added methods for adding, deleting, and retrieving daily videos.
- Modified tests to validate the functionality of daily video management, including error handling for invalid inputs.
- Ensured that daily videos are correctly associated with classes and accessible to teachers.
feat: support YouTube links in video management and update related documentation
- Updated the class model to support multiple homeworks, each with its own due date.
- Modified the API to handle the new homeworks structure, allowing for multiple topics per class.
- Adjusted the frontend to display and manage multiple homeworks, including UI changes for adding and editing homeworks.
- Updated tests to cover the new homework functionality, ensuring proper handling of multiple homeworks and validation.
fix: update all_writings method to return None instead of empty list and enhance setup handling in create_app
- Introduced a new topic type "write" for homework, allowing students to write sentences in Arabic.
- Updated the LESSONS and WRITING structures to accommodate the new homework type.
- Enhanced the UI to support writing tasks, including a dialog for input and display of written sentences.
- Implemented functionality to save and retrieve written sentences for students, ensuring data persistence across devices.
- Updated privacy policy to reflect the storage of written homework in Supabase.
- Added tests to verify the new writing functionality and ensure proper handling of homework submissions.
Add text handling functionality and update scoring tests
- Introduced a new module `texts.py` to manage text entries added by teachers, including story and dialogue formats.
- Implemented functions for processing Arabic text transliterations, phonetics, and reading rules.
- Enhanced the scoring tests in `test_scoring.py` to accommodate the new text functionalities, including adding, deleting, and ordering texts alongside videos.
- Updated API endpoints to handle content that includes both videos and texts, ensuring proper validation and response handling.
fix: update sign-in options to include email link for users without Google accounts and revise privacy policy
- Implemented functionality for teachers to add, order, and delete lesson videos in the management panel.
- Introduced new API endpoints for video operations, including adding videos, ordering them, and deleting them.
- Updated the frontend to display videos alongside lesson topics, allowing teachers to manage their placement.
- Enhanced privacy policy to include Vimeo as a service used for hosting lesson videos.
- Added tests to ensure proper functionality of video management features and access controls.
- Added assertions to verify the handling of recordings and tries for classes based on their opening times.
- Implemented checks for unmatched recordings and their impact on scoring summaries.
- Ensured that the state of student records reflects accurate counts of best scores, tries, and unmatched recordings.
- Updated tests to cover scenarios where classes are opened after recordings are made.
Enhance class management in scoring tests: add homework and due date handling
- Updated `save_class` method to include optional homework and due date parameters.
- Adjusted assertions in tests to verify homework and due date functionality for classes.
- Ensured homework is correctly assigned and displayed for students based on class lessons.
- Added validation for homework and due date in class creation to prevent incorrect submissions.
- Enhanced test coverage for class management scenarios involving homework.
Refactor tests to account for lesson visibility and class lesson assignments
- Updated assertions in `test_api_end_to_end_with_stub_model` to check for lessons that are not marked as "soon" and added checks for the number of lessons and levels.
- Modified `test_workbook_lesson_1` to filter out lessons marked as "soon" when asserting lesson IDs.
- Introduced `test_levels_plan_every_lesson` to validate lesson and level relationships, ensuring all lessons are accounted for in their respective levels.
- Enhanced `test_sign_in_guards_the_practice_endpoints` to include lesson assignments in class creation and retrieval, ensuring students see the correct lessons based on their class memberships.
- Adjusted assertions to reflect changes in class and lesson handling, ensuring proper validation of class creation and student visibility.
- Added functionality for teachers to create, edit, and delete classes.
- Updated authentication to restrict access based on class enrollment.
- Modified user response to include class information for signed-in students.
- Enhanced UI to display class details and student lists.
- Removed the ALLOWED_EMAILS environment variable as class enrollment now governs access.
- Introduced error handling for class conflicts and missing class data.
Add teacher management panel functionality and related configurations