辅导案例-CSC73010-Assignment 1

欢迎使用51辅导,51作业君孵化低价透明的学长辅导平台,服务保持优质,平均费用压低50%以上! 51fudao.top
CSC73010 – Programming Mobile Systems
Assignment 1 (S3 2019)

This assignment is due on Friday, 20 December 2019, 11:00 pm. You should submit your source code as a ZIP
archive for all parts of the assignment to assignment 1 submission link in the unit site. If the file size is too large
to upload to submission link, please send the ZIP file via e-mail or via a method specified by your tutor. 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 after the weekly sessions have covered the last of required materials.
Do not leave this assignment to the last minute – you can start on 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 Typescript for Part 1, and Angular for Part 2, to
demonstrate your knowledge of the Typescript language and Angular framework. Your apps should will be stand-
alone apps without server contact for data. The app will not save data after the browser window is closed but you
will need to maintain a JavaScript object so that changes made remain while the browser window is open.
Part 2 can be an expansion of Part 1 though you can start again from scratch if you wish. 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. This is not the preferred method.

Part 1 – Basic Typescript App (12 marks)
The aim is to develop a simple one-page TypeScript app to maintain a small database of media library information
while the browser window is open. You can initialize your app with hard coded data, or you can start with an
empty data structure. Types are important in your code, however there is no need to type everything, and general
applicability of typing is as you have seen in the study guide. For example, there is no need to define a function
type in a function definition as Typescript and the reader can easily deduce the type from the function definition.
You will have to type parameters and return values though. Marks may be deducted for too few type definitions,
i.e. writing JavaScript instead of Typescript.
The media data has the following fields:
• Title
• Author
• Publisher
• Type (“video”, “game”, “music”, “other”)
• Notes (one line of comments that user can enter)
The data has the following requirements (1 mark):
- Each record must have a value for all fields. Only the Notes field can be blank.
- The media Type must be one of the options shown.
- A Title can only be entered and saved once (it must be unique for each media).

Your database would probably be a Typescript array of JavaScript objects, each of which has properties
corresponding to the above fields. You can use another data structure if you wish but types will be necessary to
ensure integrity of the data (1 mark).

Your app should implement:
- A way to edit media data (2 marks). Remember you do not have to permanently save the data between
browser sessions, but you do have to save it while the app is active. HTML form widgets are the easiest
here.
- A way to add a new media information (2 marks). Consider re-using the edit form above, it will require
careful thought so as not to confuse the user.
- A way to delete individual media with a “Do you really want to…” interaction to reduce accidental
deletions (2 marks).
- A way to search the media by the Title field (2 marks). This will probably done with a HTML list but
you may use other techniques (e.g. implement a search text field).
Your app should also:
- Provide an interface equally viewable by narrow and wider mobile screens (it will be tested). Note that
this is just a request to keep your app simple and displayable on narrow screen as well as possibly wider
screens. You can put links in a long page to navigate your app on narrow screens. This will be important
when we get to mobile device apps later in the unit (1 mark).
- Use interactive features (e.g. use innerHTML assignments) to improve user experience (not alert()
calls!). You are expected to add error messages where necessary (1 mark).

Part 2 – Expand the App (13 marks)
Modify the app from part 1 to become a multipage Angular app. For example, place the add record on a separate
page to the search facility. You can use as many pages as you like but don’t forget to use an error page (for
malformed URLs), an Information page e.g., about the app and have your name as app developer. A Help page
showing how to use the app would be nice as well.
Marks are allocated as follows:
1. Having a working Angular app with appropriate Angular coding (3 marks). Minimally the app will have
one component and one module, but to implement the following requirements you will need more
components.
2. Using Angular forms (3 marks). This is separate to the multipage facility. If you just add Angular code
to the one-page Typescript app from Part 1, you have not used Angular forms.
3. The multipage facility using the Angular router (3 marks). This includes the navigation between pages,
error indicators and no broken links.
4. Add at least one help button on each page that shows appropriate help messages. You should make
interaction with the help facility as easy as possible. Also add helpful information, including error
messages, when data entry is incorrect (3 marks).
5. Use of CSS styles (1 mark). Just use them, there are no marks for artistic design. We are looking for the
ability to use styles. Feel free to use styles you find in the Angular documentation or other on-line sources
(a reference to the original designer should be made in your code if appropriate).

51作业君

Email:51zuoyejun

@gmail.com

添加客服微信: abby12468