ItCube — Releases
Changelog and version history.
v2.1.0
LatestA dashboard with analytics and a parent's view
Dashboard
- Tasks sorted by the share of students who solved them, lowest first: it points at the topic worth explaining again rather than at how busy everyone was
- Attendance by week and by group, submissions per day, a breakdown by language
- The quiz questions people get wrong most often
- Computed with grouped queries; the charts are drawn in markup, since two charts do not justify a charting library
Management
- People with a role filter and search, creating and editing accounts
- Groups together with their timetable and roster
Parent's view
- Attendance, results, timetable and assessments for their own children
- The child's code is deliberately not shown: going through a solution is the teacher's job
- The adult-to-child link is many-to-many: a child can have two adults, an adult two children in different groups
Found by tests
- The password travelled in the shared data array, so editing a profile with an empty field would have wiped it
- The group controller read a slug field the form does not have, which broke every save
v2.0.0
Second life: Laravel, code grading, three languages
From scratch
- Rewritten from the 2023 procedural PHP onto Laravel 13; only the domain survived
- Teachers and students now share one table with a role column instead of two tables and two login flows
- An attendance mark belongs to a group: the old schema could not tell apart a student enrolled in two tracks on the same day
- A student can be in several groups rather than exactly one
Coding tasks
- Fourteen languages: Python, JavaScript, TypeScript, PHP, C, C++, Java, C#, Go, Rust, Ruby, Pascal, SQL, Bash
- Graded against several sets of data, each with its own input, answer and points
- Hidden cases: only pass or fail is shown, never the input or the expected answer
- An editor with Tab indentation, line numbers and a run on your own input
- Grading runs on a queue: five Go cases were measured at about a minute
Quizzes and assessments
- Timed quizzes that submit the answers themselves when time runs out
- An assessment gathers quizzes and tasks into one paper with an open window
- The sheet scales each piece of work to its weight and counts the best attempt
Language
- Russian, English and German; the translation key is the source string itself
- lang:check compares the dictionaries against the code, and tests keep them aligned