by Léo Cavalcante
Feamzy Dashboard - Ironhack Final Presentation
Dashboard developed to report informations from Feamzy app.
This dashboard was created with Python, using Dash as the web framework and Plotly as the visualization library.
I have learned the necessary informations via Charming Data YouTube channel, a course in Udemy and Dash and Plotly official documentations.
data
folder: containing the raw databases.data_clean
folder: containing the roughly cleaned databases.static
folder: containing the images. In this case, only one: feamzy logo with blue background.cleaning_functions.py
: python code to clean the databases.feamzy_dashboard.py
: python code for the dashboard app.env
: virtual environment to run the app on local machine.stopwords.txt
: document with words to exclude from the wordclouds generated in the dashboard.requirements.txt
: document with the libraries required to be installed in the virtual environmentenv
in order to run the app.Procfile
: document necessary for the deployment in Heroku.Jupyter Notebooks
: they were used for tests of each function in the app, but it is not formalized and they therefore don't present a pleasant reading. These files are namedData Cleaning
,Data Exploration
andData Manipulation & Visualisations.ipynb
.
Note: For confidentiality reasons, the databases are ignored in this Git Repository.
- Store the raw databases on the
data
folder. - Run
cleaning_functions.py
, it will send roughly cleanend databases todata_clean
folder. These new databases will be the files that will be read by thefeamzy_dashboard
file.
$ # Go to the directory where the application is installed
$ cd femazy-dashboard
$
$ # Virtualenv modules installation (Mac/Unix based systems)
$ virtualenv env
$ source env/bin/activate
$
$ # Virtualenv modules installation (Windows based systems)
$ # virtualenv env
$ # .\env\Scripts\activate
$
$ # Install modules - SQLite Database
$ pip3 install -r requirements.txt
$
$ # Start the application (development mode)
$ python feamzy_dashboard.py
$
$ # Access the dashboard in the browser that will appear on the terminal, usually: http://127.0.0.1:5000/
Note: The authentification system has to be improven for multiple users (with different logins and passwords).
The project is coded using blueprints, app factory pattern, dual configuration profile (development and production) and an intuitive structure presented bellow:
Simplified version
< PROJECT ROOT >
|
|-- requirements.txt # Development modules - SQLite storage
|
|-- .env # Inject Configuration via Environment
|
|-- feamzy_dashboard.py # Start the app - WSGI gateway
************************************************************************
I invite you to visit the following videos on YouTube describing in depth how to deploy it:
PS.: I would recommend Heroku, which is a widely used and proven web app deployer. PythonAnywhere is limited to 500MB of storage and this apps exceeds it. Therefore, it is necessary to pay a subscription.