You are on page 1of 3

You are to implement a simple Social Movie Club App to display

Movies, rate them with zero to five stars and arrange movie parties with
people in the contacts list of the device.
In this first assignment, you will implement the basic user interface for
movie listing, detail viewing and party creation. This will be extended in
Assignment 2 to provide a full application complete with storage and
networking/cloud service behaviour.
At the core of the functional requirements of this application is the
following entity:
Movie: A movie is an 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:

All of these fields are not editable. Initial test values can be copied
and pasted into the source code from OMDB queries you run by
hand.
o Title: The title of the movie (e.g. Iron Man)
o Year: the year the movie was released (e.g. 2015)
o Short Plot: a summary of the plot.
o Full Plot: a longer version of the plot.
o Poster: an image of the poster used to promote the movie.
o Id: A randomly generated combination of numbers and
letters, which uniquely identifies a movie (not visible to the
user).
These fields are entered by the user.
o Personal Rating: A zero to five star rating for the user to set.
o Party Date: The date and time of the party (e.g. 21 July
2015, 7.30PM)

o Party Venue: the location of the event (e.g. Keiths House,


88 Scala.js)
o Party Location: a String representation of geographical
latitude and longitude of the venue (e.g. -37.805631,
144.963053). You can copy and paste this into the running
App after running Google Maps manually.
o Party Invitees: a list of email addresses identifying
individuals who are invited to this party (as picked from the
users contacts list).

Functional Requirements
Your application must provide the following functionalities and meet the
non-functional requirements stated under the Other Requirements
section below.
View Movies: Users should be able to display a list of movies
where each element in the list will be a synoptic view (summary)
of the Event e.g. title, year, short plot, thumbnail poster image and
number of invitees.
View/Edit Movie Details: Users should be able to select one
movie from the list and view all of the fields above. The user
should then be able to enter/change the editable fields as well as
add or remove invitees (using appropriate system activities and
APIs).
Edit Personal Rating: In the two view modes described above
users should be able to edit the movie rating via direct
manipulation (sliding gesture).
Schedule a Party: The application should allow the optional
scheduling of a party for any movie. After users can enter the first
three Party fields and at least one party invitee is added then a
Party button should be enabled (Note: There is no need for this
button to take any action it will be expanded in assignment 2).

Other Requirements:
In assignment 1 you are not expected to persist data either locally or
remotely (e.g. via a server) however you must have enough movies so
that the list scrolls. For simplicity you can also hard code test data (but
put it in a separate class or resource for cohesion and code readability).
Your User Interface must support all of the functionalities
presented under functional requirements above.
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.
Your Target Android Version should be 4.0 (API Level 14) or
higher however for students with old devices who REALLY want
to target lower levels you can go down to 2.3.
You can write your application in the single Activity per screen
phone style however you may choose to write a tablet version
using Fragments (although this adds complexity and is not covered
until later in the semester once the basics have been covered).
You should use the Model View Controller approach to assist in
writing modular and cohesive code.
You may also want to consider branding, business models,
distribution frameworks, 3rd party integration (maps, navigation,
social media sites) etc. and how this will impact on your app
design although you will not be assessed on these features (these
will be covered in assignment part 2).
Advanced Functionality (Bonus Marks - Max 4 marks)
To receive these bonus marks you can provide any of the following
additional functionalities at two marks each (up to a maximum of four
bonus marks): These are listed from easiest to hardest :)
1) Attach a recorded voice note as an additional data item for each event.
2) SMS a newly created Party to all the invitees. Your app should also
intercept incoming SMSs and allow the user to either decline or accept
the party and add the party information to the appropriate movie
accordingly.
3) Social media integration for party invitee management.