辅导COMP228、讲解Web/css程序语言、辅导Data-Driven App
- 首页 >> 其他 COMP228 Assignment 1 w/c 25th February 2019
Developing a Data-Driven App.
Your Task
You will design and develop an application written in Swift 4 (or later) for iPhone 8. The App will read data from a
web service connected to a database that provides information about research reports written by academic staff in
the Computer Science Department. Each record in the database includes the following information:
Year the report document was published
Document id (starts at 1 every year and is incremented for every document submitted that year)
Owner (the staff username of the document’s submitter – or null if not a current staff member)
Email address of owner (or null, if no email has been defined)
Authors (a list of the people who wrote the document)
Title of the report
Abstract of the report document (or null if none)
URL of the document as a PDF or PS file (or null if no copy is available)
Comment (a short string, but usually null)
The date on which the entry in the database was last modified.
The App should:
1. Retrieve the JSON data about the technical reports (using the URL below), and have an initial
View that displays a table, containing the information (e.g. each cell displays that paper’s title
and authors). The papers in the table should be sorted descending by year published (i.e. the
most recent Year’s documents should appear first in the table). The table should have a section
for every year (i.e. not one continuous table of all the documents). Cells containing an item that
the user has marked as a favourite (see item 2) should be highlighted. (worth 40%)
2. On the user selecting a cell in the table, the app should transition to a second View that contains
more detailed information about the selected document (including displaying the title, authors,
abstract and contact email if any). This View should also include a button where a user can
indicate that this report is one of their favourites, and button for returning to the initial view. Any
unwanted markup (e.g. HTML tags etc) should be removed. (worth 20%)
3. (Where a paper’s information includes a URL link to a PDF) provide a button or other
mechanism to display the full report document (PDF), using that URL. (worth 15%)
The web service can be found at the following URL. Note that data is returned as a JSON formatted string:
https://cgi.csc.liv.ac.uk/~phil/Teaching/COMP228/techreports/data.phpclass=techreports2
The app must work in portrait orientation, on both an iPhone 8, and an iPad (e.g. iPad Pro 9.7”), maintaining a
sensible UI in both (worth 10%)
Please ensure that your code is appropriately commented and meaningful variable and constant names are used.
(worth 5%)
Use Core Data to store and retrieve details of the user’s favourite reports (i.e. once a user has marked some reports
as their favourites, if your app is stopped, upon running it again, it should display the table of reports, with a
checkmark against the user’s favourites). (Worth 10%)
Important - Please note:
Do not use any third party frameworks in your App (e.g. Alamofire). Use Apple standard frameworks ONLY.What to Submit
Your completed project should be zipped up and submitted via the online submission system.
(Right click the icon for the folder containing the project file and folder and choose “Compress”)
Also submit a short informal document (1-2 sides of A4 at most) documenting how to use your app, and indicating
any notable features.
Deadline for submission: Monday March 18th 2019 at 12:00 (midday)
Reminder: This is the first of two assignments, each of which is worth 15% of the total mark for COMP228. Your
portfolio of lab work will be worth another 10%.
Notes:
Suggestions for a User Interface:
Sample JSON data:
{ "techreports": [{"year":"2001","id":"3","owner":null,"email":null,"authors":"Peter
McBurney and Simon Parsons","title":"Towards a Formal Theory of Dialogue Game Protocols for
Autonomous Agent
Interactions","abstract":null,"pdf":"https://intranet.csc.liv.ac.uk/research/techreports/tr2
001/ulcs-01-003.ps","comment":null,"lastModified":"2018-10-19
14:53:15"},{"year":"2001","id":"2","owner":null,"email":null,"authors":"Peter McBurney and
Simon Parsons","title":"A Hundred Schools of Thought Automatically
Contending","abstract":null,"pdf":"https://intranet.csc.liv.ac.uk/research/techreports/tr200
1/ulcs-01-002.ps","comment":null,"lastModified":"2018-10-19 14:53:19"} ]}
Developing a Data-Driven App.
Your Task
You will design and develop an application written in Swift 4 (or later) for iPhone 8. The App will read data from a
web service connected to a database that provides information about research reports written by academic staff in
the Computer Science Department. Each record in the database includes the following information:
Year the report document was published
Document id (starts at 1 every year and is incremented for every document submitted that year)
Owner (the staff username of the document’s submitter – or null if not a current staff member)
Email address of owner (or null, if no email has been defined)
Authors (a list of the people who wrote the document)
Title of the report
Abstract of the report document (or null if none)
URL of the document as a PDF or PS file (or null if no copy is available)
Comment (a short string, but usually null)
The date on which the entry in the database was last modified.
The App should:
1. Retrieve the JSON data about the technical reports (using the URL below), and have an initial
View that displays a table, containing the information (e.g. each cell displays that paper’s title
and authors). The papers in the table should be sorted descending by year published (i.e. the
most recent Year’s documents should appear first in the table). The table should have a section
for every year (i.e. not one continuous table of all the documents). Cells containing an item that
the user has marked as a favourite (see item 2) should be highlighted. (worth 40%)
2. On the user selecting a cell in the table, the app should transition to a second View that contains
more detailed information about the selected document (including displaying the title, authors,
abstract and contact email if any). This View should also include a button where a user can
indicate that this report is one of their favourites, and button for returning to the initial view. Any
unwanted markup (e.g. HTML tags etc) should be removed. (worth 20%)
3. (Where a paper’s information includes a URL link to a PDF) provide a button or other
mechanism to display the full report document (PDF), using that URL. (worth 15%)
The web service can be found at the following URL. Note that data is returned as a JSON formatted string:
https://cgi.csc.liv.ac.uk/~phil/Teaching/COMP228/techreports/data.phpclass=techreports2
The app must work in portrait orientation, on both an iPhone 8, and an iPad (e.g. iPad Pro 9.7”), maintaining a
sensible UI in both (worth 10%)
Please ensure that your code is appropriately commented and meaningful variable and constant names are used.
(worth 5%)
Use Core Data to store and retrieve details of the user’s favourite reports (i.e. once a user has marked some reports
as their favourites, if your app is stopped, upon running it again, it should display the table of reports, with a
checkmark against the user’s favourites). (Worth 10%)
Important - Please note:
Do not use any third party frameworks in your App (e.g. Alamofire). Use Apple standard frameworks ONLY.What to Submit
Your completed project should be zipped up and submitted via the online submission system.
(Right click the icon for the folder containing the project file and folder and choose “Compress”)
Also submit a short informal document (1-2 sides of A4 at most) documenting how to use your app, and indicating
any notable features.
Deadline for submission: Monday March 18th 2019 at 12:00 (midday)
Reminder: This is the first of two assignments, each of which is worth 15% of the total mark for COMP228. Your
portfolio of lab work will be worth another 10%.
Notes:
Suggestions for a User Interface:
Sample JSON data:
{ "techreports": [{"year":"2001","id":"3","owner":null,"email":null,"authors":"Peter
McBurney and Simon Parsons","title":"Towards a Formal Theory of Dialogue Game Protocols for
Autonomous Agent
Interactions","abstract":null,"pdf":"https://intranet.csc.liv.ac.uk/research/techreports/tr2
001/ulcs-01-003.ps","comment":null,"lastModified":"2018-10-19
14:53:15"},{"year":"2001","id":"2","owner":null,"email":null,"authors":"Peter McBurney and
Simon Parsons","title":"A Hundred Schools of Thought Automatically
Contending","abstract":null,"pdf":"https://intranet.csc.liv.ac.uk/research/techreports/tr200
1/ulcs-01-002.ps","comment":null,"lastModified":"2018-10-19 14:53:19"} ]}