Advanced Software Engineering (ASE)

🌺 Spring (FS) 2021

The goal of the project is to produce an application that processes and visualizes data. Teams composed of three students will work by applying most of the software engineering processes presented within the lectures.

For this project, you are asked to select a dataset and build an application on top of that. You have only a few strict requirements in terms of the software engineering processes you and your team have to apply during the development. The rest is a mix of creativity. You are free to use any programming language and technology you prefer, as long as you follow the requirements. You can take the chance to experiment technologies you never managed before, or stick with the knowledge that your team has. The risk analysis is part of your job here.


💾 Datasets

In the following, the possible topics for datasets are presented. The links reported in here are referring to a version of the dataset on the kaggle website. However, you are not forced to use exactly these copies of the dataset. You can also use other versions of the dataset, but you have to keep the same topic. Moreover, you can mine your data if you believe that your dataset does not contain enough information for the purpose of your application, but please notice that the mining part is not a requirement for the evaluation of the project.


🚀 Application requirements

Here we describe the few application requirements you have to follow. We do not want you to be forced to use any programming language or technology in particular. What is most important is that you always motivate your choices. You will have many occasions to do so, make use of the documentation and presentations.

Your application is based on two main components: a backend and frontend. The backend is in charge of exposing the dataset you chose as an API. The frontend is what the user sees.

📢 Expose an API

The backend exposes a dataset in the form of an API. One option is to use a REST API. However, you can also consider other modern API methods, for instance GraphQL. It is up to you to decide how to store and process the data. You can use the backend for the majority of the computation task, but you can also decide to move part of the computation to separate components or even to the frontend of the client.

🔗 Combine with other data sources

The data we suggest might not be enough to devise some functionalities. For this reason, you have to include another source of information. It can be either another dataset, which you should expose as an API as well, or external sources, such as Twitter, or maps.

🖼️ Visualize the data

Your creativity is asked for this part. You have to come up with the functionalities for your application that are going to characterize it, rather than realizing a simple dataset visualizer. The data you expose or process has to be visualized in a frontend. It can be either a desktop application, web application, or mobile app. You have to connect the frontend to the backend and show it to the user.

📋 Project requirements

In the case of the project development process you have a bit more requirements to follow.

📅 Project planning and version control