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

FIT2081 Mobile application development - Assignment: Events Management App

Engage in a Conversation
MonashFIT2081Mobile application developmentEvents Management AppJavaAndroid

Things you will learn 🎖️ CourseNana.COM

In this assignment, you will develop a more comprehensive event management Android application. This project will equip you with the skills to build such an application. CourseNana.COM

This app will enable users to create, edit, and manage their events. Users will be able to categorize their events. (Note: 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

  1. You'll utilize the Options Menu to provide users with additional actions and settings.
  2. A Navigation View will be implemented for clear and consistent in-app navigation.
  3. To promote user interaction, you'll integrate Floating Action Buttons (FABs) for quick and accessible actions.
  4. The application's core content will be structured using Fragments, a modular approach for managing different UI elements.
  5. To display scrollable lists of data efficiently, you'll leverage Recycler View.
  6. For persistent data storage, you'll implement ArrayLists and SharedPreferences, allowing the app to save and retrieve data even after it's closed.

By combining these elements, you'll create a well-rounded and user-friendly Android application. CourseNana.COM

Assignment 2 Specifications ⚙️ CourseNana.COM

Assignment 2 is due on Friday of Week 7, 11:55 PM. This is an individual assignment, submission via Moodle only. What to submit on Moodle? CourseNana.COM

Assignment 2 interview will be conducted in labs in week 8. Please note, a "no interview no marks" policy is applied across all assignments. CourseNana.COM

Generative AI tools cannot be used in this assessment task
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 an Events Management App (EMA) and building upon Assignment 1's output by adding the functionalities listed below under the tasks section. CourseNana.COM

Implementing Data Storage (Entities) CourseNana.COM

  • As part of Assignment 2, entities must be implemented as JAVA classes.
  • ArrayList will be used to save multiple events & event categories.
  • ArrayList data will be saved/restored from SharedPreferences.
  • Hint: use GSON library to convert ArrayList to plain text and vice-versa. SharedPreferences only supports plain text, so to store ArrayLists you need to use a library like GSON.
  • No database implementation is required for Assignment 2, SharedPreference will be the data store for this assignment.

You can use the fromJson() method of Gson to parse JSON string into java object and use the toJson() method of Gson to convert Java objects into JSON string. The JSON string can then be stored in your SharedPreferences (and similarly you can convert JSON string to ArrayList). Read more here. CourseNana.COM

A) Event Category CourseNana.COM

"Yes" under the Required column means, the user must specify a valid value for the attribute. CourseNana.COM

Field CourseNana.COM

Type CourseNana.COM

Required CourseNana.COM

CategoryId CourseNana.COM

Autogenerate alpha-numeric
- starts with C
- followed by 2 random characters
- followed by a hyphen (-)
- followed by 4 random digits
- Example: CME-1084 CourseNana.COM

No user input required, auto generated CourseNana.COM

Name CourseNana.COM

String
Allowed values: Aplhabet characters only, empty space, or Alpha-numeric
e.g. Social, Melbourne, Venue 123, etc
CourseNana.COM

Yes CourseNana.COM

Event Count CourseNana.COM

Number (Postive Integer only) CourseNana.COM

No CourseNana.COM

isActive CourseNana.COM

Boolean CourseNana.COM

No CourseNana.COM

  CourseNana.COM

B) Event CourseNana.COM

"Yes" under the Required column means, the user must specify a valid value for the attribute. CourseNana.COM

Field CourseNana.COM

Type CourseNana.COM

Required CourseNana.COM

EventId CourseNana.COM

Autogenerate alpha-numeric
- starts with E
- followed by 2 random characters
- followed by a hyphen (-)
- followed by 5 random digits
- Example: EME-10776 CourseNana.COM

No user input required, auto generated CourseNana.COM

CategoryId CourseNana.COM

String (Reference)
Id of one of the existing categories previously saved to SharedPreferences CourseNana.COM

Yes, manually typed by user CourseNana.COM

Name CourseNana.COM

String
Allowed values: 
Aplhabet characters only, empty space, or Alpha-numeric
e.g. AFL Grand Final, Melbourne Cup, Boxing Day match Day 1, etc
CourseNana.COM

Yes CourseNana.COM

Tickets Available CourseNana.COM

Number (Postive Integer only) CourseNana.COM

No CourseNana.COM

isActive CourseNana.COM

Boolean CourseNana.COM

No CourseNana.COM

  CourseNana.COM

Tasks CourseNana.COM

Login & SignUp Activities remain unchanged. Once users successfully log in they will be redirected to Dashboard Activity as usual. From there on majority of assignment 2 functionalities will be added as per below. CourseNana.COM

1) Navigation drawer CourseNana.COM

1.1 Add a navigation drawer to the Dashboard Activity previously developed as part of assignment 1, that lists the following navigation menu items (1.2 to 1.5). CourseNana.COM

1.2 View All Categories: On click of this menu item, a new Activity "ListCategoryActivity" must load, see task 4.2. CourseNana.COM

1.3 Add Category: On click of this menu item, the user will navigate to the "New Event Category" activity, previously developed as part of A1, for changes required to "New Event Category" see task 5.2. CourseNana.COM

1.4 View All Events: On click of this menu item, a new Activity "ListEventActivity" must load, see task 4.4. CourseNana.COM

1.5 Logout: This option takes the user back to the login screen. You would need to ensure that the "back" button if pressed after logout should not allow navigation back to Dashboard Activity. CourseNana.COM

2) Toolbar & Options Menu CourseNana.COM

Add an options menu to the Dashboard Activity with the following menu items: CourseNana.COM

1.1 Refresh: On click of this button reload the content of Dashboard Activity, including the list of categories. CourseNana.COM

1.2 Clear Event Form: this operation clears all the fields (EditTexts) in Dashboard. CourseNana.COM

1.3 Delete All Categories: this operation deletes all the saved categories in SharedPreferences. Note: dont delete any other data (including events or login data). CourseNana.COM

1.4 Delete All Events: this operation deletes all the saved events in SharedPreferences. Note: dont delete any other data (including categories or login data). CourseNana.COM

3) FAB - Floating Action Button CourseNana.COM

3.1 On Dashboard Activity, add a Floating Action button which allows event managers to quickly save an event. CourseNana.COM

3.2 Display a Snackbar with "UNDO" action, this will allow the user to undo their recent save operation. CourseNana.COM

4) New Fragments & Activities CourseNana.COM

A Fragment represents a reusable portion of your app's UI. A fragment defines and manages its own layout, has its own lifecycle, and can handle its own input events. Fragments can't live on their own. They must be hosted by an activity or another fragment. The fragment’s view hierarchy becomes part of, or attaches to, the host’s view hierarchy. Read more. CourseNana.COM

In this assignment you will be creating two Fragments (4.1 and 4.2). Each of these fragments will be displayed in a separate screen (4.3 and 4.4). Note: 4.3 (Fragment for viewing all categories) is also displayed on the Dashboard. CourseNana.COM

4.1 FragmentListCategory CourseNana.COM

  • Create a new Fragment named "FragmentListCategory", responsible for listing all categories using a RecyclerView.
  • Each card of the RecyclerView must display all the attributes of a category (see entity table above)
  • Code to read category data from SharedPreferences should be implemented/executed as part of the fragment

4.2 FragmentListEvent CourseNana.COM

  • Create a new Fragment named "FragmentListEvent", responsible for listing all the events using a RecyclerView.
  • Each card of the RecyclerView must display all the attributes of an event (see entity table above)
  • Code to read category data from SharedPreferences should be implemented/executed as part of the fragment

4.3 ListCategoryActivity CourseNana.COM

4.3.1 If the user launches this activity using the navigation menu item (1.2), display "FragmentListCategory" within the layout of this activity. CourseNana.COM

4.3.2 Add a toolbar to this activity and implement a navigation feature so that the user can navigate 'back' to the previous activity (i.e. Dashboard) CourseNana.COM

4.4 ListEventActivity CourseNana.COM

4.4.1 If the user launches this activity using the navigation menu item (1.4), display "FragmentListEvent" within the layout of this activity. CourseNana.COM

4.4.2 Similar to 4.3.2, implement a toolbar to help with user navigation. CourseNana.COM

5) Events Dashboard CourseNana.COM

After the user logs in successfully, in your app they should be taken to a Dashboard Activity (as seen in Assignment 1). In this assignment, make the following changes. See expected output for what the UI should look like. CourseNana.COM

5.1 Load the "FragmentListCategory" fragment at the top of the Dashboard Activity, see expected output for more details. CourseNana.COM

5.2 Underneath the FragmentListCategory, show the form to add a new event as developed previously. However no "save" button is required, FAB will be replacing the save event button CourseNana.COM

5.3 On saving an event increment the "Event Count" attribute of the category specified by the user. e.g. If the user saves an event to the category "Social" with a current event count of 5, the new value for the event count will be 6 after a successful save operation. CourseNana.COM

5.4 If invalid data is specified while saving an event show an error Toast message CourseNana.COM

  • "Invalid event name" if invalid event name examples: "1111111", "Melbourne % Game", etc
  • "Invalid 'Tickets available'": this field can only contain 0 or positive numbers. Do not allow users to enter negative values. If user enters negative number, default to zero.
  • "Category does not exist" if the user specified a non-existing category Id

6) New Event Category CourseNana.COM

Use the same Activity created as part of Assignment 1 to save a category and make the following changes. CourseNana.COM

  • On successful save of category, the user should automatically redirect to Dashboard Activity
  • If invalid data is specified while saving a category show an error Toast message
    • "Invalid category name": invalid category name examples: "1111111", "Melbourne % Centre", etc.
    • "Invalid Event Count": this field can only contain 0 or positive numbers. Do not allow users to enter negative values. If user enters negative number, default to zero.

Notes CourseNana.COM

  • Incoming SMS functionality for filling event forms is optional for this assignment (see Activity 5: New Event).
  • If your app fails to build tutors will try to resolve bugs to an extent, and you will be penalised for build failures (minimum -2 or no marks for features due to which the app fails to build).


CourseNana.COM

CourseNana.COM

Get in Touch with Our Experts

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