I am a high school CS teacher and I would like to use CodinGame in my classroom to make things a little more exciting. Is there a way I can easily track my students progress? I would like to assign them puzzles from week to week as either grades or extra credit. Thanks.
3 Likes
Interesting idea. I wish I had such facilities to play with in my old school days…
In Compete > Leaderboards you can view anyone’s performance. Perhaps it is what you want.
Ask your students to fill in the correct “school/company” name to make sorting easier.
1 Like
I’m high school teacher as well Maybe this will help you a bit. I wrote a little google script that imports students XP to a spreadsheet. This is my script:
function doPost(id) {
try {
const apiUrl = "https://www.codingame.com/services/CodinGamerRemoteService/findCodingamePointsStatsByHandle";
const payload = [id];
var options = {
"method": "POST",
"contentType": "application/json",
"payload" : JSON.stringify(payload)
};
var response = UrlFetchApp.fetch(apiUrl, options);
return JSON.parse(response).success.codingamer.xp;
} catch(err) {
return 0;
}
};
function reevaluate() {
var sheet = SpreadsheetApp.openById('<your spreadsheet id>').getSheetByName("<your sheet name>");
var startRow = 2;
var endRow = sheet.getLastRow();
var dataRange = sheet.getRange('B' + startRow + ':B' + endRow);
var data = dataRange.getValues();
for (var i in data) {
var row = data[i];
var userId = row[0];
const position = startRow + parseInt(i);
sheet.getRange('C' + position + ':C' + position).setValue(doPost(userId));
}
}
Just replace
-
<your spreadsheet id>
with spreadsheetid (check url of spreadsheet after /project/ path) -
<your sheet name>
by literal name of sheet of your spreadsheet -
startRow = 2
ignores first row in spreadsheet (header) - codingame id is parsed from column B (you can find your id in your CG profile url)
- codingame XP is stored to column C