<div dir="ltr">Hi,<div><br></div><div>1. Here the activity comprise of </div><div>i) the preview of words </div><div>ii) three quiz mini games, In the last one we display only those words which have voice available </div><div>iii) the spell game</div><div>-So for example lets say in level 5 we have 20 words and each of them have voice data available then progress will be counted on the base of 100 (20 for preview, 60 for quizzes and 20 for spell). </div><div>- and if out of 20 only 10 words have voice available then total score is 90. and we count progress after previewing or correctly answering a question. So in my point of view its a little activity specific.</div><div><br></div><div>2. yes we are tracking success ( win or loose) and counting progress based on that. But at the same time we are not tracking which word is learnt and which not. we are counting the total correct submissions.</div><div><br></div><div>3. yes the progress is level based we have to store progress for each level, so the possible candidates i see now are</div><div> i) The settings file</div><div> ii) json-file in a user-writable QStandardPath, which could entirely be managed on the qml-layer.</div><div><font color="#000000"><span style="white-space:pre-wrap"> iii) Activity base</span></font></div><div><br></div><div>4. <span style="color:rgb(0,0,0);white-space:pre-wrap">'consume'/'restore' the progress will be the activity itself. because the progress is calculated at run time and its activity specific.</span></div><div><span style="color:rgb(0,0,0);white-space:pre-wrap"><br></span></div><div><font color="#000000"><span style="white-space:pre-wrap">Thanks for your views, would like to hear from you based on these points too. :)</span></font></div><div><font color="#000000"><span style="white-space:pre-wrap">Siddhesh</span></font></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 2, 2015 at 4:53 PM, Johnny Jazeix <span dir="ltr"><<a href="mailto:jazeix@gmail.com" target="_blank">jazeix@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">From: Holger Kaelberer <<a href="mailto:hk@elberer.de">hk@elberer.de</a>><br>
Date: 2015-07-01 21:02 GMT+02:00<br>
Subject: Re: [GCompris-devel] saving the progress for Lang activity.<br>
To: <a href="mailto:gcompris-devel@kde.org">gcompris-devel@kde.org</a><br>
<br>
<br>
Hi,<br>
<br>
some random thoughts:<br>
<br>
- What is "progress"? Simply a <levels-done>/<levels-max>? Might be<br>
enough for many activities. Or do we also want to consider sublevels?<br>
Or do we have to consider an activity-specific "progress" beyond<br>
levels/sublevels? (How would this look like for the lang-activities?<br>
Thinking of an index into a word-list or so ...)<br>
<br>
- Do we also want to track success (win vs. loose) in this way to<br>
allow for a teacher to react to pupils problems. (A feature that was<br>
talked about in the context of a live feedback to a teacher via<br>
admin-interface call.)<br>
<br>
- How to store it? A config/ini-file in the sense of seperate<br>
QSettings instance would probably mean to code it in C++. If we're<br>
only talking about a <levels-done>/<levels-max> percentage the<br>
settings file we have so far could also be reused to store progress in<br>
an [SomeActivity] group. An option could be to store things in a<br>
json-file in a user-writable QStandardPath, which could entirely be<br>
managed on the qml-layer. Not sure if using a database on the (client)<br>
device is necessary or of benefit.<br>
<br>
- Good idea to handle the basics of saving/restoring progress in<br>
ActivityBase. At least simple (level/sublevel-based) progress<br>
information could be tracked by the base class. Maybe with the option<br>
to extend it by a concrete activity if there is a need for activity<br>
specific progress details?<br>
<br>
- How would 'consume'/'restore' the progress? Two candidates:<br>
<br>
1. the activity itself, to restart at a given progress level.<br>
<br>
2. An admin activity. In this case activity-specific progress/state<br>
might not be of use, because the presenting UI might not know about<br>
the activity specific context.<br>
<br>
Holger<br>
<br>
On 27.06.2015 22:20, JAZEIX Johnny wrote:<br>
><br>
> Hi,<br>
><br>
> to be more precise, the point here is to see how we can have a generic solution to provide activity<br>
> progress and status to users (either teachers, parents or even children).<br>
><br>
> The proposed solution is to use a new config file containing only the statistics for all the activities.<br>
> Then, it should be easy to create views for teachers and users. I don't think saving it in a qml is<br>
> interesting (you probably misunderstood why I was talking about qml, it's for the translations not<br>
> for saving stats).<br>
> A simple .ini file like for configuration could be enough. Then, we need to think if there is an<br>
> interest to use a database instead (maybe easier for integration with the admin interface? We can<br>
> even think of having an activity showing the progress :))?<br>
><br>
> For the coding part, we should probably have a qml element doing all the job and use it in the<br>
> activities (maybe in the ActivityBase so loading/saving can be handled there).<br>
<span class="">><br>
> On 06/27/15 15:04, Siddhesh Suthar wrote:<br>
>><br>
>> hello,<br>
>><br>
>> I am porting language learning activities. Its almost complete. Now i have to save the progress of<br>
>> words which a user has learnt per lesson wise.<br>
>><br>
>> The current idea I discussed with JohnnyJ is to save the progress in a qml file inside<br>
>> (resource/data) of the activity. then, we need to see how to define the format.<br>
>> There can be different approaches to it.<br>
>><br>
</span>>> 1. we store only the savedProgress corresponding to its lesson, and everything else for the<br>
<span class="">>> menuModel will be fetched from words.json through lang_api<br>
>><br>
</span>> To precise a little, savedProgress is a js variable storing while playing the activity the percent<br>
> of completed words for the current word category. It is not yet permanent so every time the user<br>
> restarts GCompris, the progress is reinitialized.<br>
>><br>
>><br>
>> 1. we also have to think if we can make this saving generic and where do we store it (as I don't<br>
<span class="">>> think it is great to save it in configuration file because then as we want this to be<br>
>> potentially usable by other activities, putting these in the config file don't look like to be<br>
>> a good idea).<br>
</span>>> 2. johnny jazeix added: I would prefer a special file for all the progresses because then, if<br>
<span class="">>> the teacher wants to retrieve all the stats for a child, only one file with only necessary<br>
>> data would be better instead of all the config file.<br>
</span>>> 3. In json, we can't translate (use qsTr()) but you can in qml, so it was more to provide the<br>
<span class="">>> translators all the strings in the same translation file they already use.<br>
>><br>
</span>> The last point is not useful for the current issue ;).<br>
><br>
> Johnny<br>
<span class="">><br>
>> I would love to hear your ideas about it. Want to know what can be the best approach for it.<br>
>><br>
>> Siddhesh suthar<br>
>><br>
>><br>
>><br>
</span>>> _______________________________________________<br>
>> GCompris-devel mailing list<br>
>> <a href="mailto:GCompris-devel@kde.org">GCompris-devel@kde.org</a><br>
>> <a href="https://mail.kde.org/mailman/listinfo/gcompris-devel" rel="noreferrer" target="_blank">https://mail.kde.org/mailman/listinfo/gcompris-devel</a><br>
><br>
><br>
><br>
><br>
> _______________________________________________<br>
> GCompris-devel mailing list<br>
> <a href="mailto:GCompris-devel@kde.org">GCompris-devel@kde.org</a><br>
> <a href="https://mail.kde.org/mailman/listinfo/gcompris-devel" rel="noreferrer" target="_blank">https://mail.kde.org/mailman/listinfo/gcompris-devel</a><br>
><br>
_______________________________________________<br>
GCompris-devel mailing list<br>
<a href="mailto:GCompris-devel@kde.org">GCompris-devel@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/gcompris-devel" rel="noreferrer" target="_blank">https://mail.kde.org/mailman/listinfo/gcompris-devel</a><br>
</blockquote></div><br></div>