School radio system
For about a week, the students from the class above have been working
on the school radio system. An app for voting on desktop and mobile.
OSE - how the road to hell is paved with good intentions.
The application was written in JavaScript using the
spotify-api.js
library and, as you might have guessed, it uses the Spotify API.
The site consists of two parts:
– The first part is a regular player that plays the music on a server
connected to the speakers throughout the school.
– The second part is a subpage where students can vote for their favorite songs
from their phones. The votes are stored in a simple MariaDB database and are
split in half every day at midnight so that students constantly have to
fight for the position of their songs.
Everything worked fine while they were testing the app on their home network
and connecting via local IP. However, when they set up the server at school,
it turned out that the entire application crashes immediately after launch…
Those who attended any IT school in Poland after 2019 could probably guess the
reason for the app’s self-destruction as soon as it was connected to the school internet.
The reason, as always, is the
Ogólnopolska Sieć Edukacyjna
(Polish National Education Network), a dedicated internet service for schools,
which in theory is free, fast, and provides protection against online threats.
In practice, however, it mostly just prevents installing drivers or, as is case here,
connecting to the Spotify API. =]
However, OSE is a huge topic, so we won’t dwell on it. We need to find a way around it.
VPN
It just so happened that I had an unused computer at home, and my home internet had a public IP. I set up a server on my private network using OpenVPN and forwarded all incoming and outgoing traffic to the server at school.
Mapping on the home router.
In this quick and dirty way, the school server now has access
to the internet and can function without OSE restrictions.
At least until we come up with something better.


