Podcast Stats Web App

DjangoBootstrapPostgreSQL

I developed a Podcast Statistics web application for showing charts and manage the scrap data results to insert into a database through Django. Made some services that interacted with a frontend made in Bootstrap/jQuery.

Handled the configuration, deployment, management of local, staging and production stages and environments, DevOps and also configuration of the server in a Digital Ocean Linux server instance.

This application was made purely in Django and Bootstrap. It uses a PostgreSQL database internally, and reads a file where all the podcasts to obtain information for, updates records daily using CRON jobs through the execution of a script. While the last was already provided, I only took part on make adequations for saving the scrapped data automatically into the database instead of generating a file that the service should consume, this way accelerating the insertion process and avoiding duplications.

For the charts library I used Chart.js for its simplicity to use and configure. It is also used as the base of a service that generates chart images with almos the same configuration used by the chart (for mail notifications). This allowed us to show the data in a very efficient and descriptive way for the user. I also developed some entry points for a REST API for the front end to obtain the data to display. When using Django, this is a must to make the website responsive because if not, if will only show the website once the data is obtained and parsed from the persistence layer.

I took part on the DevOps as well. The client provided a Linux instance on Digital Ocean. It was based on Ubuntu and I managed to install the production environment - PostgreSQL instance, Gunicorn, and configure the service to start it manually once a request has been made to the server. I also installed the Django web application using virtual environments as recommended when developing a web application using this framework.