Home Page > > Details

COMP312 Assignment ,Help With Programming Assignment,Java Programming AssignmentDebug ,Java Assignment Debug C/C++ Programming| Web

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 . 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 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

 

, 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

.
(5 marks) Display day-of-week in English, e.g. ‘Monday’, ‘Tuesday’.
(10 marks) When the user selects a year of study in the , update the 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 += `

${r.code}, ${r.start}-${r.end}, room ${r.room}

`
}
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 Name Data type Description
Vid integer primary key. auto increment.
Title text a short description of the video
url text URL of the video data file in mp4 format
uploadUser integer user who uploaded the video. FK to User
Category text e.g. ‘comedy’, ‘music’
Likes integer number of likes by users

Table User
Column Name Data type Description
Uid integer primary key. auto increment.
Fullname text full name of the user
Email text email address of the user

Table VoteUp
Column Name Data type Description
Uid integer Who likes the video. FK to User.
Vid integer Which 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:

/getUser request 4%
(2%) HTTP message format. Suitable method and URL.
(2%) input parameter (1)
response 4% (2%) HTTP message format
(2%) JSON response body, contain number of videos
/searchVideo request 4%
(2%) HTTP message format. Suitable method and URL.
(2%) input parameters (1 or 2)
response 6% (2%) HTTP message format
(4%) JSON response body, contain more than 1 video
/like request 4%
(2%) HTTP message format. Suitable method and URL.
(2%) input parameter (2)
response 2% (2%) HTTP message format
/removeVideo request 4% (2%) HTTP message format. Suitable method and URL.
(2%) input parameter (1)
response 2% (2%) HTTP message format

Contact Us - Email:99515681@qq.com    WeChat:codinghelp
Programming Assignment Help!