wizbots / labtab

0 stars 0 forks source link

Several issues in student statistics #40

Closed internetmosquito closed 7 years ago

internetmosquito commented 7 years ago

Looks like there are several issues here:

For instance for this lab, there are 4 students enrolled

selection_072

For first student, Abirami Subramanian says it has 50 projects, 7 Wizchips and 30 Labtime...0 projects completed, 39 skipped and 11 pending

Clicking on the student itself...

selection_073

1.- If level is Imagineer (light bulb) for this user, how is it possible superior levels have Projects Number column with values? Is just static data indicating the number of projects per level or indicates the total number of projects this student has completed / skipped / pending for this level?

2.- Why there is no completed projects? This happens for ALL students in all projects, all labs...this is weird...how is it possible? Is this returned from server? Might this because is staging?

@kapoorutd Please let me know if this is because the server is returning these values or this is frontend related...

internetmosquito commented 7 years ago

more troubles, the list of levels when clicking binoculars on a student is not ordered the same way, what criteria is being used to sort this table...

This is one student

selection_077

An this is another student

selection_078

It's ok top row is the current level and gets repeated, but the rows underneath should be always be ordered the same way...by Level I'd say

kapoorutd commented 7 years ago

@internetmosquito 1.- If level is Imagineer (light bulb) for this user, how is it possible superior levels have Projects Number column with values? Is just static data indicating the number of projects per level or indicates the total number of projects this student has completed / skipped / pending for this level? Ans: number of projects includes completed,skipped,pending.

2.- Why there is no completed projects? This happens for ALL students in all projects, all labs...this is weird...how is it possible? Is this returned from server? Might this because is staging?

Ans: it comes from server. please find the api and response: API: http://test.wizbots.com/api/students/53153e44f5fa0256b82a9f74 Response:

