COSC2309/2347: Mobile Application Development Assignment Help
Task:
You are to implement a simple Movie Night Planner app to create and schedule movie viewing events and invite attendees. In this first assignment, you will implement the basic user interface for event creation (including movie details), editing, and calendar viewing. This will be extended in Assignment 2 to provide a full application complete with persistent storage and networking/cloud service behaviour (including a location-based alarm that will trigger based on your distance from your current location to that of the movie event).
At the core of the functional requirements of this application are the following two entities:
Event: An
event is a social movie viewing activity that occurs at a specific date, time and location and has a number of attendees. It must (at a minimum) maintain the following information:
- Id: A randomly generated combination of numbers and letters, which uniquely identifies an event (not visible to the user).
- Title: The title of the event (e.g. “Scary Saturday!”)
- Start Date: The start date and time of an Event (e.g. April 6th, 2019, 30PM)
- End Date: The end date and time of an Event (must be later than start date)
- Venue: The location of the event (e.g. “MegaDupaMultiPlex, 13 js”)
- Location: A String representation of geographical latitude and longitude of the venue (e.g. -37.805631, 144.963053), you can get this from Google Maps web page directly (i.e. outside of your app by just copying and pasting the data).
- Attendees: A list of individuals who are invited to this event (as picked from the user’s contacts list .. see supplied contacts_data/).
Movie: Each event has associated details of the movie to be viewed/screened as follows:
- Id: A randomly generated combination of numbers and letters, which uniquely identifies a movie (not visible to the user)..
- Title: The title of the movie (e.g. “Blade Runner”)
- Year: the year the movie was released (e.g. 1982)
Poster: an image of the poster used to promote the movie.
Functional Requirements
Your application must provide the following functionalities and meet the non-functional requirements stated under the “Other Requirements” section below.
- Schedule and Unschedule an Event: The application should allow the creation of an unbounded set of events. For simplicity, you can ignore duplicate entries or events with overlapping times (we will make sure test data does not overlap when assessing your assignment).
- Edit Event Details: Users should be able to edit the event details as well as add or remove attendees.
- Add/Edit Movie details for an event: This should be implemented in a separate screen or Activity from the Event scheduling/editing described in the previous two points.
- View Events: Users should be able to display a list of events where each element in the list will be a synoptic view (summary) of the Event e.g. event title, date, venue, movie title and number of attendees. The list should be sorted according to date (user can toggle ascending/descending order).
- View Calendar: Users should be able to view the entries in a calendar style layout, based on either* a week or month view (you can look at the calendar app on an Android device or emulator for ideas but are free to be creative with your layout). IMPORTANT NOTE: You must create your own UI using standard layouts i.e. you cannot just use a standard or third party Calendar widget.
- Selection/Editing: In the view modes described above, i.e. when events are shown in a list or in a Calendar, users should be able to add or edit items via direct manipulation (e.g. long press or gesture).
* You only have to choose one or the other but if you are having fun with layouts you are welcome to create both so that you have a total of three different views!
Other Requirements:
- In assignment part 1 you are not expected to persist data however your data must not be limited to the lifetime of any specific activity (i.e. must have application scope to facilitate testing). You should read data from the supplied txt and movies.txt when your app is first loaded.
- Your Graphical User Interface (GUI) must support all of the functionalities presented under “functional requirements” above.
- The preferred Target Android Version is API Level 25, however, for students with old devices who want to target lower levels you are allowed to do so.
- You can write your application in the single Activity per screen phone style however you may choose to write a tablet version using Fragments.
- You should use the Model View Controller (MVC) approach to assist in writing modular and cohesive code. In particular we will be looking for a domain neutral model implementation which is not dependent upon Android specific features (i.e. * class/package dependencies only not android.*). Some examples of class/interface usage in your model would be: Event(interface)<-AbstractEvent<-EventImpl and Movie(interface)<-AbstractMovie<-MovieImpl
- For your UI you should aim for simplicity. You will not be marked on the aesthetics of your design (beyond common sense!) but we are looking for clear workflows. The only constraints on the design and classes used are those explicitly stated above, otherwise you are free to be creative (menus, buttons, toolbars, navigation drawers etc.)
- Your implementation must make efficient use of common values (such as Strings, Dimensions or Colors) by (re)using values from the appropriate XML resource file. i.e. do not hardcode such values into your layout files or your application.
- You may want to consider branding, business models, distribution frameworks, 3rd party integration (maps, navigation, social media sites) etc. and how these would impact on your app design although you will not be assessed on these features (some of these will be covered in assignment part 2).
This COSC2309/2347: IT Assignment has been solved by our IT experts at onlineassignmentbank. Our Assignment Writing Experts are efficient to provide a fresh solution to this question. We are serving more than 10000+ Students in Australia, UK & US by helping them to score HD in their academics. Our Experts are well trained to follow all marking rubrics & referencing style.