8.9

E1 — Here We Go Again

Due Friday, 22 March 2024, 11:59:59pm.

Purpose The purpose of this milestone is to gain familiarity with the Elixir language and tools, and design some of the basic data of the STBU center.

Programming Task

Implement the module STBU.Analytics, containing at least the function analyze_config/1. The analyze_config/1 function takes one argument, an io_device from which it should read a JSON Configuration. The function should then return a map corresponding to the output from milestone 2 — Warmup: Defining and Working With Data:

    %{ seniors: [StringOrNil, StringOrNil],

       availability : Day }

You are encouraged to use an existing library, such as Jason, for this purpose. The Jason.decode/2 function, for instance, can readily translate textual JSON input to Elixir maps, lists, and so on.

Delivery
Your project should include the designated module under the lib directory (see Elixir, Mix) with the behavior described above, and succesfully build (i.e. with mix compile).