Jump to content

GSoC/2025/StatusReports/AshutoshSingh

From KDE Community Wiki

Developing Dataset Editors for GCompris Activities

This projects aims to add more dataset editors to gcompris activities ,enabling teachers to easily create and customize datasets through Intuitive GUI editors.

Mentor

Johnny Jazeix, Charruau Emmanuel

Work Report

Week 0: Community Bonding Period

  • Tasks Done:
    • Set up the development environment on Fedora and compiled and ran GCompris in QtCreator.
    • Explored QML and JavaScript basics by building small practice apps (Memory Game [1], To-Do App, Tic-Tac-Toe [2]).
    • Understood GCompris project structure and workflows.
    • Connected with mentors and established pace to begin working on the project.
  • Difficulties Faced:
    • Initially struggled with learning QML and navigating the large GCompris codebase.

---

Week 1–3: LearnDecimals Dataset Editor

  • Tasks Done:
    • Began work on the LearnDecimals editor within GCompris-Teacher.
    • Structured the GUI layout using two dynamic ListModel prototypes (mainPrototype for dataset-level fields, subPrototype for dataset content inputs).
    • Created a visual flowchart with Mermaid to map the logic in `learnDecimals.js`, which improved overall understanding.
    • Delivered a working editor for both LearnDecimals and LearnQuantities, with string translation issues still pending.
  • Difficulties Faced:
    • Required extra time to fully understand the workflow in `learnDecimals.js`, leading to the decision to create a visual flowchart for clarity.

---

Week 3–5: UI Fixes & LearnDecimals Enhancements

  • Tasks Done:
    • Fixed editor UI breaks caused by layout issues.
    • Added an editor for LearnDecimals Addition and Subtraction exercises.
    • Refactored the LearnDecimals dataset logic to use a unified format—simplifying parsing, removing redundant conditionals, and streamlining legacy handling. [3]
  • Difficulties Faced:
    • Even minor UI or logic tweaks triggered unexpected behavior due to modular interdependencies.
    • Debugging required heavy use of log statements, QML docs, online resources, and mentor support.
    • Numerous QML warnings appeared during testing—these didn’t break functionality but were distracting.

---

Post Mid-Term Evaluation (July 14–18, 2025)

  • Tasks Done:
    • Reflected on progress—from environment setup and understanding GCompris internals to delivering dataset editors for LearnDecimals.
    • Re-evaluated the project scope and reduced activities:
 * Initially proposed: LearnDecimals, Graduated Lines, Fractions Create/Use, Share, Grammar Analysis.  
 * Dropped: Share, Grammar Analysis.  
    • Deliverables at this stage included editors for LearnDecimals, LearnQuantities, and LearnDecimals Addition/Subtraction, with several patches (major and minor) still pending.
  • Difficulties Faced:
    • Progress was slower than expected due to balancing debugging, learning internals, and feature development simultaneously.
    • Frequent need to research QML and existing code slowed overall pace.

---

Week 7–11

  • Tasks Done:
    • Started work on the Graduated Line Read and Use activities.
    • Implemented support for random datasets.
    • Began fixing support for fixed datasets.
    • Restructured dataset format to better separate fixed and random modes.
    • Added basic editor validation (e.g., ensuring `rangeMin < rangeMax`). More advanced dataset validation planned as future work.
  • Difficulties Faced:
    • While much of the work appeared simple due to shared code among activities, challenges arose with `FieldEdit` [4]. (FieldEdit.qml is responsible for returning different custom components for example : a string array , a spinBox etc as required.)
    • Initially attempted to reuse the same field for different input types, but this conflicted with maintaining a modular and generic design. The solution required separating fields (`stepFixed` for fixed datasets, `steps` for random datasets) to keep the component reusable across multiple activities.

Links to Blogs and other writing

[5] Blog Posts.

Merge Requests

https://invent.kde.org/education/gcompris/-/merge_requests/252

https://invent.kde.org/education/gcompris/-/merge_requests/255