Skip to content

Nycarus/expendable-employees

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Major Group Project

Before you submit your project, modify the following table to include everyone's full name and GitHub usernames:

Group Member Name GitHub Username
Anthony Huang Nycarus
Aron-Seth Cohen SethCohen
Cole Mollica coleman2246
John Nemec ZanCal
Kevin Chandra Sclatch

Note: You can delete the unused rows from the table.

Overview

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.

Choosing a Topic

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.

Evaluation

Objective Evaluation

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.

Subjective Evaluation

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.

Independent Study

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

Equal Distribution of Work

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

Plagiarism

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.

How to Submit

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.

About

Managerial full-stack Node.js web application

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published