联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> Java编程Java编程

日期:2024-04-07 09:22

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.



RequirementDescriptionPoints

Object-oriented codeApp is coded according to object-oriented paradigmMandatory

Code, comments and related documentation are in EnglishApplication code, comments and documentation are in English.Mandatory

App works in AndroidApplication works in Android devices, and it is coded in Android StudioMandatory

Application includes basic functionalityApp covers all the functionality defined earlier in this document. You are displaying information on Finnish municipalitiesMandatory

DocumentationWith 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 APIYou are using the Statistics Finland API (https://pxdata.stat.fi/PxWeb/pxweb/en/StatFin/) to fetch the data mentioned earlier in this document.Mandatory


RecycleViewYou are using RecycleView component in listing data3

You are displaying imagesFor 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 municipality2

There is more than one data sourceIn addition to Statistics Finland, the program will fetch data from another API and it’s displayed to the user3

There are more than two data sourcesIn addition to Statistics Finland, and second data source, the program will fetch data from a third API and it’s displayed to the user2

There are more than three data sourcesIn addition to Statistics Finland, second, and third data source, the program will fetch data from a fourth API and it’s displayed to the user1

StatisticsProgram 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 municipalitiesYou can compare the information from two municipalities side by side. You can for example see if Savonlinna has more residents/jobs/rain than Rovaniemi3

QuizThe 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

FragmentsYou have used Fragment (reusable UI components) in your work. More information: https://developer.android.com/guide/fragments

4

Data visualizationFor 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-Android5

GameWhat 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 XAny other feature you come up with! Suggest a score between 0 to 5 in the project documentation0 – 5


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


App includes trash, hate speech racism, or other unwanted contentYou 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!



版权所有:留学生编程辅导网 2020 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp