1. Homepage
  2. Programming
  3. FIT2081 Mobile application development - Assignment 3: Event Management App

FIT2081 Mobile application development - Assignment 3: Event Management App

Engage in a Conversation
MonashFIT2081Mobile application developmentEvent Management AppJavaAndroid

Android Skills you will learn 🎖️ CourseNana.COM

In this assignment, you will develop a more comprehensive event management Android application. This application project will be the next phase of the project you implemented as part of Assignment 2. Please read CourseNana.COM

Assignment 1 to find out more about the theme for this unit's assignments (event management app). CourseNana.COM

Note: as emphasised previously, the relationship between category and events is one-to- many. i.e. one category can contain one or more events. But one event can only be part of one category. CourseNana.COM

You will extend your previous assignment to add the following new functionality: CourseNana.COM

  1. Store events & event categories using the Room Database library. This will allow you to understand how database CRUD (Create Read Update & Delete) operations work in a database. CourseNana.COM

  2. Host external webpages within the app using WebView, without relying on the default web browser on the phone. CourseNana.COM

  1. Use the embedded Google Map libraries to show a category's location on the Map and leverage Geocoder to decode user-provided input to a physical address. CourseNana.COM

  2. Allow users to interact with your app using Gestures. (by ingesting TouchEvent(s) and translating them into Android Gestures) CourseNana.COM

By combining these elements, you'll create a more advanced Android application. CourseNana.COM

Assignment 3 Specifications CourseNana.COM

no marks" policy is applied across all assignments. CourseNana.COM

Generative AI tools cannot be used in this assessment task CourseNana.COM

In this assessment, you must not use generative artificial intelligence (AI) to generate any materials or content in relation to the assessment task. CourseNana.COM

As mentioned in the Assignment Theme section, this assignment is about developing the next phase of the Events Management App (EMA) and building upon Assignment 2's output by adding the functionalities listed below under the tasks section. CourseNana.COM

This is an advanced assignment, worth 40% of your overall score. Assessed Lab tasks 9 & 10 will contribute 8% to this (4% each) CourseNana.COM

Planning your ideal grade CourseNana.COM

Look at the table below to plan ahead for your desired Grade for this assignment CourseNana.COM

  • You can get a credit by coding and completing A, B + attempting C partially. CourseNana.COM

  • If you want to aim for HD in this assignment, you need to code and complete A, B, C and at a minimum, have attempted or completed Section D. CourseNana.COM

  • If you want to aim for HD++, you need to code and complete A, B, C and D and have attempted or completed Section E (Gestures). CourseNana.COM

  • You are encouraged to plan ahead for your desired grade boundary and start working on your assignment in advance. CourseNana.COM

Do not start working on later sections before completing the earlier sections (i.e. do not start working on Section D, before completing A, B, and C in that order). CourseNana.COM

B. Database (15 marks) CourseNana.COM

Notes on implementing Data Storage (Entities) CourseNana.COM

As part of Assignment 2, entities must be implemented as Room database entities (Event & Event Category). CourseNana.COM

  • LiveData of type List<Entity> will be used to observe changes and receive multiple events & event categories to display. CourseNana.COM

  • The data stored for user details remains SharedPreferences. In other words, you do not need to create an entity to store User details. CourseNana.COM

1. Database Configuration (2 marks) CourseNana.COM

1.1 New Database Class CourseNana.COM

  • Import required dependencies for the room database library. CourseNana.COM

  • Create a new EMA Database class to ensure the two entities are CourseNana.COM

    specified and the appropriate database names. CourseNana.COM

1.2 DAO, Repository & ViewModel CourseNana.COM

  • New Interface DAO to hold all CRUD operation methods listed below under other tasks. CourseNana.COM

  • The new Repository & ViewModel class is used to interact with the database. CourseNana.COM

2. Event Category (5 marks)
2.1 Event Category - Room Entity (1 mark)
CourseNana.COM

