DataAnalysisSystem is a comprehensive system providing mechanisms for data analysis. The application offers functionalities in the areas of data sets, data analysis, as well as visualization and sharing of their results. The distinguishing factor of DataAnalysisSystem is its well-thought-out architecture, which enables convenient extension of the functionalities available within the application, in particular the supported input formats for data sets and the set of available data analysis methods. The data analysis process itself has been designed in such a way that it can be carried out in a distributed manner.
The DataAnalysisSystem application is built using ASP.NET Core and Razor Pages. As a data store is used non-relational database MongoDB, which is located in the Mongo Atlas service. Access to the database is realized through the MongoDb Driver for C#. Authorisation and user authentication is built using ASP.NET Core Identity with an additional provider allowing to use the MongoDB database as a data store. The graphical interface is based on Materialize.css and Chart.js framework. The distributed processing system used in the data analysis process is the Actor-Model approach from the Akka.NET package.The data analysis methods used in the application come from the ML.NET and Math.NET Numerics libraries.The DataAnalysisSystem application is built using ASP.NET Core and Razor Pages. As a data store is used non-relational database MongoDB, which is located in the Mongo Atlas service. Access to the database is realized through the MongoDb Driver for C#. Authorisation and user authentication is built using ASP.NET Core Identity with an additional provider allowing to use the MongoDB database as a data store. The graphical interface is based on Materialize.css and Chart.js framework. The distributed processing system used in the data analysis process is the Actor-Model approach from the Akka.NET package.The data analysis methods used in the application come from the ML.NET and Math.NET Numerics libraries.
The application provides the following functionalities:
- Users and their accounts:
- login
- confirmation of email address
- account registration
- password reset
- contact with the administrator
- listing your personal data
- editing personal data
- change password
- printing the contents of individual application panels
- Data sets:
- adding a new set of data
- editing a data set
- listing datasets uploaded by the user
- exporting a dataset
- displaying details of a dataset
- displaying statistical data about a dataset
- display of analyses performed on a dataset
- deleting a dataset
- listing datasets made available by the user
- sharing a data set
- cancelling the sharing process
- downloading the access code to the shared data set
- list of data sets not shared by the user
- browsing through the data sets made available to the user
- adding a new dataset made available to the user
- displaying details of a data set made available to the user
- Data analyses:
- configuring the data analysis process
- configuring methods used for data analysis
- list of performed data analyses
- displaying data analysis details
- displaying received results for performed data analysis methods
- display of configured parameters used for data analysis
- deleting an executed data analysis
- list of information about implemented data analysis methods
- list of analyses made available by the user
- opening a data analysis
- cancelling the sharing of data analysis
- getting the access code to the shared analysis
- browsing through the data analyses made available to a user
- adding a new data analysis made available to a user by using an access code
- displaying details of a data analysis that is available to a user
- list of analyses not shared by the user
Data sets saved in the following formats are supported: .json, .xls, .xlsx, .xml., .csv.
The following data analysis methods are available to the user:
- Approximation
- Basic Statistics
- Deriverative
- Histogram
- K-Means Clustering
- Regression
Access to selected functionalities is dependent on user status. A non-logged-in user has access only to informative functions and to the possibility of creating an account and using the password reset option. Users logged into their accounts have access to all areas of the designed system.
The following design patterns has been implemented in the application:
- Model View Controller
- Singleton
- Dependency Injection
- Repository
- Chain of Responsibility
- Command
- Adapter
- Facade
- Strategy
Login form:
Contact administrator form:
Email received by administrator from system user:
Register user form:
Email confirmation message:
Main application menu:
Edit user data form:
Change user password form:
Reset forgotten password - initial form:
Reset forgotten password - confirmation email message:
Reset forgotten password - change form:
Add new dataset:
Add new dataset - summary dataset content:
User datasets panel:
Dataset details - overall information with control buttons:
Dataset details - dataset statistics section:
Dataset details - dataset content section:
Dataset details - print view:
Dataset details - related analyses section:
Edit dataset panel:
Delete dataset modal:
Export dataset panel:
User shared datasets:
User not shared datasets:
Shared dataset access info modal:
Datasets shared to user browser:
Available dataset analysis methods panel:
Perform analysis panel:
Perform analysis panel - configure methods parameters (Approximation and Basic Statistics Method):
Perform analysis panel - configure methods parameters (Deriverative and Histogram Method):
Perform analysis panel - configure methods parameters (K-Means Clustering and Regression Method):
Perform analysis - class diagram:
User analyses panel:
Analysis details panel - overall information and used methods:
Analysis details panel - Approximation Method parameters and obtained result:
Analysis details panel - Basic Statistics Method parameters and obtained result:
Analysis details panel - Deriverative Method parameters and obtained result:
Analysis details panel - Histogram Method parameters and obtained result:
Analysis details panel - K-Means Clustering Method parameters and obtained result:
Analysis details panel - Regression Method parameters and obtained result: