A simple web application for data analysis designed as a main project for Software Engeneering course at AGH University.
- Hieronim Koc: https://github.com/Panyloi
- Norbert Żmija: https://github.com/CaffeinatedViper
- Frontend: Angular
- Backend: Python + Flask API
The main purpose of the application is to support the data analysis process, with emphasis on clustering the set. Therefore, basic tools have been made available in the form of a web interface at every stage leading to data clustering. The application consists of five main modules that together act as pipeline processing:
It allows user to load data as a .csv file and then process the data in the following areas:
- Selection of rows
- Selection of columns (features)
- Change of column (feature) type
It allows you to perform normalization on previously selected data. Several different methods are provided for normalizing variables.
It allows you to perform PCA (Principal Component Analysis) and reduce the dimensionality of data.
It allows for grouping variables (clustering) based on PCA results. Several parameterizable clustering methods are available, as well as automatic assessment of cluster homogeneity.
It allows you to extract processed data in the form of a .csv file. The processed data can then be used in more advanced forms of data analysis, depending on the user's goals.
To run application on your PC follow these steps:
- Go to /backend directory. Install necessary dependencies from requirements.txt file:
pip install -r requirements.txt.
Recommended version of Python: 3.9. - Run backend server by excetuing run.py:
python run.py - Return to root directory and go to /frontend subdirectory.
- (Optional - if you haven't done it yet) Download and install Node.js and npm package menager.
- (Optional - if you haven't done it yet) Install Angular CLI:
npm install -g @angular/cli - Install necessary dependencies using:
npm install - Run Angular development server by excetuing
ng serve. Launch your browser and go to the address indicated by the CLI. - Select and load a .csv file with data you want to analyze.