1. Transform previously created EventCategory entity to a room database entity. CourseNana.COM

o Add a new unique field "id" (Primary Key), this will be auto- generated on save of the new EventCategory record. CourseNana.COM

o Add another field called "eventLocation" (String). This will be received from the user entering location of the category in the Add Category form (see 2.2). CourseNana.COM

  1. The CategoryId field previously created should stay as is (eg: CZX- 1213) and must be stored in the database. It's just another value saved in the database table as a String. CourseNana.COM

  2. Required Getter & Setter methods are used instead to access event category attributes. CourseNana.COM

Figure 1: Modifying 'New Category Form' to ask user for Location when creating new categories. We will use this in the assignment to search and display the location on a map using Google Maps. CourseNana.COM

2.2 Event Category - Save (1 mark) CourseNana.COM

Modify the "New Category Form" UI to add a EditText to fetch location CourseNana.COM

of new categories. See Figure 1. CourseNana.COM

  • Update this Event Category Form to save category data into the database. CourseNana.COM

  • Use the ViewModel method to save a new record. CourseNana.COM

2.3 Event Category - Read All (2 mark) CourseNana.COM

  • Update the FragmentListCategory to read data from the database and remove/comment out old code of reading data from Shared Preferences. Similar to Assignment 2, this fragment is loaded inside Dashboard Activity. CourseNana.COM

  • Use the ViewModel method to read data from the database into CourseNana.COM

FragmentListCategory. CourseNana.COM

2.4 Event Category - Delete All (1 mark) CourseNana.COM

Update the "Delete All Categories" option in the options menu to delete all category records from the EventCategory database table. CourseNana.COM

You do not need to delete events of the deleted categories. If you'd like to, feel free to code this for your own knowledge but this is not required as part of the assessment and there are no marks for this behaviour. CourseNana.COM

3. Event (8 marks)
3.1 Event - Room Entity (1 mark)
CourseNana.COM

Transform previously created Event entity to a room database entity. CourseNana.COM

  • Add a new unique field "id" (Primary Key), this will be auto-generated on save of the new Event record. CourseNana.COM

  • The EventId field previously created should stay as is (eg: EME-10776) and must be stored in the database. It's just another value saved in the database table as a String. CourseNana.COM

  • Required Getter & Setter methods are used instead to access Event attributes. CourseNana.COM

3.2 Event - Save (1 mark) CourseNana.COM

3.3 Event - Update Category Count (3 mark) CourseNana.COM

Update previously implemented Dashboard Activity where you had a New Event Form to save event data into the database. CourseNana.COM

Use the ViewModel method to save a new record. CourseNana.COM

Before saving a new Event record to the database, update the validation logic implemented as part of A2 ("Category does not exist") CourseNana.COM

to validate against the list of categories saved in the database. In other words, before saving an Event you should read the list of all categories from the database and match user-provided input for the CategoryId field. If the user provided input match, only then allow a new Event record to be saved in the database. CourseNana.COM

Once an Event record is saved, increment the value of EventCount by one of the specified category record, identified by CategoryId input provided by the user. Similar to A2, however, you need to update the Category record saved in the database. CourseNana.COM

3.4 Event - Read All (2 marks) CourseNana.COM

  • Update the FragmentListEvent to read data from the database and remove/comment out old code of reading data from Shared Preferences. CourseNana.COM

  • Use the ViewModel method to read data from the database into FragmentListEvent. CourseNana.COM

3.5 Event - Delete All (1 mark) CourseNana.COM

Update the "Delete All Events" option in the options menu to delete all event records from the Event database table. CourseNana.COM

Note: Do not update the EventCount of deleted event's categories, feel free to try for your knowledge but not required as part of the assessment. CourseNana.COM

