联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> Java编程Java编程

日期:2019-11-21 11:55

COMP312 Internet Programming II

Assignment 2

Student number: _______________________  Due date: Nov 22, 2019


Q1. (40 marks)  Write a client-side JavaScript program to display a lecture time table in <table>. The time table data is provided in a script file ‘timetab.js’. The program allows the user to choose a year of study (1 to 4).

Requirements:

(5 marks) Include an HTML document with a <form> for selecting year of study

(5 marks) No JavaScript code embedded in the HTML document. Save your code in *.js files

(5 marks) Display the weekly lectures in a <table>, group by day-of-week. Arrange the lectures in time order.

(5 marks) Each row shows the course code, course title, day-of-week, start time, end time, and classroom in separate table cells <td>.

(5 marks) Display day-of-week in English, e.g. ‘Monday’, ‘Tuesday’.

(10 marks) When the user selects a year of study in the <form>, update the <table> to show the lectures for the selection.

(5 marks) By default, the page shows the weekly lectures of year 3.

Your answer should include the source code of your HTML file and your script file. Don’t include jQuery source file or ‘timetab.js’.



Q2. (30 marks)  The following application server handles two endpoints: one for the image file /ipm.png and one for inquiring the lectures of a given course code.

var express = require('express');

var app = express();

// import and database connection for ‘db’ omitted


app.get('/ipm.png', (req, res) => {

 res.sendFile(__dirname+'/public/ipm.png');

});

app.get('/lecture/:code', (req, res) => {

 var code = req.params.code;

 db.all("SELECT * from timetab where code=?",

 [code], function(err, rows) {

   if (err) throw err;

   var ans = '';

   for (row of rows) {

     ans += `<p>${r.code}, ${r.start}-${r.end}, room ${r.room}</p>`

   }

   res.send(ans);

 });

});

app.listen(3000);

Suppose that the server is running and waiting for incoming HTTP requests. The server first receives a request for the URL ‘/lecture/comp312’. While it is waiting for the database result, the server receives another request for the URL ‘/ipm.png’.

Explain how the event loop handles the two HTTP requests.  The event loop wakes up (at least) three times to handle three events (two for incoming requests, one for database operation).

Requirements:

(10 marks) Describe how the application server searches the stack of routes in handling the two requests.

(5 marks) Point out the order that the three events occur.

(5 marks) Describe the statements that the server runs to handle the first event.

(5 marks) Describe the statements that the server runs to handle the second event.

(5 marks) Describe the statements that the server runs to handle the third event.




Q3. (30 marks) An online video site is going to design and implement an RPC-style Web API for its Ajax web app. The Web API has the following four endpoints: /getUser, /searchVideo, /like and /removeVideo. The browser-side client can manipulate data in a server-side database using the API. The database schema is provided below.

Table Video

Column NameData typeDescription

Vidintegerprimary key. auto increment.

Titletexta short description of the video

urltextURL of the video data file in mp4 format

uploadUserintegeruser who uploaded the video. FK to User

Categorytexte.g. ‘comedy’, ‘music’

Likesintegernumber of likes by users


Table User

Column NameData typeDescription

Uidintegerprimary key. auto increment.

Fullnametextfull name of the user

Emailtextemail address of the user


Table VoteUp

Column NameData typeDescription

UidintegerWho likes the video.  FK to User.

VidintegerWhich video is liked.  FK to Video.




Design the Web API. For each of four endpoints, write a sample HTTP request message and a sample response message (for successful operation) to illustrate your design. The following are detail requirement.


/getUser – Retrieve user information. The input parameter is uid. The response must include uid, full name and email of the user.  In addition, it must include the number of videos uploaded by the user.

/searchVideo – Search for videos using keyword in video title and category. The input parameters are keyword and category. The sample response must contain information about more than 1 video. The response includes vid, title, URL and likes.

/like – A user ‘likes’ a video.  The input parameters are uid and vid. Response body is empty.

/removeVideo – Remove a video. The input parameter is vid. Response body is empty.

Marking scheme:


/getUserrequest4%

(2%) HTTP message format. Suitable method and URL.

(2%) input parameter (1)

response4%(2%) HTTP message format

(2%) JSON response body, contain number of videos

/searchVideorequest4%

(2%) HTTP message format. Suitable method and URL.

(2%) input parameters (1 or 2)

response6%(2%) HTTP message format

(4%) JSON response body, contain more than 1 video

/likerequest4%

(2%) HTTP message format. Suitable method and URL.

(2%) input parameter (2)

response2%(2%) HTTP message format

/removeVideorequest4%(2%) HTTP message format. Suitable method and URL.

(2%) input parameter (1)

response2%(2%) HTTP message format


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp