TIMEX
Date: 2021-02-17
TIMEX is a Python framework which allows the creation of time-series-forecasting-as-a-service websites.
The main concept is that modifying a simple JSON file, it is possible to specify:
- the data source (usually a URL to a CSV file);
- the models to use;
- some aspects about multivariate inputs: which cross-correlation algorithm use, etc
Then, launching TIMEX with the provided JSON will automatically fetch the data (in a CSV file), interpolate/take care of missing values, create prediction models, train them e return the forecasting results.
To make things more simple: this website is built using TIMEX. It provides predictions and forecasts for the Covid-19 pandemic in Italy. It is hosted on a simple AWS machine.
The idea is that you can obtain a website similar to this - but on other data - just modifying the configuration dictionary in JSON given to TIMEX. Another examples can be found on the GitHub repository.
Things learned
This is maybe the first “big” project I have built during my research activities at Politecnico. I am happy that our research group is in favour of open-source software.
Being in Python, I had a good prior knowledge of this language. However, being this a bigger project with respects to the previous one, I learned:
- to manage the automated testing, in particular with GitHub actions;
- I already knew that, but: that testing is important and should be one of the first things to do, often it is useful to write tests for functionalities before the actual code;
- to publish and manage a package on pip; for this I used Poetry;
- to automatically generate the documentation for the project using pdoc; I really liked the fact that I can document my code and, automatically, having a
read-the-docs
style webpage.
Things to improve
We have many things to do on this framework; for example new models and new use-cases. If you like this idea, feel free to star it on GitHub or write to me!