Blog Assignment #7

Hello, and welcome to this week’s blog post for my senior project course. Last week I talked about using Plotly Dash to develop the web application for my senior project. Shortly after I wrote that blog post, my group discussed it some more. We decided that Plotly Dash was not the right tool for us, since Dash mostly shines in the data dashboarding department, which isn’t one of our project goals. Instead, we’re going to use Python Flask, a more flexible web app development framework that isn’t specifically designed for data dashboarding or visualization.

I was looking forward to using Plotly Dash, but realized that it isn’t very well suited for our project. Dash is best at creating interactive visualizations powered by your R or Python code. We probably won’t need any interactive visualizations for our project, so it doesn’t make sense for us to use a tool tailored for that specific purpose. That being said, we still want to use a high level framework for developing our web app. That’s where Flask comes in.

Flask is a great tool when you don’t want to spend more time than necessary on web development (especially for small web projects). I’ve used it as an alternative to Node.js and it greatly simplifies things. It does a lot of the heavy lifting on the web development side of things, requiring less boilerplate code. It lets you efficiently build out the visual and functional components of your web application. The only thing I wish Flask could do better was automatic styling. This isn’t much of a worry though, since you can add Bootstrap styling to the HTML templates.

I’m looking forward to using Flask to build the web app for our project. Last Saturday afternoon I built a prototype of our web page to upload files for analysis. All I had to do was use a Dropzone.js form for a full file upload mechanism to include a drag-and-drop upload feature as well as a progress bar. The Flask app file to serve the page was surprising easy to write, needing only minimal boilerplate code. I added a screenshot of the upload page below.

Leave a comment

Your email address will not be published. Required fields are marked *