{ "enrollments_count": "0", "last_name": "Subramanian", "date_of_birth": "2006-06-06 07:00:00", "creator": { "phone_2": "", "email": "yeshsub@pacbell.net", "phone_1": "6505333839" }, "grade": "3", "wizchips": 12, "after_care_after": "No", "id": "53153e44f5fa0256b82a9f74", "first_name": "Abirami", "level": "Wizard", "absence_count": "39", "allergies": "", "special_needs": "", "after_care_before": "No", "projects_history": { "imagineer": { "lab_time": 0, "imagineering": [ "Prototyping" ], "mechanisms": [ "Ackerman Steering", "Slider Crank" ], "programming": [ "Arithmetic Relations", "Compass Sensor Control", "Gyroscope Sensor Control", "Magnetic Sensor Control", "Rotation Sensor Control", "Variables" ], "structures": [], "projects": [ { "projectStatus": "SKIPPED", "projectName": "counting" }, { "projectStatus": "SKIPPED", "projectName": "boolean logic" }, { "projectStatus": "SKIPPED", "projectName": "rotation sensor" }, { "projectStatus": "SKIPPED", "projectName": "etch-a-sketch" }, { "projectStatus": "SKIPPED", "projectName": "compass sensor" }, { "projectStatus": "SKIPPED", "projectName": "north pole express" }, { "projectStatus": "SKIPPED", "projectName": "slider crank" }, { "projectStatus": "SKIPPED", "projectName": "magnetic sensor" }, { "projectStatus": "SKIPPED", "projectName": "shell game" }, { "projectStatus": "SKIPPED", "projectName": "ackerman" }, { "projectStatus": "SKIPPED", "projectName": "steering" } ] }, "explorer": { "lab_time": 0, "imagineering": [ "Brainstorming", "Planning" ], "mechanisms": [ "Differential Drive Vehicle" ], "programming": [ "Display Control", "Flow Control - 1", "Speaker Control", "Tool Chain - 2" ], "structures": [ "PVC Pipe Structure", "Rigid Beam", "Wizbits", "Wizbrick", "Zoob Blocks" ], "projects": [ { "projectStatus": "SKIPPED", "projectName": "windscreen wiper" }, { "projectStatus": "SKIPPED", "projectName": "bumper car" }, { "projectStatus": "SKIPPED", "projectName": "hello world!" }, { "projectStatus": "SKIPPED", "projectName": "sound and music" }, { "projectStatus": "SKIPPED", "projectName": "plastic fabtastic" }, { "projectStatus": "SKIPPED", "projectName": "tallest robot" }, { "projectStatus": "SKIPPED", "projectName": "led wand" }, { "projectStatus": "SKIPPED", "projectName": "dancing puppets" }, { "projectStatus": "SKIPPED", "projectName": "parallerl programming" }, { "projectStatus": "SKIPPED", "projectName": "diff drive control" }, { "projectStatus": "SKIPPED", "projectName": "wizball" } ] }, "wizard": { "lab_time": 0, "imagineering": [], "mechanisms": [], "programming": [ "Accelerometer Sensor Control", "Boolean Operators", "Flow Control - 3", "Math Functions", "String manipulation" ], "structures": [], "projects": [ { "projectStatus": "PENDING", "projectName": "algorithms" }, { "projectStatus": "PENDING", "projectName": "gyroscope" }, { "projectStatus": "PENDING", "projectName": "data structures" }, { "projectStatus": "PENDING", "projectName": "accelerometer" }, { "projectStatus": "PENDING", "projectName": "camera" } ] }, "master": { "lab_time": 0, "imagineering": [], "mechanisms": [], "programming": [ "PID Control" ], "structures": [], "projects": [ { "projectStatus": "", "projectName": "objects" }, { "projectStatus": "", "projectName": "networking" }, { "projectStatus": "", "projectName": "behaviors" }, { "projectStatus": "", "projectName": "pid control" }, { "projectStatus": "", "projectName": "segway" } ] }, "lab certified": { "lab_time": 0, "imagineering": [], "mechanisms": [], "programming": [ "Motor Control", "NXT Button Control", "Tool Chain - 1", "Touch Sensor Control" ], "structures": [], "projects": [ { "projectStatus": "SKIPPED", "projectName": "tick tock" }, { "projectStatus": "SKIPPED", "projectName": "hypnotizer" }, { "projectStatus": "SKIPPED", "projectName": "chariot" }, { "projectStatus": "SKIPPED", "projectName": "obstacle course" }, { "projectStatus": "SKIPPED", "projectName": "build strong" }, { "projectStatus": "SKIPPED", "projectName": "castles and catapults" }, { "projectStatus": "SKIPPED", "projectName": "the wizbots way" }, { "projectStatus": "SKIPPED", "projectName": "madlib" } ] }, "maker": { "lab_time": 0, "imagineering": [], "mechanisms": [ "Gearing down", "Gearing up", "Pulley" ], "programming": [ "Flow Control - 2", "Line Following", "Parallel Programming", "Play Station Control - 1" ], "structures": [ "Cantilever" ], "projects": [ { "projectStatus": "SKIPPED", "projectName": "line following" }, { "projectStatus": "SKIPPED", "projectName": "line racing" }, { "projectStatus": "SKIPPED", "projectName": "using the force" }, { "projectStatus": "SKIPPED", "projectName": "drag racing" }, { "projectStatus": "SKIPPED", "projectName": "hoist" }, { "projectStatus": "SKIPPED", "projectName": "elevator" }, { "projectStatus": "SKIPPED", "projectName": "screw gear" }, { "projectStatus": "SKIPPED", "projectName": "slow poke" } ] }, "apprentice": { "lab_time": 0, "imagineering": [ "Troubleshooting" ], "mechanisms": [], "programming": [ "Color Sensor Control", "Distance Sensor Control", "LED Wand", "Light Sensor Control", "Line Following", "Parallel Programming", "Sound Sensor Control" ], "structures": [ "A-Frame", "Cube" ], "projects": [ { "projectStatus": "SKIPPED", "projectName": "troubleshooting" }, { "projectStatus": "SKIPPED", "projectName": "wheel free racing" }, { "projectStatus": "SKIPPED", "projectName": "distance sensor" }, { "projectStatus": "SKIPPED", "projectName": "table top survival" }, { "projectStatus": "SKIPPED", "projectName": "sound sensor" }, { "projectStatus": "SKIPPED", "projectName": "barking dog" }, { "projectStatus": "SKIPPED", "projectName": "light sensor" }, { "projectStatus": "SKIPPED", "projectName": "sun flower" }, { "projectStatus": "SKIPPED", "projectName": "color sensor" }, { "projectStatus": "SKIPPED", "projectName": "red light green light" }, { "projectStatus": "SKIPPED", "projectName": "random numbers" }, { "projectStatus": "SKIPPED", "projectName": "floor sweeper" } ] } }, "after_care_phone": null, "after_care_name": null }

  1. sorted by level in the following manner Novice, Lab Certified, Explorer, Apprentice, Maker, Imagineer, Wizard, Master
internetmosquito commented 7 years ago

@kapoorutd 1.- If level is Imagineer (light bulb) for this user, how is it possible superior levels have Projects Number column with values? Is just static data indicating the number of projects per level or indicates the total number of projects this student has completed / skipped / pending for this level? Ans: number of projects includes completed,skipped,pending. -> This still makes no sense, for levels still not reached this number should be zero, since it's impossible kid has done anything on those yet, nope?

