Assignment title: Information
CSC73010 – Programming Mobile Systems
Assignment 1 (S1 2016)
This assignment is due on Monday week 8 (18th April). You should submit your source code as a ZIP archive
for all parts of the assignment via e-mail. Note that marks will be deducted for poorly structured or
uncommented code. All source code files submitted must include title comments that at least identify the author
and the assignment part. The separate parts of the assignment are to be submitted in separate subdirectories (e.g.
Part1, Part2 etc.) – submissions that ignore this instruction and leave all assignment files in one directory will be
penalised.
Please note that this assignment will be due some weeks after the weekly sessions have covered the last of
required materials. Do not leave this assignment to the last minute – do it while concepts are fresh in your mind.
You may start Part 1 before you have studied all of the required materials. If you require an extension you must
apply to your tutor before the due date to be considered. Unless an extension is approved there is a penalty (see
Unit Information Guide).
This assignment requires you to develop an application using jQuery Mobile to demonstrate your mastery of the
jQuery Mobile framework and its included components. Your app should be one HTML page but you will need
to load static web pages as a data source using the jQuery AJAX methods. The app will not save data after the
browser window is closed but you will need to maintain a JavaScript object or HTML object so that changes
made remain while the browser window is open (Assignment 2 will save data between sessions).
Part 2 is an expansion of Part 1. It is recommended that you save your Part 1 before you start modifying it for
Part 2. For lesser marks, you can divide your assignment into several smaller HTML pages to demonstrate the
different aspects without having everything working together. Hints will be published on the unit Forums.
Part 1 – Basic App (14 marks)
The aim is to develop a HTML app to maintain a small database of contact information while the browser
window is open. You will initialise your data by loading a HTML file from a URL using AJAX (2 marks).
The data has the following fields:
Contact Surname (compulsory)
Other names
Company name
E-mail address
Phone number 1
Phone number 2
Postal address
The HTML file that contains the initial data stores them in an HTML table. An example initial file is provided
with the assignment or you can load it from:
http://spike.scu.edu.au/~barry/CSC73010/contacts.html
You can download these pages and test your app on your own server (e.g. Node.js server). Your app should
have a configuration page (2 marks) where the base URL is entered and saved (as a string) along with any other
configuration you would like to add. This will allow testing by your marker. You can use a default value to
save having to type this all the time. Note that this may break your cross-domain configuration of your browser.
Your app should implement:
- (2 marks) A way to edit contact data (remember you do not have to permanently save the data)
- (1 mark) A way to add a new contact
- (2 marks) A way to delete individual contact with a "Do you really want to…" interaction to reduce
accidental deletions
- (2 marks) A way to search the contacts by the Surname field (for full marks use a searchable list of
contact surnames with alphabetic dividers). This is tricky because you will need to dynamically
generate the jQuery Mobile list.
Your app should also:
- (2 marks) Provide an interface equally viewable by narrow and wider mobile screens (it will be tested).
- (1 mark) Use jQuery Mobile features to improve user experience (not alert() calls)
Part 2 – Expand the App (6 marks)
Expand the app from part 1 retaining the one HTML page/multiple jQuery Mobile page implementation.
1. (2 marks) Change the theme to something less standard and to make your App more appealing. For
full effect, use multiple themes. Marks awarded are awarded for demonstrating your technical theme
use rather than artistic effect.
2. (2 marks) Add a help button (maybe a few) on each page that displays help information. You should
use one of the features that appears and disappear easily without disturbing the page.
3. (2 marks) Add a login feature. Note that this will not need to work but your app should remember the
current login name and display it somewhere, e.g. on the main page. A log-out ability should also be
implemented. You can ignore any password entered and assume it is correct, but you should have a
password field to hide the password as it is entered.