web application from a non-programmer

The fact is that researchers are not programmers; they have a different stack of skills and tools. Researchers want to receive raw data in a convenient form so that they do not need to take any additional actions and can immediately begin analysis and research.

What do I offer?

Without thinking twice, being an economist by training, I wrote a small website in Vue.js, having previously parsed some of the important economic indicators (100 pieces). And I hosted it on my local hosting for testing using IP tunneling via ngrok. The stack I used was Vue.js + Django backend. Database in MySQL. Sorry about python and MySQL, it may not be as great as I would like, but I’m not exactly a programmer with knowledge of higher spiritual practices.

How to run ngrok, local hosting and please your colleagues with a small but useful application (example on Ubuntu):

Let's launch the project in Vue.js:

#!/bin/bash
clear
cd
cd projectee
cd project_vue
npm run serve -- --port 8080

Here projectee – the folder in which it lies project_vue is a project created in Vue.js.

Link ngrok and local server:

#!/bin/bash
clear
cd
ngrok http --domain=your-free-ngrok-domain-abracadabra.ngrok-free.app http://localhost:8080 --response-header-add='Content-Security-Policy: upgrade-insecure-requests' --host-header=rewrite --scheme http,https --config=first.yml
  • Instead of your-free-ngrok-domain-abracadabra.ngrok-free.app You will need to specify a free domain, which will be provided to you by ngrok (click on “static domain” on the site in the admin panel).

  • Instead of http://localhost:8080 indicate your local address and port.

  • These are the flags --response-header-add='Content-Security-Policy: upgrade-insecure-requests' And --host-header=rewrite will allow you to avoid the browser complaining about an unsafe SSL certificate and CORS requests (for example, if your front is Vue.js and your back is Django).

  • --config=first.ymlWhere first.yml — the path to your ngrok configuration file (created automatically when installing ngrok), you can create several such files for several accounts, which will help bypass the limitation of 1 running site at a time.

The site itself:

Site's home page

Site's home page

What the site can do: We select the indicators we need, at least 50 pieces. at a time:

Search and selection of indicators

Search and selection of indicators

If you need to remember the methodology, you can click on the “?” sign, and the indicator passport will open in the side panel:

Indicator passport

Indicator passport

Updated indicator page using the Gini coefficient as an example:

Indicator page

Indicator page

Next, we form the representation we need: time series, cross, panel – please! There are auto-templates for this. If you don’t like this, you can use the drag-and-drop interface to place indicator attributes into sections – the principle is exactly the same as in Excel pivot tables:

Drag-and-drop pivot table

Drag-and-drop pivot table

Let's build a time series for all selected indicators:

Let's place the table elements

Let's place the table elements

And voila – we get the result:

Result of building a pivot table (example: time series)

Result of building a pivot table (example: time series)

What are the advantages?

I finished duplicating 100,500 directories of regions (OKATO), removed them and replaced them with one common one, now the subjects are named uniformly in accordance with regulatory documents. Without unnecessary symbols and variations in the name. And combining indicators in 10-20-30 pieces is much faster than manually combining 10-20-30 Excel files.

Now building data is quick and easy for me. And not only to me, but also to fellow economists. As they say, you won’t be satisfied with regression alone, you need to fix the EMISS, and only then do economic affairs – count money there or determine the relationship between inflation and unemployment and build the Phillips curve.

Similar Posts

Leave a Reply

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