this-week-in-rust
                                
                                 this-week-in-rust copied to clipboard
                                
                                    this-week-in-rust copied to clipboard
                            
                            
                            
                        Automating TWiR ‘Event List’ section.
The Problem:
After speaking with Marianne, who currently manages curating the ‘Event List’ section of TWiR, it was identified that a lot of the manual work that is currently being done could be automated. The current process for each week’s issue of TWiR involves Marianne manually checking multiple sources of event information, gathering the required data for each event from these event sources to create a list of potential events to include, then filtering, sorting and formatting each event’s data. It was identified that this time-consuming process could be reduced significantly with the introduction of an automation program.
Our Solution:
Our solution to this problem was to create a program that would be able to gather the necessary data from common event sources that Marianne uses (e.g Google Calendar, Meetup.com), and export this data as a list of events. This Event list would then go through a sorting and filtering process in order to group the events by virtual or continent, identify potential duplicate events within the list, as well as order them by their date and location data. After this process, the program will output a sorted list of events, formatted correctly and with section headers. The aim of this program is to produce a result where whoever is creating the event section will only need to look at and evaluate events that have been flagged as potential duplicates, rather than completing the entire process manually.
Specifics of Our Solution:
The structure that was decided upon for this project is modular. We decided to split the work of the program into an ‘Event Sink’ module that is responsible for sorting, filtering and formatting the Event data, and different ‘Event Source’ modules that are responsible for gathering the required event data from an individual source (e.g. Google Calendar) and exporting that data into the ‘Event Sink’. We believe this structure is best suited for the aim of the program because each module works independently if an bug occurred that impacted the functioning of the program, it would be easy to identify which module contains the problem and in the event that an ‘Event Source’ module is malfunctioning, the rest of the program can still be utilized while finding a solution to the problem. Another benefit this structure offers is that, in the future, if there are other sources of event information that someone may want to add to this program, then creating another ‘Event Source’ module to integrate into the ‘Event Sink’ should be a straightforward process.
This PR contains the code of the ‘Event Sink’ module as well as an overview of the project. If this PR is accepted then we will submit further PR’s that contain ‘Event Source’ modules for Google Calendar, recent TWiR newsletters, and Meetup.com that are currently being developed to complete the automation process.