Before you submit your project, modify the following table to include everyone's full name and GitHub usernames:
Group Member Name | GitHub Username |
---|---|
Justin Katerberg | jkaterberg |
Ammar Khan | ammarkhan310 |
Connor Henderson | connordhenderson |
Note: You can delete the unused rows from the table.
This group project is designed for you to demonstrate the skills that you have learned in this course. The final project that you submit in the last week of classes will be a completed web application. Non-functional requirements, especially those associated with production-readiness, will be considered extremely important when marking this project. You are expected to work in a group of 3-5 when completing this project. Students will be prohibited from working alone on the project, as this eliminates one of the learning objectives of this assessment.
Note: Any projects from individual students will not be accepted.
The project will be run in your own web server/database (via Node.js and MongoDB and/or SQLite) on your own computer. The entire project must be maintained on GitHub, with a private repository. You can make your repository public, for portfolio purposes, after the project has been marked.
The project topic is, for the most part, up to you. The purpose of the project is to act like a final exam, demonstrating your mastery of the skills learned during this course. Therefore, it is essential that you choose a project topic that lets you demonstrate those skills. Consideration will be given to projects whose functionality is very different from sample applications and those developed in assignments in this course. When evaluating your project, I will consider this as requiring extra work. More work done often equates to a higher grade.
For 10 out of 30 of the allocated project marks, students will be evaluated objectively. This part of the evaluation will merely ensure that you have implemented all of the course concepts. These should be relatively easy marks. You merely need to have any amount of code, that is not merely copied from the lab assignments (or from another source) that implements that course concept. To avoid any groups losing marks unnecessarily for this portion of the marking, a rubric has been provided, below:
Requirement | Weight |
---|---|
SVG and HTML | 0.5 |
CSS and CSS frameworks | 1.0 |
JavaScript, jQuery, D3 | 1.5 |
DHTML | 1.0 |
AJAX, web services | 1.0 |
Node.js | 2.0 |
Views and/or client-side framework | 1.0 |
Database | 1.5 |
Sockets, multi-threading | 0.5 |
Note: Client-side frameworks (e.g. Vue, React, Angular) can be used in place of views, if you prefer.
Note: One good way to ensure that you complete each of these objectives would be to add an issue in GitHub for each of them, and close those issues with the commits that include code that satisfies those requirements. You can also use issues for features and bugs in your web application.
The remaining 20 out of the 30 allocated marks will be given as an estimate of the quality and work done on the project. Factors that will be taken into consideration include non-functional requirements (e.g. performance, security, look and feel, user friendliness, code quality, design, and architecture) and functional requirements (e.g. how much work is done).
Requirement | Weight |
---|---|
Code quality, design, architecture | 4.0 |
User interface, usability | 4.0 |
Work done | 12.0 |
Note: This project will be treated as a final exam. Accordingly, the instructor will mark the subjective portion of the project quite strictly. It is expected each student spends at least 40 hours on this project. Groups with more members, therefore, should have completed proportionally more work.
Each group will complete an independent study of an additional topic, not covered in any of the lectures or labs. The topic is up to you, so you can choose something that you intend to integrate into your project. You can use Node.js packages, client-side tools, data stores, web services, or some other tools. This part of the project will be worth 5 marks. Include a link to a Google Slides or a PowerPoint/PDF file, with 4-6 slides on how this package/tool works, in your README.md
file.
Requirement | Weight |
---|---|
Presentation file | 2.0 |
Integration into your project | 3.0 |
During marking, the instructor will look through the commit logs to see how much work each group member has completed. Students who make very little contribution to the project are often evaluated separately based only on their own contributions, and normally do not receive very good mark.
If you are submitting work through one account on behalf of multiple group members, make a note of it in the commit message. For example, you could prefix each commit message with the username(s) of all of the contributor(s).
Any instances of plagiarism will result in the student(s) receiving a mark of zero for the project, and further disciplinary action will be taken. Plagiarism includes, but is not limited to:
- Copying of (any amount of) work from the Internet, without proper citation
- Submitting a body of work, cited or not, that is primarily not your own work
- Copying of (any amount of) work from another student, past or present, without proper citation
- Allowing your own work to be copied by a fellow student
All students involved with the submission of plagiarized code will be considered for an academic integrity violation.
Note: that any cited code from another source will not be counted toward the work done, or toward completing any of the requirements for this project. You can include this code, if it helps round out your project, of course, but you will not get credit for someone else's work.
When the due date approaches, you will commit and push your code to your GitHub repository. The instructor will do a fresh pull of your repository as soon as possible after the due date. During this period, please do not make any commits. If you do, your project will be regarded as late.
Note: This README.md
file should contain any necessary instructions for getting started (e.g. admin accounts, how to import the database), along with the names and GitHub usernames of the group members.
Note: If any files or changes are missing from the repository at the time of submission, that work will not be counted toward your project mark. Take care to ensure you follow a regular commit policy (at least once for each day you’ve worked on the project). Not only will this allow the instructor to follow your progress, but it will also ensure that you do not lose any work and will eliminate most merge-related issues when working on the project separately. It is recommended that you verify that the correct code is on GitHub by doing a fresh clone of the repository and testing it out.