Commit Graph

1020 Commits

Author SHA1 Message Date
Torsten Schulz (local)
c3e5f92378 chore(package): update version to 3.0.0-beta-1.0.0 in package.json
[force-deploy]
2026-04-17 13:41:00 +02:00
Torsten Schulz (local)
90dd304ad6 feat(deploy): update deployment workflow and migration paths
- Modified the deployment workflow to include new migration paths for the backend, ensuring that migrations are correctly referenced in the deployment process.
- Updated the `db:migrate` script in package.json to point to the `migrations-active` directory, enhancing clarity and organization of migration files.
- Adjusted the deployment conditions to account for changes in migration file locations, improving the accuracy of change detection during deployments.
- Removed obsolete migration files to streamline the migration process and prevent confusion.
2026-04-17 13:39:38 +02:00
Torsten Schulz (local)
7b19665dca feat(migration): enhance contact_message migration to check for existing columns before adding/removing
- Updated the migration script for the contact_message table to conditionally add or remove columns based on their existence, improving migration safety and preventing errors during deployment.
- This change ensures that the migration can be run multiple times without causing issues if the columns already exist or are missing.
[force-deploy]
2026-04-17 12:01:25 +02:00
Torsten Schulz (local)
f836e69d24 feat(deploy): add force deploy detection to deployment workflow
- Implemented logic to check for a `[force-deploy]` tag in the latest commit message, allowing for a forced deployment regardless of detected changes.
- Updated deployment conditions to include force deploy status, enabling more flexible deployment options based on commit messages.
- Enhanced sync step to trigger on force deploy, ensuring content updates are applied even without file changes.
2026-04-17 11:53:00 +02:00
Torsten Schulz (local)
fbdf81746d feat(update-backend): streamline dependency management and migration process
- Updated the npm install command to remove the production flag, allowing for the installation of all dependencies.
- Added a step to prune development dependencies after running database migrations, optimizing the deployment environment.
2026-04-17 11:42:41 +02:00
Torsten Schulz (local)
da34e1d4b2 feat(VocabLessonView): improve lesson reset behavior and normalize vocabulary handling
- Updated lesson reset functionality to ensure users start in the 'learn' tab after resetting progress.
- Enhanced vocabulary normalization by adding a method to strip trailing parenthetical notes, improving text consistency.
- Adjusted normalization logic to conditionally ignore trailing notes based on user input mode, enhancing user experience during vocabulary training.
2026-04-17 11:41:46 +02:00
Torsten Schulz (local)
47807d5268 feat(database): add migration and sync-db scripts to deployment process
- Introduced a new npm script for database migrations in package.json.
- Updated update-backend.sh to execute migrations and conditionally run legacy sync-db based on environment variable.
- Enhanced syncDatabase.js to skip initialization routines if APP_INIT_ON_START is not set, promoting best practices for schema changes during deployment.
2026-04-17 11:34:59 +02:00
Torsten Schulz (local)
6083db9f2e feat(deploy): enhance deployment scripts with skip options for backend and frontend
- Updated `deploy-yourpart-bluegreen.sh` to pass additional arguments for skipping backend or frontend updates.
- Enhanced `update.sh` to handle `--skip-backend` and `--skip-frontend` flags, allowing for more flexible deployment based on changes detected.
- Modified deployment workflow to conditionally execute based on changes in frontend or backend files, improving deployment efficiency.
2026-04-17 11:33:02 +02:00
Torsten Schulz (local)
c4808db972 feat(bisaya-course): enhance script execution with direct run detection
- Added functionality to detect if the script is run directly, allowing for conditional execution of the main function.
- Imported `pathToFileURL` from the 'url' module to facilitate the direct run check, improving script usability and flexibility.
2026-04-17 11:23:40 +02:00
Torsten Schulz (local)
7610d2137c feat(deploy): add vocab course change detection and sync step
- Implemented a new workflow step to detect changes in vocab course files and conditionally sync content.
- Added a script to check for specific changes in the repository and trigger the sync process if necessary.
- Introduced a new npm script for syncing vocab course content in the backend package.json.
2026-04-17 11:17:59 +02:00
Torsten Schulz (local)
4f548565ec feat(bisaya-course): enhance lesson structure and didactics integration
- Added an auto-incrementing primary key to the UserHouse model for improved database management.
- Integrated new didactics fragments from the Bisaya course plan, including relationship anchor didactics and lessons for enhanced curriculum depth.
- Updated lesson retrieval logic to utilize planned lesson titles, improving the accuracy of didactics resolution.
- Refactored course content generation scripts to incorporate new didactics, ensuring a comprehensive learning experience for users.
2026-04-17 11:08:12 +02:00
Torsten Schulz (local)
3a361caa1c feat(bisaya-course): add new didactics fragments for everyday conversations
- Introduced new didactics fragments for "Alltagsgespräche - Teil 1" and "Alltagsgespräche - Teil 2," including learning goals, core patterns, speaking prompts, and practical tasks to enhance conversational skills in Bisaya.
- Updated the lesson structure to incorporate these new fragments, improving the overall curriculum and providing learners with more comprehensive resources for everyday interactions.
2026-04-17 10:52:39 +02:00
Torsten Schulz (local)
402efac897 feat(bisaya-course, vocabService): expand numerical didactics and enhance lesson progress serialization
- Added new glosses for the numbers sixty, seventy, and eighty in the Bisaya didactics, enriching the numerical curriculum.
- Updated the _serializeLessonProgress method to include an options parameter for suppressing lesson review due notifications based on SRS item status.
- Introduced a new method to check for due SRS items, improving the handling of lesson progress and review scheduling.
2026-04-17 09:30:36 +02:00
Torsten Schulz (local)
9123bd524a feat(VocabPracticeDialog, VocabCourseView): implement SRS rating feature and enhance user feedback
- Added SRS rating buttons in VocabPracticeDialog to allow users to rate their confidence after answering vocabulary questions.
- Updated methods to handle SRS ratings and integrated them into the review process, improving spaced repetition feedback.
- Enhanced UI with new styles for SRS rating buttons and updated translations for SRS-related terms in multiple languages.
- Modified VocabCourseView to display appropriate introductory text based on SRS due items, improving user guidance.
2026-04-17 09:27:29 +02:00
Torsten Schulz (local)
bf475e3a35 feat(vocab): implement SRS features and enhance vocabulary management
- Added new endpoints in vocabController for retrieving SRS due items and reviewing SRS items, improving spaced repetition support.
- Updated vocabService to handle SRS item creation and scheduling, ensuring effective tracking of vocabulary exposure.
- Enhanced vocabRouter with new routes for SRS functionalities, facilitating user interaction with spaced repetition features.
- Modified VocabPracticeDialog and VocabCourseView to integrate SRS due items, providing users with timely review opportunities.
- Updated translations and UI elements to reflect new SRS features, enhancing user experience and accessibility.
2026-04-17 09:14:30 +02:00
Torsten Schulz (local)
022b8297b6 feat(vocabService, VocabPracticeDialog, VocabLessonView): enhance vocabulary handling and exposure tracking
- Updated vocabService to merge extracted vocabularies and improve handling of learning and reference pairs.
- Introduced normalization and exposure tracking in VocabPracticeDialog to ensure diverse and underexposed vocabulary practice.
- Enhanced VocabLessonView with methods to identify underexposed vocabularies and adjust selection logic for improved learning outcomes.
- Implemented new constants for minimum exposure requirements to optimize vocabulary training sessions.
2026-04-17 08:58:50 +02:00
Torsten Schulz (local)
4063127942 feat(bisaya-course): expand numerical didactics with additional glosses
- Added new glosses for numbers in Bisaya, enhancing the didactics for numerical lessons.
- Included translations for numbers 4 to 19, improving the comprehensiveness of the numerical curriculum.
- Updated the lesson structure to support the expanded vocabulary, ensuring a richer learning experience.
2026-04-17 08:21:02 +02:00
Torsten Schulz (local)
8c30f0ff54 feat(bisaya-course): add didactics fragments for "Haus & Familie" lessons
- Introduced comprehensive didactics snippets for the "Haus & Familie" lesson, including learning goals, core patterns, grammar focus, speaking prompts, and practical tasks.
- Updated the lesson retrieval logic to incorporate these new fragments as a fallback for core patterns, enhancing the robustness of lesson content delivery.
- Modified the vocab service to utilize the new didactics fragments, ensuring a seamless integration into the existing lesson structure.
2026-04-16 22:44:57 +02:00
Torsten Schulz (local)
5ca2817c82 feat(bisaya-course): update lesson retrieval and didactics processing
- Refactored the lesson retrieval logic to include lesson number and title in the query, improving data handling.
- Updated the didactics processing to utilize a lesson-like object instead of fetching lessons by primary key, enhancing performance.
- Improved error handling and ensured proper closure of the database connection after execution.
2026-04-16 22:36:15 +02:00
Torsten Schulz (local)
515fd8c5eb feat(bisaya-course): add new exercises for situational role plays and enhance lesson normalization
- Introduced a new section titled "Rollenspiele - echte Situationen" with multiple exercises focusing on real-life scenarios in Bisaya, including multiple-choice, gap-fill, and transformation tasks.
- Implemented a normalization function for lesson titles to improve matching accuracy and facilitate the rebuilding of placeholder lessons.
- Updated the course content generation logic to replace outdated exercises with new ones based on normalized titles, ensuring a more relevant learning experience.
2026-04-16 22:28:10 +02:00
Torsten Schulz (local)
f14a7ab674 feat(bisaya-course): add new lesson and update course creation logic
- Introduced a new lesson titled "Zahlen & Preise" to enhance the numerical curriculum in Bisaya.
- Updated the course creation logic to check for existing "Familien"-Bisaya courses, ensuring idempotency in course creation.
- Enhanced the lesson didactics by mapping legacy titles to current lesson keys, improving data consistency.
- Adjusted the course generation script to limit Bisaya courses to German-speaking learners only, streamlining course offerings.
2026-04-16 22:16:23 +02:00
Torsten Schulz (local)
b586fcb708 feat(bisaya-course): enhance numerical lessons with expanded content
- Updated lessons on numbers to include detailed sections for "Zahlen 1–20," "Zahlen: Zehner," "Zahlen: Hunderter," and "Zahlen: Tausender," focusing on foundational numerical concepts in Bisaya.
- Introduced various exercise types such as multiple-choice, gap-fill, and transformation tasks to improve learner engagement and comprehension of numerical expressions.
- Enhanced didactics with clear learning goals, core patterns, grammar focus, speaking prompts, and practical tasks to support effective learning.
- Added review lessons to reinforce key concepts and ensure continuity in learning progression.
2026-04-16 21:55:05 +02:00
Torsten Schulz (local)
ad5d089786 feat(vocabService): enhance answer validation with comparable variants
- Introduced methods to expand comparable answer variants and improve answer equivalence checks, allowing for more flexible user responses.
- Updated the answer validation logic to utilize the new methods, enhancing the accuracy of response evaluation during exercises.
2026-04-16 16:46:37 +02:00
Torsten Schulz (local)
eba98dde1d fix(bisaya-course): update alternatives for transformation exercise
- Modified the alternatives for a transformation exercise to include additional variations, enhancing the response options for learners.
- Updated the vocabulary service to incorporate both primary and alternative answers, improving the accuracy of answer validation during exercises.
2026-04-16 16:42:48 +02:00
Torsten Schulz (local)
98ab31bc78 feat(bisaya-course): expand lessons on shopping, prices, and numbers
- Added new lessons titled "Einkaufen & Preise" and "Zahlen & Preise" with various exercises focusing on shopping vocabulary and numerical expressions in Bisaya.
- Introduced multiple exercise types including multiple-choice, gap-fill, and transformation tasks to enhance learner engagement and understanding of practical language use in market contexts.
- Updated didactics to include learning goals, core patterns, grammar focus, speaking prompts, and practical tasks related to shopping dialogues and numerical comprehension.
- Included a review lesson "Woche 2 - Wiederholung" to reinforce key concepts from previous lessons, ensuring comprehensive learning continuity.
- Enhanced vocabulary testing with a new "Woche 2 - Vokabeltest" to assess retention of key terms and phrases.
2026-04-16 16:25:47 +02:00
Torsten Schulz (local)
99d011dd92 feat(bisaya-course): add new lesson on time and date concepts
- Introduced a new lesson titled "Zeit & Datum" with multiple exercises focusing on recognizing and using key time-related vocabulary in Bisaya.
- Added various exercise types including multiple-choice, gap-fill, and transformation tasks to enhance learner engagement and understanding of temporal expressions.
- Updated didactics to include learning goals, core patterns, grammar focus, speaking prompts, and practical tasks related to time markers and simple date questions.
2026-04-16 16:09:10 +02:00
Torsten Schulz (local)
1c34a90cfd fix(vocabLessonReview): improve input normalization by trimming punctuation
- Enhanced the `normalize` method to trim trailing punctuation marks (.,!?;:) from input strings, ensuring cleaner and more consistent user input.
- Added logic to replace multiple spaces with a single space, improving the overall formatting of normalized strings.
2026-04-16 15:23:00 +02:00
Torsten Schulz (local)
a18d6d62b5 feat(bisaya-course): update gap-fill exercise structure and instructions
- Changed exercise type from 'pattern_drill' to 'gap_fill' for improved clarity and engagement.
- Revised instructions to specify the use of the verb "adto" across different tenses, enhancing learner guidance.
- Updated question data format to include gaps for each tense, streamlining the exercise layout.
- Adjusted answer data to reflect the new gap-fill structure, ensuring consistency in exercise responses.
- Enhanced explanation to clarify the focus on tense variations with the verb "adto," improving educational value.
2026-04-16 15:06:17 +02:00
Torsten Schulz (local)
1131540414 feat(vocabLesson): enhance input handling for gap-fill exercises
- Added functionality to manage Enter key events for gap-fill and single input fields, improving user experience during exercises.
- Introduced methods `onGapInputEnter` and `onSingleInputEnter` to streamline answer checking and navigation between input fields.
- Updated input elements with refs for better focus management, ensuring a smoother interaction flow for users.
2026-04-16 14:55:43 +02:00
Torsten Schulz (local)
d3dc20a93f feat(falukant): refactor character ID resolution for political office checks
- Introduced a new method `resolveCharacterIdForOfficeChecks` to robustly resolve character IDs based on user references, improving the reliability of political office queries.
- Updated `getHighestPoliticalOfficeInfo` and `getHighestOfficeAnyInfo` methods to utilize the new character ID resolution logic, enhancing code clarity and reducing redundancy.
- Ensured that character ID retrieval handles both direct and fallback user references, streamlining the process of fetching political office information.
2026-04-15 15:47:31 +02:00
Torsten Schulz (local)
6897f0fadf feat(falukant): add political office catalog feature and localization updates
- Implemented the `getPoliticalOfficeCatalog` method in FalukantService to retrieve available political offices and their prerequisites based on user eligibility.
- Updated FalukantController and FalukantRouter to include a new endpoint for accessing the political office catalog.
- Enhanced PoliticsView component to display the list of political offices, including their details and application eligibility.
- Added localization entries for the new offices tab in both German and English, improving user experience and accessibility.
2026-04-15 15:30:24 +02:00
Torsten Schulz (local)
b61a73aa09 feat(vocabLesson): add detailed review section for failed chapter exams
- Introduced a new review section that displays questions, user answers, and correct answers for failed chapter exams.
- Added localization entries for the review section in multiple languages, enhancing user experience and understanding of mistakes.
- Implemented logic to format and present failed exam details, improving feedback for learners.
2026-04-15 14:02:34 +02:00
Torsten Schulz (local)
271ecca9f6 feat(bisaya-course): enhance lesson content for temporal grammar and exercises
- Updated learning goals to emphasize distinguishing between past, present, and future in everyday sentences.
- Revised core patterns to include specific examples for each tense, improving clarity and context for learners.
- Expanded grammar focus sections to provide detailed explanations of time markers and their usage.
- Introduced new exercises for practicing grammar focus, including multiple-choice questions and transformation tasks, enhancing student engagement with temporal aspects of the language.
- Updated speaking prompts and practical tasks to reflect the new content structure, ensuring a comprehensive learning experience.
2026-04-15 13:25:15 +02:00
Torsten Schulz (local)
24777018f0 feat(bisaya-course): enhance grammar focus and drills for lesson content
- Added functions to normalize and build grammar curriculum focus entries, improving the structure and clarity of grammar lessons.
- Implemented logic to merge existing grammar focus with newly defined curriculum focus, ensuring comprehensive coverage of key grammar points.
- Introduced new drills for practicing past and future tense constructions, enhancing student engagement and understanding of temporal aspects in Bisaya.
- Updated the `createBisayaCourseContent` function to incorporate these enhancements, ensuring lessons are enriched with relevant grammar exercises.
2026-04-15 11:52:53 +02:00
Torsten Schulz (local)
5c6ba2f5da feat(bisaya-course): update exercise content for market-related vocabulary
- Changed the exercise question and answer to focus on market-related scenarios, replacing previous church-related content.
- Updated the explanation to align with the new vocabulary introduced in this lesson, enhancing contextual learning for students.
2026-04-15 11:49:50 +02:00
Torsten Schulz (local)
a44a35d92c feat(bisaya-course): implement core pattern extraction and merging for exercises
- Added functions to derive core patterns from various exercise types, including gap-fill, transformation, and multiple-choice.
- Implemented logic to merge derived core patterns with existing lesson patterns, ensuring a minimum count for effective lesson content.
- Enhanced the `createBisayaCourseContent` function to update lessons with merged core patterns and provide detailed logging based on the VOCAB_STRICT_AUDIT environment variable.
2026-04-15 11:12:18 +02:00
Torsten Schulz (local)
336d888dbe feat(bisaya-course): add new lessons for everyday conversations
- Introduced two new lessons: 'Alltagsgespräche - Teil 1' and 'Alltagsgespräche - Teil 2'.
- Each lesson includes learning goals, core patterns, speaking prompts, and practical tasks to enhance conversational skills in everyday contexts.
- Updated the lesson structure to support these additions, ensuring a comprehensive learning experience.
2026-04-15 11:09:14 +02:00
Torsten Schulz (local)
0499b23ced feat(bisaya-course): enhance gap-fill exercise processing and validation
- Added `buildCorePatternGlossLookup` to create a mapping of core patterns for improved hint sanitization.
- Implemented `sanitizeGapFillHintText` to validate and replace hints based on answer word count and gloss availability, generating fixes and warnings as needed.
- Updated `sanitizeExerciseForConsistency` to incorporate new sanitization logic for gap-fill exercises, ensuring consistent exercise data handling.
- Enhanced logging in `createBisayaCourseContent` to provide detailed feedback on exercise processing and validation outcomes.
2026-04-14 15:33:00 +02:00
Torsten Schulz (local)
4b0b4d42f1 feat(bisaya-course): add word count validation and exercise audit warnings
- Introduced a `countWords` function to calculate the number of words in a given text.
- Added `collectExerciseAuditWarnings` function to generate warnings for gap-fill exercises with potentially misleading hints.
- Updated the `createBisayaCourseContent` function to log audit warnings when the VOCAB_STRICT_AUDIT environment variable is set, enhancing the validation process for exercise content.
2026-04-14 15:30:58 +02:00
Torsten Schulz (local)
26a4e84e1d fix(vocabLesson): improve answer validation logic for gap fill exercises
- Enhanced the answer validation process by introducing checks for native word and answer text, ensuring they are trimmed and compared correctly.
- Added logic to identify likely fragment mismatches based on sentence structure and word count, preventing incorrect answer submissions.
- Updated debug logging to provide clearer insights into the validation process, improving maintainability and debugging capabilities.
2026-04-14 14:57:54 +02:00
Torsten Schulz (local)
573151fd31 feat(falukant): add improve lover affection feature and localization updates
- Introduced the `improveLoverAffection` method in FalukantService to enhance relationship dynamics by allowing users to boost affection at a cost.
- Updated FalukantController and FalukantRouter to include the new endpoint for improving lover affection.
- Enhanced FamilyView component to provide a button for users to trigger the affection improvement action.
- Added localization entries for the new feature in multiple languages, ensuring clarity in user interactions regarding affection improvements.
2026-04-14 11:39:42 +02:00
Torsten Schulz (local)
abf5b42601 feat(falukant): enhance notification handling and localization updates
- Updated the `enrichNotificationsWithCharacterNames` method in FalukantService to include region name enrichment and handle additional character IDs.
- Introduced a new `serializeNotificationForClient` function to format notifications for the client, ensuring all relevant data is included.
- Enhanced the MessagesDialog component to merge notification payloads and extract parameters more effectively, improving the clarity of displayed messages.
- Added new localization entries for director resignation risk and regional festival effects in multiple languages, ensuring comprehensive user notifications.
2026-04-14 08:06:56 +02:00
Torsten Schulz (local)
dfa6a58a57 feat(falukant): add transport cost option to product price calculations
- Updated the `getProductPricesInCitiesBatch` method in FalukantService to accept an options parameter for including transport costs in price calculations.
- Modified the tax calculation logic to conditionally apply transport costs based on the new parameter, enhancing the accuracy of pricing based on regional differences.
- Adjusted the FalukantController to pass the includeTransportCosts option from the request body, improving flexibility in pricing queries.
2026-04-13 16:11:53 +02:00
Torsten Schulz (local)
4117ec0ce0 feat(falukant): refine tax calculation logic to handle political office exemptions
- Updated the tax calculation in FalukantService to ensure no exemptions are applied for political offices, streamlining the cumulative tax query.
- Enhanced the SQL query to accurately compute cumulative tax while excluding exempted ancestor levels based on office, improving overall accuracy in tax assessments.
2026-04-13 16:05:41 +02:00
Torsten Schulz (local)
ca16b1acf2 feat(falukant): enhance tax calculation and update messaging parameters
- Updated the tax calculation logic in FalukantService to include character-based checks for political offices, improving accuracy in tax assessments.
- Enhanced the MessagesDialog component to incorporate additional parameters such as satisfaction, threshold_percent, director_id, and director_character_id, providing more detailed notifications.
- Added new localization entries for director resignation risk notifications in multiple languages, ensuring users receive clear and contextual information regarding director dynamics.
2026-04-13 15:58:30 +02:00
Torsten Schulz (local)
e799cf4574 feat(falukant): add scandalExtraDailyPct field and update related components
- Introduced a new field `scandalExtraDailyPct` in the relationship state model to track additional scandal risk per day, with validation constraints.
- Updated the FalukantService to include the new field in relevant calculations and data handling.
- Enhanced the frontend components, including RevenueSection and FamilyView, to display the scandal risk information and updated price calculations.
- Added localization entries for the new field in multiple languages to ensure clarity for users.
2026-04-13 15:31:47 +02:00
Torsten Schulz (local)
2ce1d0ac22 feat(falukant): update production counting logic and enhance localization
- Modified the production counting logic in FalukantService to count each completed production directly from the falukant_log.production table, simplifying the query structure.
- Added a new localization entry for "scoreHowToRaise" in Cebuano, German, English, Spanish, and French to provide users with clear guidance on how to improve their score through various factors.
- Updated the OverviewView component to display the new score improvement information, enhancing user experience and understanding of scoring dynamics.
2026-04-13 13:59:37 +02:00
Torsten Schulz (local)
10191ae8d6 feat(falukant): add 'lover_breakup_risk_high' event handling and localization updates
- Introduced a new event type for high breakup risk in relationships, including a sample payload for integration.
- Updated the MessagesDialog component to handle new parameters related to breakup risk.
- Added translations for the new event in Cebuano, German, English, Spanish, and French to enhance user understanding of relationship dynamics.
- Enhanced documentation to reflect the new notification structure for high breakup risk events.
2026-04-13 12:21:24 +02:00
Torsten Schulz (local)
b5a1c334fb feat(falukant): enhance marriage actions with production delay handling and UI updates
- Implemented logic in FalukantService to delay running productions when spending time with a spouse, updating the start timestamp accordingly.
- Enhanced the response from the spend time API to include details about delayed productions and household order changes.
- Updated FamilyView component to display the cost of marriage actions and added a help section detailing the effects of actions, including production delays.
- Added new translations for action effects in multiple languages to improve user understanding of the marriage actions.
2026-04-13 12:09:17 +02:00
Torsten Schulz (local)
f5461a3c8c feat(i18n): update 'acknowledgeHelp' translations and enhance UI interaction
- Added new translations for 'maintenance', 'affection', and 'breakup' in Cebuano, German, English, and Spanish to provide users with comprehensive context regarding relationship dynamics.
- Refactored the FamilyView component to utilize a details element for the 'acknowledgeHelp' section, improving user interaction and readability.
- Enhanced styling for the summary element to improve visibility and user engagement.
2026-04-13 11:41:17 +02:00