Skip to content

C# console app for displaying information about current radio shows from BBC feeds

Notifications You must be signed in to change notification settings

alowdon/DabScheduleNotifier

Repository files navigation

Introduction

This was an application written as part of an interview. The problem presented on the day was to create an application that would read from BBC Radio feeds (such as http://www.bbc.co.uk/radio2/programmes/schedules) and extract information about the currently broadcasting show, with the hypothetical usage that this information would then be presented on the screen of a DAB radio, for example. The test was timeboxed to three hours, and I have left the state as it was at the end of that time. I upload it here to give an example of my coding style.

Detail

There is a console app that takes two parameters: first is the HTML URL of the feed (e.g. http://www.bbc.co.uk/radio2/programmes/schedules), second is the location of the file to output to It will populate a StationSchedule class using the feed, and then use BroadcastWatcher to monitor the current broadcast and output information when that changes Please start by looking at Program.cs to get an idea of how the program builds up its information and then spins up BroadcastWatcher, which just loops every seconds to check the current broadcast.

At time of finishing, I was looking at adding more tests around BroadcastWatcher to verify functionality. The program will output current broadcast information to the console and to a file (via different listeners), but this obviously needs more unit testing around those listeners and the BroadcastWatcher.

C# classes that equate to the JSON objects from the BBC feed were generated using http://json2csharp.com/ - I didn't spend much time tidying them so those are not representative of the naming conventions I would traditionally use.

About

C# console app for displaying information about current radio shows from BBC feeds

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages