Final Project
This assignment relates to the following Course Learning Requirements:
- CLR 1: Write a graphical user interface-based program, given design documents. Techniques used will be object-oriented programming, structured programming, top-down coding, and event-driven coding.
- CLR 4: Debug program problems using manual and programmatic methods.
- CLR 6: Access and modify a database table from within the graphical user interface. Create a layered application (Presentation, Business, and Data access layers). Use a Data Access layer to provide data access to an application.
- CLR 7: Create GUI programs that support internationalization as well as sustainability.
- CLR 8: Collaborate with fellow students in a team to complete complex assignments.
Objective of this Assignment:
The Project is assigned to give you experience in:
- Developing software including using Github to merge code into the project.
- Working with a workload to meet deadlines.
- Designing modular software that allows for meeting those deadlines.
Pre-Assignment Instructions
This final project can be completed in pairs. If you wish, you may select a partner. You will be collaborating and communicating with one another. Ensure that both names are associated to the project. Otherwise you can complete this project solo.
Assignment Tasks/Steps
The Application Topics
Each of the applications (as they are intended) requires similar programming techniques. Each application takes information from the user and stores it in a database. Each application also provides functionality to summarize or analyze the whole body of data entered to the application. Beyond that you are free to get creative in order to satisfy the requirements. Please ensure you treat the facilitator as the product manager and get sign off on any new features not listed with the topic.
The Guardian news article search
- The user can enter in a search term to find articles from The Guardian newspaper that are related to that term. For example, loadhttps://content.guardianapis.com/search?api-key=1fb36b70-1588-4259-b703-2570ea1fac6a&q=Teslato find articles related to Tesla cars.
- The results should be loaded in a list of results. Clicking on an entry should show Title, URL, and the Section name. Clicking on the URL should load the url in the built-in android web browser.
- The user should be able to save articles to a list of favourites for later viewing. From the list of favourites saved, the user should be able to delete items from the list. Selecting an item from favourites should then show the saved information, as well as the link to go the article.
NASA image of the day search
Create an interface that allows the user to enter a date to retrieve an image from NASA’s web servers. There should be a date picker object that allows the user to pick a given date (https://developer.android.com/guide/topics/ui/controls/pickers#java).Your application will then call the API:
https://api.nasa.gov/planetary/apod?api_key=DgPLcIlnmN0Cwrzcg3e9NraFaYLIDI68Ysc6Zh3d&date=2020-02-01
- You should modify the query by changing the date string at the end of the query. The API key in the URL is good for 1000 queries per hour. It is likely that once students start working on the projects, that we will go over the limit. You should probably sign up for your own key here:https://api.nasa.gov/.
- This call will return a JSON object that has a URL, DATE, and HDURL. You should display the date and URL on the page, and a link to the HD image. If the user clicks the link, you should load the URL in the built-in browser on your device.
- The user should be able to save various dates and images to the device for later viewing. The saved images should be shown in a list that lets the user view various images that are also saved on the device. The user should also be able to delete images that have been saved to the device.
BBC News reader
- The user can download the latest news headlines from:
http://feeds.bbci.co.uk/news/world/us_and_canada/rss.xml
- Your application should show the titles in a listview. When the user selects an item, it shows the details about the news article. You should show the title, description, and date of the article, as well as a link to the website for the article. Clicking on the link should load the Android web browser to that page.
- The user can save articles to a favourites list for later viewing. The user can also delete articles from the favourites list.
Part 1 - Activity Worksheet
This counts for 10% of your project mark.
You decide on one (and only one) of the given topics. You should then fill out theActivity Worksheetto provide contact information, Algonquin student email addresses at a minimum.
Part 2 - Programming your Application
This counts for 80% of your project mark.
Once you have chosen your topic, you must implement this list of the requirements for the final project:
The project must have a ListView somewhere to present items. Selecting an item from the ListView must show detailed information about the item selected.
The project must have at least 1 progress bar and at least 1 button.
The project must have at least 1 edit text with appropriate text input method and at least 1 Toast and 1 Snackbar.
The software must have at least 4 or more activities. Your activity must be accessible by selecting a graphical icon from a Toolbar, and NavigationDrawer. The top navigation layout should have the Activity’s title, and a version number.
The project must use a fragment somewhere in its graphical interface.
Each activity must have a help menu item that displays an AlertDialog with instructions for how to use the interface.
There must be at least 1 other language supported by your Activity. Please use Canadian French as the secondary language if you do not you know a language other than English.
The items listed in the ListView must be stored by the application so that they appear the next time the application is launched. The user must be able to add and delete items, which would then also be stored in a database.
When retrieving data from an http server, the activity must use an AsyncTask.
The project must use SharedPreferences to save something about the application for use the next time the application is launched.
All activities must be integrated into a single working application, on a single emulator, and must be uploaded to GitHub.
The interfaces must look professional, with GUI elements properly laid out and aligned.
The functions and variables you write must be properly documented using JavaDoc comments.
Beginning Steps
- Create a new project and then upload it to GitHub using the menu option “VCS” -> “Import Into Version Control” -> “Share project on GitHub”.
- You must then invite the professor to contribute in order to give them the ability to view your code at any time. This is done by clicking on the “Settings” tab in Github, then click “Collaborators” on the left side menu, and search the professors name to add them to the project.
Part 3 – Submit your source code on Github
This is worth 10% of your final project mark.
Each team member must also submit the final code, as well as the final project document, as a record of what was finished, at the end of the project. From your GitHub repository, there is a link for “Clone or Download”. Select the Download option and save your code as a zip file on your computer. Then upload that zip file to Brightspace.
The final project code is expected to be on the master / main branch.