2.- Why there is no completed projects? This happens for ALL students in all projects, all labs...this is weird...how is it possible? Is this returned from server? Might this because is staging? -> Yeah, I'm checking this out on the server

kapoorutd commented 7 years ago

@internetmosquito . when we see the student details then all levels are shown including the projects status like skipped,pending and done. in the projects column, i consider projects as total number of skipped pending and done projects in each level. Please clear in the project column, what values should it consider???
Here , in the projects column , i consider value of project column of each level as total number of completed,skipped and pending projects as per level.

internetmosquito commented 7 years ago

@kapoorutd Check the image below and let me know if its clear

erorrs

kapoorutd commented 7 years ago

@internetmosquito thanks for sharing the image for clearing the doubt. its done as per instructed by you. but for the issue you mentioned in the above image. How can this have values if kid doesnt have those levels yet. -->From server we are getting response where in projects fields there are some projects but project status are "" . -This is the reason , projects column values shows 5 and other column (skip,complete,pending) shows 0. please find the API and response. API: http://test.wizbots.com/api/students/503257e141af8c7bd0000009

Response { "enrollments_count": "0", "last_name": "Mercer", "date_of_birth": "2002-11-10 00:00:00", "creator": { "phone_2": "6509963198", "email": "tiffany@8kb.net", "phone_1": "6508146605" }, "grade": "6", "wizchips": 0, "after_care_after": "No", "id": "503257e141af8c7bd0000009", "first_name": "Asa", "level": "Apprentice", "absence_count": "4", "allergies": null, "special_needs": "Speech can be hard to understand at times. Just gently ask him to slow down and repeat what he said if you cannot understand.", "after_care_before": "No", "projects_history": { "imagineer": { "lab_time": 0, "imagineering": [], "mechanisms": [], "programming": [], "structures": [], "projects": [ { "projectStatus": "", "projectName": "counting" }, { "projectStatus": "", "projectName": "boolean logic" }, { "projectStatus": "", "projectName": "rotation sensor" }, { "projectStatus": "", "projectName": "etch-a-sketch" }, { "projectStatus": "", "projectName": "compass sensor" }, { "projectStatus": "", "projectName": "north pole express" }, { "projectStatus": "", "projectName": "slider crank" }, { "projectStatus": "", "projectName": "magnetic sensor" }, { "projectStatus": "", "projectName": "shell game" }, { "projectStatus": "", "projectName": "ackerman" }, { "projectStatus": "", "projectName": "steering" } ] }, "explorer": { "lab_time": 67, "imagineering": [ "Brainstorming", "Planning" ], "mechanisms": [ "Differential Drive Vehicle" ], "programming": [ "Display Control", "Flow Control - 1", "Speaker Control", "Tool Chain - 2" ], "structures": [ "PVC Pipe Structure", "Rigid Beam", "Wizbits", "Wizbrick", "Zoob Blocks" ], "projects": [ { "projectStatus": "SKIPPED", "projectName": "windscreen wiper" }, { "projectStatus": "SKIPPED", "projectName": "bumper car" }, { "projectStatus": "SKIPPED", "projectName": "hello world!" }, { "projectStatus": "SKIPPED", "projectName": "sound and music" }, { "projectStatus": "SKIPPED", "projectName": "plastic fabtastic" }, { "projectStatus": "SKIPPED", "projectName": "tallest robot" }, { "projectStatus": "SKIPPED", "projectName": "led wand" }, { "projectStatus": "SKIPPED", "projectName": "dancing puppets" }, { "projectStatus": "SKIPPED", "projectName": "parallerl programming" }, { "projectStatus": "SKIPPED", "projectName": "diff drive control" }, { "projectStatus": "SKIPPED", "projectName": "wizball" } ] }, "wizard": { "lab_time": 0, "imagineering": [], "mechanisms": [], "programming": [], "structures": [], "projects": [ { "projectStatus": "", "projectName": "algorithms" }, { "projectStatus": "", "projectName": "gyroscope" }, { "projectStatus": "", "projectName": "data structures" }, { "projectStatus": "", "projectName": "accelerometer" }, { "projectStatus": "", "projectName": "camera" } ] }, "master": { "lab_time": 0, "imagineering": [], "mechanisms": [], "programming": [], "structures": [], "projects": [ { "projectStatus": "", "projectName": "objects" }, { "projectStatus": "", "projectName": "networking" }, { "projectStatus": "", "projectName": "behaviors" }, { "projectStatus": "", "projectName": "pid control" }, { "projectStatus": "", "projectName": "segway" } ] }, "lab certified": { "lab_time": 0, "imagineering": [], "mechanisms": [], "programming": [ "Motor Control", "NXT Button Control", "Tool Chain - 1", "Touch Sensor Control" ], "structures": [], "projects": [ { "projectStatus": "SKIPPED", "projectName": "tick tock" }, { "projectStatus": "SKIPPED", "projectName": "hypnotizer" }, { "projectStatus": "SKIPPED", "projectName": "chariot" }, { "projectStatus": "SKIPPED", "projectName": "obstacle course" }, { "projectStatus": "SKIPPED", "projectName": "build strong" }, { "projectStatus": "SKIPPED", "projectName": "castles and catapults" }, { "projectStatus": "SKIPPED", "projectName": "the wizbots way" }, { "projectStatus": "SKIPPED", "projectName": "madlib" } ] }, "maker": { "lab_time": 0, "imagineering": [], "mechanisms": [], "programming": [ "Flow Control - 2", "Line Following", "Parallel Programming", "Play Station Control - 1" ], "structures": [], "projects": [ { "projectStatus": "", "projectName": "line following" }, { "projectStatus": "", "projectName": "line racing" }, { "projectStatus": "", "projectName": "using the force" }, { "projectStatus": "", "projectName": "drag racing" }, { "projectStatus": "", "projectName": "hoist" }, { "projectStatus": "", "projectName": "elevator" }, { "projectStatus": "", "projectName": "screw gear" }, { "projectStatus": "", "projectName": "slow poke" } ] }, "apprentice": { "lab_time": 0, "imagineering": [ "Troubleshooting" ], "mechanisms": [], "programming": [ "Color Sensor Control", "Distance Sensor Control", "LED Wand", "Light Sensor Control", "Line Following", "Parallel Programming", "Sound Sensor Control" ], "structures": [ "A-Frame", "Cube" ], "projects": [ { "projectStatus": "PENDING", "projectName": "troubleshooting" }, { "projectStatus": "PENDING", "projectName": "wheel free racing" }, { "projectStatus": "PENDING", "projectName": "distance sensor" }, { "projectStatus": "PENDING", "projectName": "table top survival" }, { "projectStatus": "PENDING", "projectName": "sound sensor" }, { "projectStatus": "PENDING", "projectName": "barking dog" }, { "projectStatus": "PENDING", "projectName": "light sensor" }, { "projectStatus": "PENDING", "projectName": "sun flower" }, { "projectStatus": "PENDING", "projectName": "color sensor" }, { "projectStatus": "PENDING", "projectName": "red light green light" }, { "projectStatus": "PENDING", "projectName": "random numbers" }, { "projectStatus": "PENDING", "projectName": "floor sweeper" } ] } }, "after_care_phone": null, "after_care_name": null }

