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.