GSoC/2020/StatusReports/ShubhamMishra: Difference between revisions

From KDE Community Wiki
< GSoC‎ | 2020‎ | StatusReports
 
(20 intermediate revisions by the same user not shown)
Line 15: Line 15:
Previously activity had 13 levels out of which 7 levels work with symbols and rest 6 uses numbers.
Previously activity had 13 levels out of which 7 levels work with symbols and rest 6 uses numbers.


I have added multiple datasets features in this activity as described in the below task description link. Luckily, the implementation went smoothly for me without any unexpected behavior or bug. Later I spend a lot of time testing all the levels and also asked my family members for user testing.
I have added multiple datasets features in this activity as described in the below task description link. Luckily, the implementation went smoothly for me without any unexpected behavior or bug. <br>
Later I spend a lot of time testing all the levels and also asked my family members for user testing.
[[File:Sudoku multiple datasets.gif|frame|center|Presentation of multiple datasets in Sudoku activity]]
[[File:Sudoku multiple datasets.gif|frame|center|Presentation of multiple datasets in Sudoku activity]]
Link to the task description: https://phabricator.kde.org/T13108
Link to the task description: https://phabricator.kde.org/T13108
Line 23: Line 24:
==== Adding multiple datasets to Share pieces of candy Activity ====
==== Adding multiple datasets to Share pieces of candy Activity ====
As the name suggests, in this activity pupils have to equally distribute candies between their friends.  
As the name suggests, in this activity pupils have to equally distribute candies between their friends.  
 
We initially planned to have only 2 datasets in the activity, in a first type, it is always possible to distribute all the candies among friends while there will be some extra candies left in second.<br>
We initially planned to have only 2 datasets in the activity, In the first type, It is always possible to distribute all the candies among friends while there will be some extra candies left in second.
Later, we decided to have a third dataset too specifically for random levels to make numbers of candies and friends unpredictable.<br>
Later, we decided to have a third dataset too specifically for random levels to make amount candies and friends unpredictable.
The activity has lots of strings as instruction which are very much prone to errors, I gave special attention to instruction while updating each level's content. To make sure that they sync with the other keys.  


[[File:share_json.png|frame|center|Backend view of multiple datasets]]
[[File:share_json.png|frame|center|Backend view of multiple datasets]]
Line 33: Line 34:


==== Adding multiple datasets to Locate the region Activity ====
==== Adding multiple datasets to Locate the region Activity ====
Pupils have to drag and drop different regions on the maps of the country.
The activity had 16 mixed levels of different countries.
I have added multiple datasets in the activity to categorize those levels continent wise.
Implementation for the activity is quite straight forward, As It inherits the code from babymatch activity. So, just making the boolean property "useMultipleDataset" = true and adding dataset files worked in this case.<br>
Levels for this activity are defined in external files called "boards" such that each level corresponds to one board. Writing whole data of a level/board in a dataset file can make it very long and messy so we found it is better to add only board's links in the datasets.
[[File:GeoCountry dataset.png|frame|center|Multiple dataset of Geocountry activity]]


Link to the task description: https://phabricator.kde.org/T13111
Link to the task description: https://phabricator.kde.org/T13111
Line 38: Line 48:
Link to the branch: https://invent.kde.org/education/gcompris/-/tree/gsoc_2020_shubham_geo-country
Link to the branch: https://invent.kde.org/education/gcompris/-/tree/gsoc_2020_shubham_geo-country


==== Adding multiple datasets to Categorizations Activity ====
In Categorization, pupils have to identify and categorize elements into correct and incorrect groups.


==== Adding multiple datasets to Categorizations Activity ====
I have added multiple datasets in the activity, ported previous configuration options to the new Activity Config while taking care of the "Download missing Image" dialog box, So it was a challenging task to deal with all of them together.


Link to task description: https://phabricator.kde.org/T13112
Link to task description: https://phabricator.kde.org/T13112
Line 45: Line 57:
Link to the branch: https://invent.kde.org/education/gcompris/-/tree/gsoc_2020_shubham_categorization
Link to the branch: https://invent.kde.org/education/gcompris/-/tree/gsoc_2020_shubham_categorization


