Each person’s project must have a ListView somewhere to present items. Selecting an item from the ListView must show detailed information about the item selected.

computer science

Description

Project Assignment        

Purpose:

The Project is assigned to give you experience in:

  • Developing software in a group environment, including using Github to merge code into 1 project.
  • Dividing workload to meet deadlines.
  • Designing modular software that allows for that division of work.

 

Part 1 – Choosing your team

This is a group project for groups of 4 members (all in the same lab section). If you would like to be assigned a group, send an email to your lab instructor.  If you have chosen partners yourself, then please email the names of the group to your lab instructor.  Once you have a team for the final project, each of you should select one (and only one) of the given topics. You should then fill out the Group Activity Worksheet together to exchange contact information amongst your group (Algonquin student email addresses at a minimum). You must then upload the Excel worksheet on Brightspace, under the FinalProject assignment link on or before Nov 6th, 2020. This is worth 5% of your final project mark

 

Part 2 – Programming your application. Requirements:

Once you have chosen your topic, you must implement this list of the requirements for the final project:

1.       Each person’s project must have a ListView somewhere to present items. Selecting an item from the ListView must show detailed information about the item selected.

2.       Each 1 at least 1 progress bar and at least 1 button.

3.       Each activity must have at least 1 edit text with appropriate text input method and at least 1 Toast, Snackbar, and AlertDialog notification.

4.       The software must have at least 1 or more activities written by each person in your group. 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, author, and version number.

5.       Each Activity must use a fragment somewhere in its graphical interface.  

6.       Each activity must have a help menu item that displays an AlertDialog with instructions for how to use the interface.

7.       There must be at least 1 other language supported by your Activity. If you are not bilingual, then you must support both British and American English (words like colour, color, neighbour, neighbor, etc). If you know a language other than English, then you can support that language in your application and don’t need to support American English.

8.       The items listed in the ListView must be stored by the application so that 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.

9.       Each activity must use an AsyncTask to retrieve data from an http server.

10.    Each activity must use SharedPreferences to save something about the application for use the next time the application is launched.

11.    All activities must be integrated into a single working application, on a single device or emulator.

12.    The interfaces must look professional, with GUI elements properly laid out and aligned.

13.    The functions and variables you write must be properly documented using JavaDoc comments.

 

Milestones:

Bonus marks will be awarded for displaying correct functionality by the following dates:

Milestone # and date

Requirements implemented #

Bonus Marks available

#1 – Nov. 16 - 20

1, 2, 3, 11, 13

1

#2 – Nov. 23 - 27

10,7, 9, 11, 13

1

#3 – Nov. 30 – Dec. 4

5, 8, 11, 12, 13,4, 6

1

Beginning Steps

·         One person should create a new project for the team and then upload it to github using the menu option “VCS” -> “Import Into Version Control” -> “Share project on GitHub”.

·         That group member must then invite the other group members to contribute. This is done by clicking on the “Settings” tab in Github, then click “Collaborators” on the left side menu, and search the group member names to add them to the project. Other team members should then clone that project to their computer and start making branches for their work. From AndroidStudio, select “File” -> “New” -> “Project from version control” ->  ”Git” and then paste the git URL from the main github repository from the previous step.   You will not be able to integrate your work if you do not start by first cloning the project!

·         Then write your own code on your own branch and then merge that branch on Github (after each requirement is finished). Don’t try to merge the code only on the last week.

Grading Guide

·         Each student is graded on his or her application separately. This counts for 85% of your project mark.  

o    Week of Nov. 16 - 20– demonstrate the Milestone 1 requirements for bonus

o    Week of Nov. 23 - 27– demonstrate the Milestone 2 requirements for bonus

o    Week of Nov. 30 – Dec. 4– demonstrate the Milestone 3 requirements for bonus

o   Week of Dec. 7 - 11 Project demonstration during your scheduled lab demonstration found on the demonstration schedule. You will show each of the 13 requirements from the list. Arrange a single submission of the group deliverable by one of the group members computer on behalf of the entire group. You must be in the lab in person to answer questions about your work. Code submitted on Brightspace will not be marked.

Part 3 – Submit your source code on Brightspace

·         Before your group demonstration, each member of the group must submit their final code 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 using the FinalProject link. This is worth 10% of your final project mark.

 

 

 

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. They can then view the data saved to a list of favourites and delete items from that list. Beyond that you are free to get creative.

 

TicketMaster event search

·         The user can search for upcoming events near a given city. The user can enter the city name, and a search radius for the events. The server will return a list of events scheduled in that city. Your program should show the list of the names of the events. Clicking on an event name should show the starting date, the price range of tickets, the URL from ticketmaster, and the promotional image. The user should also be able to save the event’s details in a database of saved events.

·         The SharedPreferences should save the name of the last city that was searched. It should display that city name the next time the application is launched.

·         There should be an option to view the list of saved events. Clicking on the name of an event should show the same information as from the server. However this time there should be a button to delete the city from the list of favourites.

·         You should sign up for an API key from this website: https://developer-acct.ticketmaster.com/user/register. The API looks like: https://app.ticketmaster.com/discovery/v2/events.json?apikey=XXXXXX&city=YYYYY&radius=100

·         You would replace the XXXX with your API key that you signed up for, city is the city where the events will be taking place, and the radius is how far from the city the event is taking place to be included.

 

Recipe Search page

·         The user can enter the name of a recipe to search. The server returns a list of recipes that match the search terms. You should just show the Titles of the recipe in a list. If the user selects one of the recipes, there should be a details page which shows the Title, ingredients and URL to that recipe. Clicking on that URL should launch a browser that loads that URL. There should also be a Save button to save the recipe details on the device.

·         There should be a “favourites” button that shows a list of saved recipes. Selecting a title from the list of saved recipes should show the saved details. This saved details page should have a delete button that removes it from the saved recipe database.


Related Questions in computer science category