Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

COMP3006

FULL-STACK DEVELOPMENT

20 CREDIT MODULE

ASSESSMENT: 100% Coursework

W1: 30% Set Exercises

W2: 70% Report

MODULE LEADER: Dr Mark Dixon

MODULE AIMS

•   This module explores the production of dynamic web applications with a particular focus on the web environment.

•    Key elements such as object oriented and event-based scripting, asynchronous client- server communication and distributed content representation are explored through practical production.

•   The production of working systems use frameworks such as HTML, CSS, JavaScript/JQuery and Node.js.

ASSESSED LEARNING OUTCOMES (ALO):

1.   Apply principles of object oriented and event-based scripting as well as synchronous and asynchronous client-server communication.

2.   Demonstrate an understanding of how application content is represented and communicated across the web and how this affects the user experience.

3.   Design, implement and evaluate/test dynamic web-based applications.

Overview

This document contains all the necessary information pertaining to the assessment of COMP3006 Full-Stack Development. The module is assessed via 100% coursework, across two elements:

30% Set Exercises and 70% Report.

The sections that follow will detail the assessment tasks that are to be undertaken. The submission and expected feedback dates are  presented in Table 1. All assessments are to be submitted electronically via the respective DLE module pages before the stated deadlines.

Submission Deadline

Feedback

Individual Set Exercises (30%)

Tue 14 Nov 2023 16:00 GMT

After submission

Individual Project Report (70%)

Mon 8 Jan 2024 15:00 GMT

Mon 5th Feb 2024

Table 1: Assessment Deadlines

All assessments will be introduced in class to provide further clarity over what is expected and how you  can  access  support  and  formative  feedback  prior  to  submission.  Whilst  the  assessment information is provided at the start of the module, you are not expected to start this immediately (as you will often not have sufficient understanding of the topic). The module leader will provide guidance in this respect.

This document was last updated: Wednesday, 06 December 2023

Assessment 1: Set Exercises (Web Development)

Task:

This coursework contributes 30% of the overall module mark for COMP3006 and is an individual assignment. It will be administered via the DLE quiz facility and as such will be run entirely online.

Note: This is separate from the lab exercises that are handed out each week (which are not assessed).

Assessment 2: Full-Stack Project

Task:

As with any software development project, the details of this brief may change slightly overtime. You must check for changes and announcements (both email and in teaching sessions) regularly.

This assignment contributes 70% of the overall module mark for COMP3006 and is an individual assignment. The final submission must be submitted to the DLE by the specified submission dates.

This is a negotiated project in which you must define the specific content you will produce and the process you will follow, within the guidelines given below. Examples of previous projects can be found on the DLE. Your project must satisfy the following requirements:

•    The server should use a database (either MongoDB or PouchDB) to store information and  pass it to the client through an API. Other types of database are not acceptable for this module.

WebSockets should be used to enable communication between two clients.

•    You must produce a working system, comprising a client constructed using dynamic web technologies (HTML, CSS and JavaScript) and a server using Node.js (no other server is permitted).

•    The application must use JavaScript as the main development language both client-side and server-side (no other language is acceptable).

•    The  system must be interactive, i.e., the user should be able to affect its  behaviour by interacting with it using a suitable input device (such as keyboard and mouse).

•    The system must run on multiple computers, i.e., it must be distributed.

•    Include CRUD functionality for at least 3 entities.

•    Include appropriate security considerations (such as a login system)

•    Be selected from one of the following topics and include appropriate functionality:

o   School Learning Platform

o   Project Management System

o   eCommerce System

o   Hotel Room Booking System

o   Library System

o   Cinema Booking System

o   GP / Hospital / Dental Appointment Booking System

o   Gym Workout Record System

o   Restaurant / Takeaway Ordering System

o   Travel (Bus / Train / Flight) Booking System

The final product should reflect an effort of 80+ hours of dedicated work.

You must document the system, including its design and details of the implementation process you have followed, and provide a description of your DevOps pipeline. This should include your code repository, continuous integration/deployment setup, unit tests, integration tests, behaviour tests, code analyses, usage metrics and usage analyses.

COURSEWORK DELIVERABLES

There are three main deliverables for this assignment.

D1 – Report

For this deliverable you must submit a report file (in PDF format) containing a written report describing your project. The report must include:

•   A link to your code on GitHub

(no other source will be marked, you must ensure it can be accessed).

•   A link to your video on YouTube

(no other source will be marked, you must ensure it can be accessed).

The report must be a document of no more than 2,000 words. Please use screenshots and sketches to illustrate the functionality and UML diagrams (or appropriate alternatives) to illustrate the design. The report should explain:

•    Requirements (ca. 400 words with additional documents in appendices)

o Who is the application aimed at?

o What features were included and why?

•    Design (ca. 500 words with UML diagrams)

o What is the system architecture (clients/servers/peers)?

o How do the components interact?

o How are the data and code structured?

o Why are these structures appropriate?

•    Testing (ca. 400 words)

o What automated testing have you performed?

o What usability testing have you performed?

•    DevOps pipeline (ca. 400 words)

o Describe your development environment.

o Describe your continuous integration pipeline and how you used it.

•    Personal reflection (ca. 300 words)

o What worked/didn’twork well (techniques and technologies you used)?

o What lessons would you take from this project into your next project.

Please check your submitted files are correct by downloading them again and checking that they work. You should receive a confirmation receipt by email when your work has been properly submitted – if you do not receive this email then your work has not been submitted.

D2 – Source Code

The code you have written (both the software and the tests). This must be shared on GitHub and a link included in your report (D1). Use your real names for your GitHub account, not nick names, and share it with the account md-supervisor. This should contain all of the code you have written yourself and should (including copies of the folders and files needed to run your application). Failure to submit a working link within your report is likely to lead to a substantially reduced (failing) mark

D3 – Video

Avideo of 5 minutes (only the first 5 minutes will be marked) in which you present a demonstration of the main functionality working, and a brief demo of the supporting processes (tests running and DevOps process). A link must be included in your report (D1) and the video must be accessible.

The video must be uploaded as an unlisted YouTube video. The video will be used to assess the implementation of the software, and failure to submit a working link within your report is likely to lead to a substantially reduced (failing) mark.

These deliverables must be submitted to the DLE by the submission deadline.

Frequently Asked Questions (FAQ)

Q) Can we use Angular?

Yes

Q) Can we use React?

Yes

Q) Can we use Next.js?

Yes, but there is limited support from staff available, and if it causes issues consider removing it. Q) Can we use CSS frameworks (such as Bootstrap, Tailwind CSS, and Material UI)?

Yes, but there are no marks for aesthetics (so be careful to prioritise carefully)

Q) Can we use Firebase?

No.

Q) Can we use .Net?

No

Q) Can we use C#?

No

Q) Can we use TypeScript?

Yes

Q) Do we have to use TypeScript?

No (you can choose to use either classic JavaScript or TypeScript)