首页 > > 详细

讲解 program、辅导 Java程序语言

Project Assignment
Last changed 25.3.2024. Change: added code example links to the end of Introduction

Introduction
The purpose of the project assignment is to build an app, which will show you various information about Finnish cities/municipalities.

The app will be an Android app, where the user can input search conditions via the UI and see the results is an easily understandable form.

The project assignment should be implemented in a group of 1-2 people.

There are two deliverables in this assignment:
-Implementation plan, see description and details in Moodle: https://moodle.lut.fi/mod/assign/view.php?id=1215630
-Final submission
oThe app itself, link to source code repository
oDocumentation (link to e.g. REAME.md or PDF in source code repository)
oVideo presenting how your application works.

Deadline for returning the implementation plan is 7.4.2024 at 23.59.
Deadline for the project is 23.4.2023 a 23.59.

See “Project Assignment” section in Moodle for more information about how to register your team for the assignment and how to submit the assignments.

Here are some code examples to get you started:
How to access Statistics Finland API endpoints in a plain Java app: https://version.lab.fi/Katja.Karhu/oop-api-and-json-example
How to integrate API access (examples: Statistics Finland and OpenWeather) to an Android application: https://version.lab.fi/Katja.Karhu/oop-android-api-example


Requirements

The basic requirement is to fetch data via Rest APIs and show data in the UI of the Android app.

The user should be able to search for information using the name of the city/municipality.

The app should display at least the population and change (increase/decrease) in population (Statistics Finland/Tilastokeskus: 12dy), workplace self-sufficiency (Statistics Finland/Tilastokeskus: 125s) and employment rate (Statistics Finland/Tilastokeskus: 115x).

You should show this information to a user in a nice user readable format.

When you meet these basic requirements, you will get 10 points. To fulfil the minimum score of 15 points, you will also need to add elective features.


Figure 1 presents an example class diagram, that you can modify and expand freely. The idea here is that MunicipalityData contains all the data fetched from the municipality/city.

Fetching the data is done by DataRetriever, which can find data from various sources.
Quiz (not mandatory, but an example of how you could present the data to user) utilizes the data from the municipality and forms a 10-question quiz with different answer.

This is one way of utilizing the data sources in the app. For example, the more data sources you have, the more classes you will need in the class diagram.

Note that the job of Activity classes is not to manipulate the data, they should just display it. Fetching and parsing the data are done the ”normal” Java classes, not Android classes.


Figure 1: Example class diagram, feel free to use it and modify it according to your needs. Pro-tip: Umbrello can generate Java-code from the class diagram, and you can use it in your app. Umbrello-version of this class diagram can be downloaded here: https://www.dropbox.com/scl/fi/cvavj734j0zo1p0014dzn/ht.xmi?rlkey=2wh7jtbeydz3kpqbakstky3w5&dl=0

Data Sources
Here is a list of a few data sources you can use. There are also other open Rest APIs offering data, you are free to use any of those as well.

●Statistics Finland (Tilastokeskus): https://pxdata.stat.fi/PxWeb/pxweb/en/StatFin/
●OpenWeather (requires free registration): https://openweathermap.org/api
○Geocoding API (fetch latitude and longitudine via city name): https://openweathermap.org/api/geocoding-api
○Current Weather with latitude and longitude as parameters: https://openweathermap.org/current
●Finnish Patent and Register Office (PRH): https://avoindata.prh.fi/tr_en.html
●Finnish Institute for Health and Welfare (THL) https://thl.fi/en/web/thl/statistics-and-data/data-and-services/open-data
●Traficom: https://trafi2.stat.fi/PXWeb/pxweb/en/TraFi/
●Fintraffic: https://www.digitraffic.fi/en/
●Wikipedia: https://api.wikimedia.org/wiki/Getting_started_with_Wikimedia_APIs
●Finnish open data listing:
○https://www.avoindata.fi/en


What can you find from the databases on municipality level? Examples of the data you can find in the APIs listed above:
●How many percent of the cars registered in a municipality were fully electric during the previous month?
●How many COVID deaths are listed in the municipality?
●What the weather is like, today, tomorrow, day after tomorrow?
●What are the political parties in the council of the municipality?
●How many companies were registered to the municipality during the past 12 months?
●Road camera feed from the municipality (if there is a camera)?