==== Adding multiple datasets to Gnumch Equality and Inequality Activity ====
Activities are little bit similar to the game Pacman with the purpose of teaching addition, multiplication, division, and subtraction.


==== Adding multiple datasets to Gnumch Equality and Inequality Activity ====
Gnumch Equality and Gnumch Inequality are two activities that use the same code. So I worked on both of them together. I added datasets to these two activities while making sure to not break other activities which inherits Gnumch. I also extended these activities functionality from addition and subtraction to support multiplication and division levels too.<br>
There was a bug in the activity, It's starting from level 2 instead of 1. I also spend time in tracking the source of this bug and fixed it.


[[File:Gnumch.gif|frame|center|Multiple datasets in Gnumch equality]]
Link to task description: https://phabricator.kde.org/T13113
Link to task description: https://phabricator.kde.org/T13113


Link to the Merge Request: https://invent.kde.org/education/gcompris/-/merge_requests/28
Link to the Merge Request: https://invent.kde.org/education/gcompris/-/merge_requests/28


==== Adding multiple datasets to Crane Activity ====
The activity goal is to teach motor-coordination. It had 16 levels mixed with words and images.


==== Adding multiple datasets to Crane Activity ====
I categorized these levels in different datasets depends on whether level is based on images or words of the same lengths. In this activity, We do not need an exact translation for words, just replacing a word with the other same length word would be enough. So, I have only added the key "wordLength" in the dataset and keep the word lists in javascript file only for translators. Also, code has the functionality to use words given by datasets for that anyone has to replace a key "wordLength" with key "word": "cat". This feature has been implemented after taking account the future use case of Gcompris with server mode. Images URL lists are still there in dataset file like any other activity.
[[File:Crane gif.gif|frame|center|Working demo of build the same model activity]]


Link to task description: https://phabricator.kde.org/T13115
Link to task description: https://phabricator.kde.org/T13115
Line 59: Line 79:
Link to the Merge Request: https://invent.kde.org/education/gcompris/-/merge_requests/30
Link to the Merge Request: https://invent.kde.org/education/gcompris/-/merge_requests/30


==== Adding multiple datasets to Find the details Activity ====


==== Adding multiple datasets to Find the detials Activity ====
The activity is about to locate and place small part of an image on its larger version. Activity had 21 levels mixed with paintings, simple photographs, and complex photographs.


I have added three datasets to categorize them according to difficulty levels. This activity is also a child activity of babymatch, so implementation was straight forward. I do not need to deal with javascript, simply adding datasets file works for me.<br>
Datasets for this activity looks same as datasets to locate the region activity.
Link to task description: https://phabricator.kde.org/T13116
Link to task description: https://phabricator.kde.org/T13116


Line 68: Line 92:
== Link to the Blogs ==
== Link to the Blogs ==


