ItCube — Releases

Changelog and version history.

v2.1.0

Latest

A 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

All releases on GitHub →