-- Please see the bold highlighted text. Therefore in project level Apprentice , the project status is "" for each project hence it shows 0 in completed,Skipped,Pending column.

internetmosquito commented 7 years ago

@kapoorutd I see, but what I mean is this kid has this for levels he still not has (Wizard, Master)

"wizard": {
"lab_time": 0,
"imagineering": [],
"mechanisms": [],
"programming": [],
"structures": [],
"projects": [
{
"projectStatus": "",
"projectName": "algorithms"
},
{
"projectStatus": "",
"projectName": "gyroscope"
},
{
"projectStatus": "",
"projectName": "data structures"
},
{
"projectStatus": "",
"projectName": "accelerometer"
},
{
"projectStatus": "",
"projectName": "camera"
}
]
},
"master": {
"lab_time": 0,
"imagineering": [],
"mechanisms": [],
"programming": [],
"structures": [],
"projects": [
{
"projectStatus": "",
"projectName": "objects"
},
{
"projectStatus": "",
"projectName": "networking"
},
{
"projectStatus": "",
"projectName": "behaviors"
},
{
"projectStatus": "",
"projectName": "pid control"
},
{
"projectStatus": "",
"projectName": "segway"
}
]
},

I can see API returns the projects even if they have not been completed, but since the first column is the sum of all COMPLETED, SKIPPED, PENDING projects for a specific level, for those level still not achieved, sum should be zero. In this case, Wizard and Master rows should have zero in first column. You can either do this checking in your side, or I'll modidy server response so no projects are returned for levels kids has still not achieved, but I'd rather you do it on your side.

kapoorutd commented 7 years ago

@internetmosquito okey . maintained check from my side, if skipped,completed and pending are 0 then projects should be 0 for that level.

internetmosquito commented 7 years ago

Okey, only API statistics calculation remain, everything else works fine