* [https://shubham828.github.io/First-Evalusation/ First Evaluation]
* [https://shubham828.github.io/Final_Evaluation/ Final Evaluation]
* [https://shubham828.github.io/Week-6-7-8/ Week 6-7-8]
* [https://shubham828.github.io/First-Evaluation/ First Evaluation]
* [https://shubham828.github.io/First-Milestone/ First Milestone ]
* [https://shubham828.github.io/First-Milestone/ First Milestone ]
* [https://shubham828.github.io/Coding-officially-begins/ Coding officially begins]
* [https://shubham828.github.io/Coding-officially-begins/ Coding officially begins]

Latest revision as of 14:30, 26 August 2020

GCompris: Multiple Datasets

Project Overview

GCompris has been working on adding multiple datasets to make the difficulty range of activities wider. This way the same activity can be easily configured to be played by pupils of different ages or capabilities. and in this GSoC, I am taking forward my SoK work and adding multiple datasets to some more activities.

Mentors

Milestones Achieved

Adding multiple datasets to Sudoku Activity

In this activity, pupils have to solve sudokus of different sizes and difficulty levels. Previously activity had 13 levels out of which 7 levels work with symbols and rest 6 uses numbers.

I have added multiple datasets features in this activity as described in the below task description link. Luckily, the implementation went smoothly for me without any unexpected behavior or bug.
Later I spend a lot of time testing all the levels and also asked my family members for user testing.

Presentation of multiple datasets in Sudoku activity

Link to the task description: https://phabricator.kde.org/T13108

Link to the branch: https://invent.kde.org/education/gcompris/-/tree/gsoc_2020_shubham_sudoku

Adding multiple datasets to Share pieces of candy Activity

As the name suggests, in this activity pupils have to equally distribute candies between their friends. We initially planned to have only 2 datasets in the activity, in a first type, it is always possible to distribute all the candies among friends while there will be some extra candies left in second.
Later, we decided to have a third dataset too specifically for random levels to make numbers of candies and friends unpredictable.
The activity has lots of strings as instruction which are very much prone to errors, I gave special attention to instruction while updating each level's content. To make sure that they sync with the other keys.

Backend view of multiple datasets

Link to task description: https://phabricator.kde.org/T13110

Link to the branch: https://invent.kde.org/education/gcompris/-/tree/gsoc_2020_shubham_share_pieces_of_candy

Adding multiple datasets to Locate the region Activity

Pupils have to drag and drop different regions on the maps of the country. The activity had 16 mixed levels of different countries.

I have added multiple datasets in the activity to categorize those levels continent wise. Implementation for the activity is quite straight forward, As It inherits the code from babymatch activity. So, just making the boolean property "useMultipleDataset" = true and adding dataset files worked in this case.
Levels for this activity are defined in external files called "boards" such that each level corresponds to one board. Writing whole data of a level/board in a dataset file can make it very long and messy so we found it is better to add only board's links in the datasets.

Multiple dataset of Geocountry activity

Link to the task description: https://phabricator.kde.org/T13111

Link to the branch: https://invent.kde.org/education/gcompris/-/tree/gsoc_2020_shubham_geo-country

Adding multiple datasets to Categorizations Activity

In Categorization, pupils have to identify and categorize elements into correct and incorrect groups.

I have added multiple datasets in the activity, ported previous configuration options to the new Activity Config while taking care of the "Download missing Image" dialog box, So it was a challenging task to deal with all of them together.

Link to task description: https://phabricator.kde.org/T13112

Link to the branch: https://invent.kde.org/education/gcompris/-/tree/gsoc_2020_shubham_categorization

Adding multiple datasets to Gnumch Equality and Inequality Activity

Activities are little bit similar to the game Pacman with the purpose of teaching addition, multiplication, division, and subtraction.

Gnumch Equality and Gnumch Inequality are two activities that use the same code. So I worked on both of them together. I added datasets to these two activities while making sure to not break other activities which inherits Gnumch. I also extended these activities functionality from addition and subtraction to support multiplication and division levels too.
There was a bug in the activity, It's starting from level 2 instead of 1. I also spend time in tracking the source of this bug and fixed it.

Multiple datasets in Gnumch equality

Link to task description: https://phabricator.kde.org/T13113

Link to the Merge Request: https://invent.kde.org/education/gcompris/-/merge_requests/28

Adding multiple datasets to Crane Activity

The activity goal is to teach motor-coordination. It had 16 levels mixed with words and images.

I categorized these levels in different datasets depends on whether level is based on images or words of the same lengths. In this activity, We do not need an exact translation for words, just replacing a word with the other same length word would be enough. So, I have only added the key "wordLength" in the dataset and keep the word lists in javascript file only for translators. Also, code has the functionality to use words given by datasets for that anyone has to replace a key "wordLength" with key "word": "cat". This feature has been implemented after taking account the future use case of Gcompris with server mode. Images URL lists are still there in dataset file like any other activity.

Working demo of build the same model activity

Link to task description: https://phabricator.kde.org/T13115

Link to the Merge Request: https://invent.kde.org/education/gcompris/-/merge_requests/30

Adding multiple datasets to Find the details Activity

The activity is about to locate and place small part of an image on its larger version. Activity had 21 levels mixed with paintings, simple photographs, and complex photographs.

I have added three datasets to categorize them according to difficulty levels. This activity is also a child activity of babymatch, so implementation was straight forward. I do not need to deal with javascript, simply adding datasets file works for me.
Datasets for this activity looks same as datasets to locate the region activity.

Link to task description: https://phabricator.kde.org/T13116

Link to the Merge Request: https://invent.kde.org/education/gcompris/-/merge_requests/36

Link to the Blogs

Link to the proposal

Proposal: link

About me