Open Timetable

Introduction

There are some middle schools in Italy where students attend regular classes in the morning. Then, in the afternoon, they split into groups to study a specific musical instrument.

After being “forced” several times by the coordinator to help fit all the schedules onto a single Word page, I finally decided to spend a couple of afternoons writing a tool to do it automatically.

The result goes under the very original name of Timetable.

Features

  • Runs entirely on browser.
  • Support multiple pages.
  • Each pages has a title.
  • Each page has a grid with editable column headers (usually the days of the week), row headers (typically the time slots), and cells.
  • A cell may contain several element separated by a blank line.
  • Each element in a cell consists in two rows: tipically the first one is the student’s name, the second one is the original class.
  • Cells can be spanned on multiple rows.
  • It is possible to define layout settings that apply to all pages.
  • Page title, column headers, row headers, student name and class can be styled.
  • Row and columns settings may have a background color.
  • Empty cells may have a background color.
  • Layout settings and pages are automatically saved in session’s local storage, but can also be downloaded to a local file and imported later.

Please note that timetable solves a very specific request and is not meant to be a universal tool.

Changelog

  • 0.2.0
    • Allow uploading previously downloaded settings.
  • 0.1.1
    • Fixed a bug with reactive forms that prevented using page settings.
  • 0.1.0
    • First working prototype.

Knows bugs

  • Sometimes the content is overwritten when editing cells. This depends on the browser’s local storage management, but it’s being worked on.
  • May not be able to fit a lot of students in a single cell.

Technical specs

  • Angular 19
  • Signals
  • Reactive forms
  • jsPDF