C. Google Maps (7 Marks) 4.1 Google Maps Activity (2 marks) CourseNana.COM

  1. Create a new Activity to display Google Maps, you can call it GoogleMapActivity CourseNana.COM

  2. On click of each category record (each card in the RecyclerView of CourseNana.COM

FragmentListCategory), launch GoogleMapActivity with the location of the clicked category passed on to GoogleMapActivity. CourseNana.COM

4.2 Geocoder (3 marks) CourseNana.COM

4.3 User Experience (2 marks): CourseNana.COM

Inside GoogleMapActivity, find the category location using Geocoder and move the map to the specified location. CourseNana.COM

  1. Add a new Marker to identify category location on the map with title = category name. CourseNana.COM

  2. Set the zoom level of the map to 10. CourseNana.COM

3. If the user specified location does not yield any addresses, keep the state of the map as default and show a Toast message "Category address not found". CourseNana.COM

Figure: Clicking on a Category (each card in the RecyclerView of FragmentListCategory) results in the Category location being shown on a Google Map embedded within the app. CourseNana.COM

D. Web Results CourseNana.COM

5.1 Event Google Result Activity (6 marks) CourseNana.COM

  1. Create a new Activity and use a WebView to display the Google results of the Event, you can call it EventGoogleResult. Remember to add the necessary permissions to access the internet. CourseNana.COM

  2. On click of each event record (each card in the RecyclerView of CourseNana.COM

FragmentListEvent), launch EventGoogleResult with the name of the clicked event's name passed on to EventGoogleResult. CourseNana.COM

3. Once on EventGoogleResult, build the URL by appending the Event name to the URL as shown below. CourseNana.COM

o https://www.google.com/search?q=Melbourne Cup
o In the above example your app will put the the name of the CourseNana.COM

event being clicked where 'Melbourne Cup' is. CourseNana.COM

4. Make sure when user clicks on Event card, it is opening in the embedded WebView (5.1.1) and not in Android's default browser. CourseNana.COM

Figure: Clicking on an event name makes the app open an activity with google search results for that event's name. CourseNana.COM

E. Gestures
6. Gestures (4 marks) CourseNana.COM

1. On the Dashboard activity add a new touchpad towards the bottom of your screen for your gestures, this touchpad will be used to identify user gestures. CourseNana.COM

  1. Implement Double Tap Gesture: When the user double taps on the touchpad area, save new event record (i.e. do the same behaviour as FAB). CourseNana.COM

  2. Implement Long Press Gesture: When user long presses on the touchpad area, Clear All fields (just the EditTexts & Switch reset to CourseNana.COM

false). CourseNana.COM

For troubleshooting and debugging purposes, you can also display TextView containing the last gesture name performed (see expected output video for more details). CourseNana.COM

Ensure nothing happens when a horizontal scroll is performed. CourseNana.COM

Get in Touch with Our Experts

WeChat (微信) WeChat (微信)
Whatsapp WhatsApp
Monash代写,FIT2081代写,Mobile application development代写,Event Management App代写,Java代写,Android代写,Monash代编,FIT2081代编,Mobile application development代编,Event Management App代编,Java代编,Android代编,Monash代考,FIT2081代考,Mobile application development代考,Event Management App代考,Java代考,Android代考,Monashhelp,FIT2081help,Mobile application developmenthelp,Event Management Apphelp,Javahelp,Androidhelp,Monash作业代写,FIT2081作业代写,Mobile application development作业代写,Event Management App作业代写,Java作业代写,Android作业代写,Monash编程代写,FIT2081编程代写,Mobile application development编程代写,Event Management App编程代写,Java编程代写,Android编程代写,Monashprogramming help,FIT2081programming help,Mobile application developmentprogramming help,Event Management Appprogramming help,Javaprogramming help,Androidprogramming help,Monashassignment help,FIT2081assignment help,Mobile application developmentassignment help,Event Management Appassignment help,Javaassignment help,Androidassignment help,Monashsolution,FIT2081solution,Mobile application developmentsolution,Event Management Appsolution,Javasolution,Androidsolution,