- 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.
Update service worker cache version and add new logo assets
- Changed cache version from v3 to v7 in service-worker.js.
- Added new logo assets: logo-intro-alt.svg and logo-math.svg.
- Updated trace.html to include a new exemption name for onset transient.
- Added tests for onset transient behavior in test_scoring.py.
7 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.
8 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.
9 days ago
Add system activity tracking and display to the dashboard
- 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.
- 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.
- Implemented `arabic_diacritics.py` to add Arabic vowel marks to words based on their IPA pronunciation.
- Created tests for the diacritics functionality in `test_arabic_diacritics.py`, covering various cases including short and long vowels, gemination, and phrase handling.
- Updated grading pipeline documentation to include detailed explanations of the scoring process and audio handling.
- 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.
14 days ago
fix: update course level names from "רמה" to "שלב" for consistency
- 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.
- 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.
feat: add Hebrew translation recognition and update privacy policy
- 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.
17 days ago
Add teacher management panel functionality and related configurations
- Introduced a new `grammar.py` module to generate sentences for each pronoun and their negated forms.
- Updated `phrases.py` to include generated Day 2 phrases and integrate with the existing phrase bank.
- Enhanced the frontend in `index.html` to support negation and conjugation buttons for navigating between sentence variations.
- Added tests in `test_scoring.py` to ensure all pronouns and negations are correctly represented in the generated phrases.
Enhance TTS and scoring features: update scoring logic for phonemes, add voice metadata to TTS responses, and improve test coverage for TTS endpoint