Commit Graph

281 Commits

Author SHA1 Message Date
Torsten Schulz (local)
9333a8318c Enhance query handling and foreign key management in sequelize.js
- Updated queryWithTimeout to support parameter replacements, improving query flexibility.
- Enhanced foreign key checks in syncModelsAlways to handle timeouts and errors more gracefully, ensuring robust logging and skipping problematic checks.
- Implemented a check for table existence before synchronization for large tables, preventing unnecessary sync operations and improving performance.
2026-01-23 13:13:35 +01:00
Torsten Schulz (local)
c1cda5fa62 Enhance Sequelize configuration and query handling in sequelize.js
- Added connection pool settings to optimize database connection management.
- Introduced a queryWithTimeout helper function to handle long-running queries, improving error handling and preventing indefinite hangs.
- Updated syncModelsAlways function to utilize queryWithTimeout for foreign key checks and cleanup operations, enhancing robustness and logging for better visibility during synchronization.
2026-01-23 12:48:26 +01:00
Torsten Schulz (local)
88967ba9d3 Implement model synchronization with timeout handling in sequelize.js
- Added a helper function to synchronize models with a timeout, improving error handling for long-running sync operations.
- Updated the syncModelsAlways function to utilize the new timeout feature, providing better control over model synchronization and preventing indefinite hangs.
- Enhanced logging to indicate model sync progress and timeout occurrences, improving visibility during deployment.
2026-01-23 10:37:47 +01:00
Torsten Schulz (local)
92d792246c Enhance database cleanup operations in syncDatabase.js
- Added a helper function to check for table existence before performing cleanup operations, ensuring that invalid queries are avoided.
- Updated cleanup logic for church_office and church_application tables to only execute if the respective tables exist, improving robustness and preventing errors.
- Maintained existing logging for cleanup operations to provide visibility into the process.
2026-01-23 09:42:49 +01:00
Torsten Schulz (local)
586aaec506 Add queryWithTimeout helper for database operations in syncDatabase.js
- Introduced a new helper function to execute database queries with a timeout, improving error handling for long-running queries.
- Updated multiple cleanup operations to utilize the new helper, enhancing code readability and maintainability.
- Added descriptive logging for each cleanup operation to provide better insights into the database synchronization process.
2026-01-22 17:18:27 +01:00
Torsten Schulz (local)
10690b5a6e Optimize database cleanup process in syncDatabase.js
- Enhanced orphaned entry cleanup queries with LEFT JOIN for improved performance.
- Added logging for each cleanup step to provide better visibility into the process.
- Included additional cleanup for church_office and church_application tables to remove invalid entries.
- Updated vehicle condition handling to set legacy NULLs to 100 and clamp values between 0 and 100.
2026-01-22 17:07:04 +01:00
Torsten Schulz (local)
bceef9777a Refactor church career validation in FalukantService
- Moved church career checks to a more logical position in the transaction flow.
- Improved error handling by ensuring character existence is validated before checking for church office.
- Cleaned up commented code for better readability and maintainability.
2026-01-22 16:54:29 +01:00
Torsten Schulz (local)
4f786cdcc3 Implement church career management features
- Added endpoints for church career functionalities including overview, available positions, application submission, and application decision-making.
- Enhanced the FalukantController to handle church-related requests.
- Updated associations and models to support church office types and requirements.
- Integrated new routes in the falukantRouter for church career operations.
- Implemented service methods for managing church applications and checking church career status.
- Updated frontend components to display current positions, available positions, and manage applications with appropriate UI elements and loading states.
- Localized new church-related strings in both English and German.
2026-01-22 16:46:42 +01:00
Torsten Schulz (local)
82734e8383 Refactor source directory handling in modelsProxyService.js
- Introduced a cached source directory variable to optimize the retrieval of model paths.
- Updated comments for clarity on the source directory logic and its impact on cache validation.
2026-01-22 15:50:46 +01:00
Torsten Schulz (local)
69a83c584b Enhance model path handling in modelsProxyService.js
- Refactored model source directory logic to dynamically select between production and local paths.
- Updated error messages to provide clearer context on model source lookup failures.
- Added package-lock.json to .gitignore to streamline dependency management.
2026-01-22 13:50:47 +01:00
Torsten Schulz (local)
a8fdcd179e Remove package-lock.json files from frontend, backend, and root directories to streamline dependency management and reduce repository size. 2026-01-22 13:50:38 +01:00
Torsten Schulz (local)
7303d1ea0b Implement request handling for 3D models in app.js
- Added middleware to prevent direct access to /models/ paths, directing users to use /api/models/ instead for optimized 3D models.
- Updated comments to clarify the purpose of the new middleware and its role in serving models through the API.
2026-01-22 13:40:03 +01:00
Torsten Schulz (local)
4379b0b955 Implement model optimization and caching for 3D characters
- Added a new modelsProxyRouter to handle requests for optimized 3D character models.
- Introduced modelsProxyService to manage GLB file optimization using gltf-transform with Draco compression.
- Updated app.js to include the new modelsProxyRouter for API access.
- Enhanced .gitignore to exclude model cache files.
- Added scripts for optimizing GLB models and updated README with optimization instructions.
- Integrated DRACOLoader in Character3D.vue for loading compressed models.
- Updated FamilyView.vue to streamline character rendering logic.
2026-01-22 13:24:47 +01:00
Torsten Schulz (local)
8c0f07cc51 Optimize falukantService and DirectorInfo component for improved performance and user experience
- Refactored proposal handling in falukantService to load existing proposals before cleaning expired ones, reducing unnecessary database queries.
- Enhanced fetchProposals method with explicit joins for better performance and added a limit to avoid excessive data retrieval.
- Updated DirectorInfo component to reload data after hiring a director, ensuring the UI reflects the latest information.
2026-01-22 10:15:45 +01:00
Torsten Schulz (local)
3018b1f2e1 Refactor updateFoodCareExercises function to optimize database queries and improve code clarity
- Replaced the Sequelize findAll method with a raw SQL query to fetch Bisaya courses along with native language information, enhancing performance.
- Updated variable names for consistency and clarity, ensuring better readability of the code.
- Adjusted the handling of course owner IDs to align with the new query structure, improving data integrity.
2026-01-21 13:22:03 +01:00
Torsten Schulz (local)
a21a2314d7 Enhance survival sentences exercises and VocabCourseView for improved user experience
- Added multiple choice exercises for common phrases in Bisaya, including questions and explanations to aid learning.
- Introduced a gap fill exercise for completing survival sentences, enhancing interactive learning.
- Updated VocabCourseView to display a button for continuing the current lesson, ensuring smoother navigation.
- Implemented logic to prevent starting lessons without completing previous ones, improving course progression management.
2026-01-21 12:01:31 +01:00
Torsten Schulz (local)
a76aae3d12 Update falukantService and MessagesDialog for improved data handling and parameter extraction
- Changed the join in falukantService from 'title_of_nobility' to 'title' for better clarity in data relationships.
- Enhanced MessagesDialog.vue to directly extract parameters from parsed data when no value object is present, improving the handling of character-related parameters and ensuring backend names take precedence.
2026-01-21 08:33:59 +01:00
Torsten Schulz (local)
c907d2773d Enhance Bisaya course content and VocabLessonView for improved clarity and functionality
- Updated gap fill exercises in create-bisaya-course-content.js to include clearer instructions and contextual hints for better understanding.
- Refined the logic in VocabLessonView.vue to prevent duplicate vocabulary entries and ensure only distinct translations are added, enhancing the learning experience.
- Adjusted timing for transitioning between questions in VocabLessonView to improve user interaction flow.
2026-01-20 15:05:48 +01:00
Torsten Schulz (local)
175a61c81c Enhance VocabService and VocabCourseView for improved multiple choice handling and table layout
- Updated VocabService to support multiple correct answers in multiple choice exercises, allowing for better answer validation and user feedback.
- Enhanced the extraction of correct answers and alternatives to accommodate both single and multiple correct indices.
- Improved CSS styles in VocabCourseView for better table layout, including adjustments for overflow handling and vertical alignment, enhancing overall user experience.
2026-01-20 14:46:07 +01:00
Torsten Schulz (local)
8d32d704b5 Enhance exercise generation for family conversations and feelings & affection
- Updated multiple choice exercises to include randomized wrong options for improved engagement and challenge.
- Added new exercise types for reading aloud and speaking from memory, enhancing interactive learning experiences.
- Improved gap fill exercises with clearer instructions and multiple variants for better user understanding.
- Enhanced the vocabulary service to support new exercise types, ensuring robust answer checking and feedback mechanisms.
- Updated localization files to include new instructions and messages related to the new exercise types.
2026-01-20 14:30:19 +01:00
Torsten Schulz (local)
e5d4a5f95f Refactor VocabCourseView to enhance lesson display and user interaction
- Replaced the lesson item layout with a structured table format for improved readability and organization of lesson information.
- Updated lesson status indicators to include completion badges and scores, providing clearer feedback on progress.
- Enhanced action buttons with distinct styles for better user experience and accessibility.
- Improved CSS styles for a more modern and responsive design, ensuring a consistent look and feel across the application.
2026-01-20 14:16:22 +01:00
Torsten Schulz (local)
963e0c906c Refactor updateFamilyConversationExercises for improved database queries and clarity
- Replaced direct model queries with raw SQL queries for fetching the Bisaya language and associated courses, enhancing performance and readability.
- Simplified the retrieval of native language information for courses by using a single SQL query with a LEFT JOIN, reducing the number of database calls.
- Updated variable names for better clarity and consistency in the codebase.
2026-01-19 23:40:54 +01:00
Torsten Schulz (local)
089743ac23 Refactor VocabLessonView for improved lesson navigation and user feedback
- Enhanced the loadLesson and checkLessonCompletion methods to streamline lesson transitions and prevent redundant executions, improving user experience.
- Updated navigation logic to utilize more efficient history management, ensuring smoother course and lesson changes.
- Added detailed console logging for better insights during lesson loading and completion checks, aiding in debugging and user interaction.
2026-01-19 23:37:16 +01:00
Torsten Schulz (local)
69ef120677 Enhance VocabService and VocabLessonView for review lesson functionality
- Added logic in VocabService to retrieve vocabulary and lessons from previous lessons for review sessions, improving the learning experience.
- Implemented methods to gather review lessons and vocabulary exercises, ensuring users have access to relevant content during review lessons.
- Updated VocabLessonView to utilize review vocabulary exercises when in a review lesson, enhancing vocabulary extraction and user feedback.
- Improved console logging for better insights into the vocabulary processing flow, aiding in debugging and user interaction.
2026-01-19 23:33:45 +01:00
Torsten Schulz (local)
202002358a Enhance transformation exercise formatting and improve choice option generation in VocabLessonView
- Added formatting for transformation exercises to display prompts as "Übersetze 'X' ins Bisaya", improving clarity for users.
- Updated the buildChoiceOptions method to exclude the prompt from the choice options, ensuring a more relevant selection for multiple choice questions.
- Enhanced console logging to provide better insights into the prompt and answer during choice option creation, aiding in debugging and user feedback.
2026-01-19 23:10:01 +01:00
Torsten Schulz (local)
14eb28d37f Refactor family vocabulary exercises generation for improved flexibility
- Replaced static family vocabulary exercises with a dynamic structure that generates exercises based on native language input, enhancing adaptability for different languages.
- Introduced a mapping for family words and their translations, allowing for a more comprehensive and organized approach to exercise creation.
- Updated logging to include native language context during exercise generation, improving clarity for developers and users.
- Streamlined the gap fill and transformation exercises to ensure accurate and relevant content for learners.
2026-01-19 22:59:46 +01:00
Torsten Schulz (local)
81dbbdd6f5 Add family vocabulary exercises in Bisaya course content
- Introduced a new set of multiple choice and gap fill exercises focused on family-related vocabulary in Bisaya, enhancing language learning.
- Included detailed explanations for each term to provide context and aid understanding for learners.
- Removed dummy exercises for unknown lessons, streamlining the exercise return logic for better user experience.
2026-01-19 22:48:10 +01:00
Torsten Schulz (local)
594b3dac4a Refactor Bisaya course exercises for clarity and consistency
- Updated gap fill and multiple choice exercises to streamline content and improve user understanding.
- Simplified question structures and reduced the number of gaps in exercises for better engagement.
- Enhanced explanations for phrases to provide clearer context and meaning for learners.
2026-01-19 21:57:15 +01:00
Torsten Schulz (local)
ef2b279df6 Refactor exercise handling and improve user feedback in VocabLessonView
- Enhanced the exercise display logic to provide clearer feedback on available grammar exercises, improving user engagement.
- Updated conditional rendering to ensure accurate handling of lesson and exercise data, reducing potential errors.
- Improved logging for exercise counts and active tab states, aiding in debugging and performance monitoring.
2026-01-19 21:52:13 +01:00
Torsten Schulz (local)
2ffd7a6151 Add new survival phrases and exercises in Bisaya course content
- Introduced a comprehensive set of survival phrases in Bisaya, including multiple choice and gap fill exercises to enhance language learning.
- Added detailed explanations for each phrase to aid understanding and context for learners.
- Structured content into two parts for better organization and accessibility, ensuring a progressive learning experience.
- Updated existing exercises to include new vocabulary and improve user engagement with practical language use.
2026-01-19 21:31:18 +01:00
Torsten Schulz (local)
44ce6636c0 Refactor answer checking logic in VocabService to support multiple exercise types
- Updated the _checkAnswer method to handle both multiple choice and gap fill exercises more effectively.
- Enhanced the extraction of correct answers and alternatives based on exercise type, improving accuracy in answer validation.
- Added JSON parsing for answer and question data to ensure compatibility with various input formats.
- Improved fallback mechanisms for answer checking to accommodate different data structures.
2026-01-19 19:35:41 +01:00
Torsten Schulz (local)
8f55f63f77 Enhance logging and conditional rendering in VocabService and VocabLessonView
- Added detailed logging in VocabService for lesson retrieval, including lesson ID, title, and exercise count.
- Improved conditional rendering in VocabLessonView to handle cases where grammar exercises may not be present, enhancing user experience.
- Updated logging in VocabLessonView to provide insights into loaded lessons and exercises, aiding in debugging and monitoring.
2026-01-19 19:12:54 +01:00
Torsten Schulz (local)
196b74bebb Enhance VocabLessonView and VocabService with new learning features
- Added a tabbed interface in VocabLessonView for 'Learn' and 'Exercises' sections, improving user navigation.
- Implemented logic to display important vocabulary and cultural notes in the learning section.
- Updated exercise result display to include correct answers and alternatives for better user feedback.
- Enhanced VocabService to extract correct answers and alternatives from exercise data, supporting the new UI features.
- Added new translations for vocabulary-related terms in both English and German, ensuring consistency across the application.
2026-01-19 16:41:10 +01:00
Torsten Schulz (local)
4e5ddc8027 Enhance VocabLessonView and VocabService for grammar exercise handling
- Added logic to initialize grammar exercises directly from lesson data or load them separately if not included.
- Introduced a new method to initialize answer arrays for gap fill exercises, improving user interaction and response tracking.
- Updated comments for clarity on the exercise loading process and initialization logic.
2026-01-19 15:33:15 +01:00
Torsten Schulz (local)
0572a0eb50 Add grammar exercise creation in course generation
- Integrated functionality to create example grammar exercises for grammar lessons during course creation.
- Added a new helper function to generate gap fill and multiple choice exercises based on lesson data.
- Enhanced logging to confirm the number of grammar exercises created, improving feedback during course setup.
2026-01-19 15:15:24 +01:00
Torsten Schulz (local)
c13cb40c7b Add lesson retrieval functionality in VocabController and VocabService
- Introduced a new method in VocabService to fetch lesson details, including access control based on user ownership and lesson visibility.
- Updated VocabController to wrap the new method for user access.
- Added a new route in VocabRouter to handle requests for specific lessons.
- Enhanced VocabCourseListView to support navigation to individual lesson views, improving user experience in accessing lesson content.
2026-01-19 15:07:52 +01:00
Torsten Schulz (local)
64f4468664 Add endpoint to retrieve all available languages in VocabController and VocabRouter
- Introduced a new method in VocabService to list all languages from the database.
- Updated VocabController to wrap the new method for user access.
- Added a new route in VocabRouter to handle requests for all languages.
- Modified VocabCourseListView to utilize the new endpoint for loading languages, enhancing the course selection experience.
2026-01-19 14:23:37 +01:00
Torsten Schulz (local)
891420cb09 Refactor VocabService to improve direct property handling and enhance language loading
- Updated VocabService to calculate direct where properties after setting all direct properties, ensuring accurate query conditions.
- Enhanced filtering of AND conditions to remove empty objects before assignment, improving query efficiency.
- Added logic to load native language names for courses, ensuring accurate mapping of language IDs to names.
- Improved comments for clarity on the new logic and its implications on course retrieval.
2026-01-19 14:07:16 +01:00
Torsten Schulz (local)
89ec084106 Refactor VocabService to improve boolean parameter handling and enhance debugging
- Updated VocabService to convert string parameters for course retrieval into booleans, ensuring accurate filtering based on user input.
- Added detailed debug logging to track the state of query conditions and the final WHERE clause, aiding in troubleshooting and performance analysis.
- Improved comments for clarity on the logic and implications of the changes made.
2026-01-19 13:52:27 +01:00
Torsten Schulz (local)
a7a0daaf82 Enhance VocabService to combine AND conditions in query filtering
- Updated VocabService to combine AND conditions with direct where properties when both are present, improving query accuracy.
- Added comments for better understanding of the new logic and its implications on course retrieval.
2026-01-19 13:14:13 +01:00
Torsten Schulz (local)
df5c2a3141 Enhance VocabService logging and update VocabCourseListView state management
- Added debug logging in VocabService to track course retrieval details, aiding in troubleshooting and performance monitoring.
- Updated VocabCourseListView to include additional state properties for managing share codes and search functionality, improving user experience and interaction capabilities.
2026-01-19 13:03:06 +01:00
Torsten Schulz (local)
f902f5298c Refactor native language filtering in VocabService and update frontend handling
- Simplified the logic for filtering courses by native language in VocabService, allowing for better handling of undefined and null values.
- Enhanced the VocabCourseListView to clarify the behavior of nativeLanguageId based on user selection, ensuring accurate course retrieval based on language preferences.
- Improved comments in both files for better understanding of the filtering logic and its implications on course visibility.
2026-01-19 12:09:48 +01:00
Torsten Schulz (local)
ddd038761b Enhance language course creation script to support public courses
- Updated the script to create public language courses for various target and native languages without requiring an ownerHashedId.
- Implemented a function to find or create a system user for course ownership, ensuring automatic user assignment.
- Improved documentation to clarify the script's usage and the types of courses created.
2026-01-19 11:47:55 +01:00
Torsten Schulz (local)
09e53244d9 Add native language support in vocab course management
- Introduced a new field for native language in the VocabCourse model to allow learners to specify their native language.
- Updated the VocabService to handle native language during course creation and retrieval, including filtering options.
- Enhanced the database schema to include foreign key constraints for native language.
- Updated frontend components to support native language selection and display in course listings.
- Added internationalization strings for native language features in both German and English.
2026-01-19 11:43:38 +01:00
Torsten Schulz (local)
714e144329 Add course retrieval by share code feature and enhance course search functionality
- Implemented a new endpoint in VocabController to retrieve courses using a share code.
- Updated VocabService to include logic for validating share codes and checking course access permissions.
- Enhanced course listing functionality with search and language filtering options in the frontend.
- Added a dialog for users to input share codes and search for courses, improving user experience.
- Updated internationalization files to include new strings for share code functionality and search features.
2026-01-19 11:33:20 +01:00
Torsten Schulz (local)
e1b3dfb00a Refactor navigation structure to enhance language learning features
- Renamed 'vocabtrainer' to 'sprachenlernen' in the navigation structure for better clarity.
- Introduced a nested structure under 'sprachenlernen' for 'vocabtrainer' and 'sprachkurse', improving organization of language-related resources.
- Updated internationalization files for both German and English to reflect the new naming and structure, ensuring consistency across the application.
2026-01-19 11:24:46 +01:00
Torsten Schulz (local)
b6a4607e60 Implement vocab course and grammar exercise features in backend and frontend
- Added new course management functionalities in VocabController, including creating, updating, and deleting courses and lessons.
- Implemented enrollment and progress tracking for courses, along with grammar exercise creation and management.
- Updated database schema to include tables for courses, lessons, enrollments, and grammar exercises.
- Enhanced frontend with new routes and views for course listing and details, including internationalization support for course-related texts.
- Improved user experience by adding navigation to courses from the main vocab trainer view.
2026-01-19 10:58:53 +01:00
Torsten Schulz (local)
59c05b3628 Implement job hierarchy and region depth calculations in FalukantService; enhance PoliticsView with own position highlighting
- Added a job hierarchy mapping to determine positions based on their rank.
- Introduced asynchronous region depth calculations to determine the hierarchy of regions.
- Updated the mapping of office data to include job hierarchy levels and region depths.
- Enhanced the PoliticsView to highlight the user's own positions with a distinct style.
- Implemented a method to load the user's character ID for position comparison.
2026-01-16 16:25:22 +01:00
Torsten Schulz (local)
a17e8537fb Enhance character name resolution in enrichNotificationsWithCharacterNames function
- Introduced sets for collecting first name and last name IDs to improve character name enrichment.
- Implemented batch loading of first names and last names, optimizing database queries.
- Added a helper function to resolve names from character first and last name IDs, enhancing notification data with resolved character names.
- Improved logic for attaching resolved names to notifications, prioritizing name resolution from IDs over fallback methods.
2026-01-15 13:33:54 +01:00
Torsten Schulz (local)
b706191a0e Refactor effect handling in enrichNotificationsWithCharacterNames to improve data parsing
- Simplified the logic for processing notification effects by consolidating the JSON parsing into a single conditional check, enhancing code readability and maintainability.
- Ensured consistent handling of effects regardless of their initial format, improving robustness in notification enrichment.
2026-01-15 09:28:00 +01:00