Tool for Analysis and Visualization of Brno City Council Voting Data
Kristýna Zaklová (kristyna.zaklova@gmail.com), 2022

This tool was created in cooperation with the Brno City Council and its main objective
is to was to process and visualize data from real votes of members of the Brno City 
Council (Zastupitelstvo města Brna, ZMB). In order to analyse the accuracy of the data, 
I was provided directly with voting protocols, which are publicly available within the 
individual ZMB records. There is also a public dataset publishing this data in JSON 
format - https://data.brno.cz/documents/f3c663acc9c047cfa898afea94ea3711/about.

This is the first version of the application that has been designed to suit needs of the 
City of Brno and supports display of data from only one council, and it was created for 
the 8th ZMB, which was active in 2018-2022.

If you are interested in using the tool, please contact me regarding licensing terms 
and conditions.

----------
Technologies used:
	* MySQL - DBMS for relational databases
			  https://www.mysql.com/
	* Flask - framework in Python programming language
			  https://flask.palletsprojects.com/en/2.2.x/
	* React - JavaScript library for creating user interface (UI)
			  https://reactjs.org/
	* PrimeReact - JavaScript library with UI components
				   https://www.primefaces.org/primereact/

----------
Contents of the submitted directory:
	* api/ ................... folder containing individual endpoints
	* zmb-hlasovani/ ......... folder containing the frontend part of the application
	* app.py ................. file controlling the backend part of the application
	* data_insert.py ......... script for inserting data from voting logs into 
	                           the database (per session)
	* db.sql ................. script for database initialization
	* requirements.txt ....... list of environment packages

----------
Local launch of the application:
1) creating a database using a script 'db.sql'

2) starting the backend
	* the required dependencies are part of the file 'requirements.txt'
	* command 'flask run'
	* test endpoint - http://localhost:5000/flask/hello
	* you need to edit the login details in the file 'api/DatabaseHandler.py' 
	  to the database, and then test any endpoint communicating with the database, 
	  e.g. http://localhost:5000/flask/generalData

3) starting the frontend
	* it is necessary to edit the configuration in the file 'zmb-hlasovani/.env'
	* command 'npm start'
	* homepage is available under the link - http://localhost:3000/