Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save spinitron/67a5735ec2e01bfff794b18da3e13083 to your computer and use it in GitHub Desktop.
Save spinitron/67a5735ec2e01bfff794b18da3e13083 to your computer and use it in GitHub Desktop.
Spinitron's concept of shows, playlists, and schedules, and differences between v1 and v2

Shows in the future and playlists in the past

This is a core concept in Spinitron and in v2 it controls how some features work.

To discuss v2's features, how they work, and how they perhaps should change, we need to define terms.

Spinitron's basic ontology (v1 and v2)

  • A show defines a radio program. It represents the plans for the program, which include its

    • descriptive stuff (title, image etc.)
    • duration
    • owners (the show's host DJs)
    • schedule
  • A playlist documents one instance of a radio program, including its

    • descriptive stuff (title, image etc.)
    • date and time
    • duration
    • owner (the DJ that created the playlist)
    • spins
  • The schedule describes when shows will air.

A playlist with a date-time in the future represents plans for one instance of a show, plans that may change. When a playlist moves into the past, it represents a record of that instance of the show and does not normally change except to correct errors.

Differences between v1 and v2

v1 and v2 differ in how they represent the schedule.

  • v1 has its weekly schedule which represents approximately what to expect over the next week. This turned out to be too simplistic.

  • v1's schedule has no concept of date, only day-of-week.

  • v1 has no representation of past schedules. You can't look up old shows that are no longer in the schedule.

  • v1 has no representation of future changes to the schedule.

  • v2 has a schedule similar to a personal calendar app in which you can put one-off and repeating appointments.

v2 pages

  • The Calendar is a public page that displays playlists looking backwards (relative to NOW) and instances of shows looking forwards.

  • The Schedule page is for logged-in users and displays scheduled shows, not playlists. It has a list-view of shows and a calendar-view of instances of shows.

    It allows browsing back through old schedules and show instances. However, because past schedules are pretty-much useless, we expect users make no effort in maintaining them and mostly to ignore them.

  • The Browse Playlists page is for logged-in users and displays past, current, and future playlists. It has a list-view and a calendar-view of playlists.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment