__STYLES__
[Github: https://github.com/tigi/maven-rail-challenge]
The project description for this Maven Challenge was to create an exploratory dashboard for National Rail based on very detailed information regarding transactions, train performance, revenue and some other data.
My plan: do it in dash/plotly and see how well it goes plus what you miss from PowerBI. Working with Dash means programming in Python and creating an app.
Some assumptions on the data:
I did the basic datacleaning in PowerBI. I also used Power BI to unpivot some columns into 0/1.
Dataimport was done in python, I created a library with import functions to create the most relevant dataframes.
Development in dash means
I spent a lot of time getting the right version of the data in the right place. It took quite some effort to create a datacard which shows a sparkline when no month is selected and previous month data when a month is selected.
In Dash every idea you have is a do it yourself thing, thus the experiment ends now since there is not enough time to make this app as I envision it in my brain. On the positive, I see what it should be in my brain. And I publish this not even half-finished thing because what it does (not much), it does quite good.
Some examples of questions when you mix "mobile first" into thinking about the design:
will the table adjust to different screensizes?
which table columns should be visible on a mobile, is there a mechanism to show/hide some columns with styling.
if I create a button which opens/closes the section route details, should I add some aggregated information about routes which is always visible?
should I show all cards on a mobile and than go into details (all cards in one row) or should I group subjects (card + detail detail visual) in columns which means on a small screen groups will be shown after another but not all summary information will be available on the first screen.
I did not finish this app to be very responsive. That would have meant addinng all bootstrap classes to make it really work well. I just added some styling to make the buttons in the topbar appear where I wanted them to be. The theme with all bootstrap classes makes it easy to add flexbox or cssgrid behaviour to elements.
Conclusion
Power BI solves a lot of "functionality" for you, you really start thinking about, when you have to do it yourself.
I could have saved myself some work by thinking more about data and filtering before I started building. Now it was the testing that showed the problems in datahandling.
It's a lot of work developing in Plotly/Dash but also very rewarding. More "Yes" moments. And I learnt a lot. I'm now ready to proceed my Maven Pandas course to learn stuff I should have known before I started this challenge and forgot :-)