User Interface Prototypes

You can design any kind of UI you want, but here are a few examples how you can do it:


General Requirements

To pass the assignment you will need at least 15 points. Maximum points you can get from the project assignment is 30.

When you fulfil the mandatory requirements, you will get 10 points.

You will get extra points when you implement elective features according to the table below.

You can lose points if you have bugs or unwanted material included in the assignment, see the end of the table below.


Requirement Description Points
Object-oriented code App is coded according to object-oriented paradigm Mandatory
Code, comments and related documentation are in English Application code, comments and documentation are in English. Mandatory
App works in Android Application works in Android devices, and it is coded in Android Studio Mandatory
Application includes basic functionality App covers all the functionality defined earlier in this document. You are displaying information on Finnish municipalities Mandatory
Documentation With the code, you must also submit the link to documentation (it can be included in the source code repository as for example README.md file or PDF)

Documentation must include the following things:
-Class diagram (you do not need to include Android classes, such as Activities in the class diagram)
-Division of labour between team members (who did what)
-Features that were implemented (according to this table here, with the points you are aiming for)
-General description of the work
-Installation instructions (in case you need to do something else than just run the app in Android Studio) Mandatory
You are fetching data via API You are using the Statistics Finland API (https://pxdata.stat.fi/PxWeb/pxweb/en/StatFin/) to fetch the data mentioned earlier in this document. Mandatory

RecycleView You are using RecycleView component in listing data 3
You are displaying images For example, for weather predictions you are showing icons based on the prediction (sun icon when it is sunny, etc), or a different icon based on the size of the municipality 2
There is more than one data source In addition to Statistics Finland, the program will fetch data from another API and it’s displayed to the user 3
There are more than two data sources In addition to Statistics Finland, and second data source, the program will fetch data from a third API and it’s displayed to the user 2
There are more than three data sources In addition to Statistics Finland, second, and third data source, the program will fetch data from a fourth API and it’s displayed to the user 1
Statistics Program internal statistics about which municipalities the user searched, and the user can quickly see and select from e.g. five last municipalities they have searched. 2
Comparing municipalities You can compare the information from two municipalities side by side. You can for example see if Savonlinna has more residents/jobs/rain than Rovaniemi 3
Quiz The app will generate ten questions about the data in municipality with true/false options. The user can answer questions (all questions can be listed in one view, or one by one in their own view). In the end user is shown the final score and how well they did in the quiz. 4
Fragments You have used Fragment (reusable UI components) in your work. More information: https://developer.android.com/guide/fragments
4
Data visualization For example, you show the change in population as graphs instead of plain numbers.

Options for implementing data visualization can be found in:
https://github.com/patrykandpatrick/vico, https://github.com/PhilJay/MPAndroidChart, https://github.com/AnyChart/AnyChart-Android 5
Game What if when starting the app, the user must start a job as the mayor of the municipality? How would you use your budget? Could you get more residents or jobs to your municipality and compete with other municipalities? Also in this case, you need to fetch basic data from Statistics Finland, but you can build on top of that.

Be careful when choosing this option, so that you are not too ambitious, and the project will be too big. Look into “Minimum Viable Product” concept, and evaluate how you can make a big impact with smallest number of features (that still fulfil the mandatory requirements) X (suggest your own score)

Feature X Any other feature you come up with! Suggest a score between 0 to 5 in the project documentation 0 – 5

Bugs You loser points if the app has bugs/crashes unexpectedly -1 – -5 / bug

App includes trash, hate speech racism, or other unwanted content You lose points, if there is unwanted content in the app, documentation, comments, etc -5 – -100

Own Ideas?

Do you have an idea and would like to do completely different app? Send email to the lecturer (katja.karhu@lut.fi) and we can discuss the idea!


Final Words

The most important message for your project assignment is:

Have fun and show us what you have learned!


联系我们
  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp
热点标签

联系我们 - QQ: 99515681 微信:codinghelp
程序辅导网!