Disclaimer. The page just helps you to check whether your submission fulfills the requirements of the specification. It does not serve as a replacement to the specification. During grading, we will strictly follow the requirements in the specification so please make sure that you read it carefully.
Task 1: Front-end, Responsive Web Client
Responsive web design
- Are the video player and QR code only displayed in Desktop View?
- Are the captions in the remote controller only displayed in Tablet View?
- Does the CSS used for designing the responsive UI match with the browser width requirements stated in the specification?
- Can your application be used as a remote client on a desktop computer by reducing the width of the browser window?
Session QR code
- Does the QR code points to the current URL? (Hint: Use a QR code reader to scan it in your smartphone!)
YouTube Video Player (YTVP)
- Is the video player created with YouTube IFrame API?
- Is the video player disabled in Tablet View or Mobile View? (Hint: Consider the following scenario: if the player button is clicked, there should be no sounds coming out from the player, if you just hide it instead of destroying it.)
YouTube Remote Controller (YTRC)
- Do you use the mouse
clickevent to trigger actions in the controller?
- Does your remote controller match the behaviors described in the specification?
- Does your remote controller correctly handle the scenarios that should have no effect on the player?
- Does your playlist support add/remote/clear all operations?
- Are the video ID and title of the videos displayed in the playlist?
- Can the player play the selected video (which is selected by mouse
click) in the playlist?
- Is the ordering of the playlist correct?
- Is the most updated version of the playlist stored on the
- Do you perform input validation?
- Do you eliminate all the hard-coded values? (Hint: Never use absolute path inside your application!)
Task 2: Node.js Backend
Web page hosting
Session creation, membership, and management
- Does the server create and redirect to a new session when the client enters the entry page of your application?
- Can the client join an existing session by using the session URL (either by typing manually or scanning the QR code)?
- Does your application support multiple sessions?
Playlist synchronization over Socket.IO
- Is the playlist retrieved in the same order as described in the specification, or Week #8 tutorial notes, p.8?
- Is the playlist downloaded from the other clients in the same session stored locally?
Remote controller action broadcast over Socket.IO
- Can your application trigger an action in the video player from a remote client of the same session?
- Do you deploy your application on OpenShift and test whether everything works?
- Do you update the contents in
- Do you include all required packages in
- Do you use the environment variables in OpenShift (e.g.,
OPENSHIFT_NODEJS_IP), instead of using hard-coded values, to set up the server?
- Do you include the
- If you are ready to submit your assignment, please
git pushto the
asgn2repository in GitLab. Don't submit to another repository or you will receive 0 marks because of a failed submission.
Hope you enjoy this assignment!