This course is designed around a single project that you will design and develop with your project team. Most course components are tied to the course project in some way. Team grade items are items where everyone on the team receives the same grade. Personal grade items are individual grades.


The course schedule lists the deadlines for each of the following components.

  • Demos are in-person, at the times listed on the schedule.
  • All other components must be submitted by 11:59 PM on the date listed on the schedule.
Item What it addresses Team Personal
Proposal Review planned features, identify concerns and design issues. 5%
Demos (4) Demo new features and get feedback. 4 x 5%
Final submission Submit completed project. 40%
Participation Kickoff & Demo participation; Project contributions. 15%
Quizzes Learn: 5 quizzes x 4% each. 20%

Proposal (5%)

You need to provide details of your project, including a clear definition of your users, a problem to be solved, and the features that you will implement to address this problem. See project activities.


  • You must have a team of 4 people identified and committed to the project.
  • You must have already emailed the instructor with details: team members and the project URL.

Marking Scheme

  • Users are identified, with a brief description of who they are and what they need from a solution. It should be relatively easy to see how the problem (below) relates to them. (1)
  • A problem is clearly idenfified that the project will attempt to address. Does the proposal suggest a problem to be solved? Is this a clear problem for those users? (1)
  • Requirements are defined and entered in GitLab as issues. User feedback was included when defining these requirements (1) and the core requirements (“top ten”) are listed with links to GitLab issues. (1)
  • Design diagram included that (minimally) shows which architectural style to use. Full marks if it is annotated or customized at all for this problem (1).

Demos (4 x 5%)

During each spring, you are expected to identify what requirements to address, assign and complete work, and have a product release ready to demo on the final day. You will be evaluated during the final demo. See project activities.


Prior to your sprint demo:

  • Features must be merged back into the main branch, and the demo should be built from main. Code must compile.
  • Issues should be closed for any feature that you demo.
  • You must demo from an installed version of your software (NOT IntelliJ IDEA).

Marking Scheme

  • Are issued assigned to the sprint? Do they reflect the current project state (i.e. issues are properly closed, and only unresolved issues are left assigned) (1)
  • Was source code committed and merge to the main branch? (1)
  • Was significant progress made this sprint? Were features well-designed and working properly? (2)
  • Was the release process complete? i.e. was there a release page, with an installer? Was the demo performed from the installed application? (1)

Project Submission (40%)

Your final project submission is the complete contents of your GitLab repository, including README, Wiki documents, Releases pages, and Source code. See project submission for details.


  • You MUST email the instructor at the start of the term with your repo’s URL. This is the location of the project that we will grade.
  • Code MUST be committed and merged back to main. You are encouraged to use branches for development purposes, but we will ONLY mark based on what is merged to the main branch.

Marking Scheme


  • README complete and license file included (1)
  • User instructions included in Wiki describing how to use the applcation (2)
  • High-level requirements are described (features, platforms) (2)
  • Architecture and design documentation (architecture diagram, describes data flow and structures) (3)
  • Software release pages for each milestone, including release details and links to installers (2)

Source code

  • Client can be built/packaged with an installer (MacOS, Windows, or Android) (3)
  • Service is installable from DockerHub, and can be executed from a container (2)
  • Unit tests cover all major functionality (5)


  • Core required features are met (both client, and web service) (2)
  • Functional requirements are effectively implemented (5)
  • Design and architectural choices are suitable for requirements (3)
  • Well-designed; attractive, usable interface (marker’s discretion) (5)

Extra (up to 5 marks)

  • Build a second client target (i.e. desktop + Android) (5)
  • Deploy service to the cloud (instead of just a Docker container) (2)
  • Online help included in application (e.g. tooltips, Help menu, tutorial) (3)
  • Gradle multi-project structure, so that code is shared effectively between projects (2)

Participation (15%)

You are expected to meet regularly with your team, and participate in all aspects of the project. Your participation grade will be calculated at the end of the term, and will be based on project data (i.e. your relative contribution), and a score assigned by other team members (i.e. you will rate one another at the end of the project).

  • Participated in the project based on project statistics (5)
  • Grade assigned by your project team (10)

Quizzes (5 x 4%)

All quizzes are available in LEARN during the week listed on the schedule. They open by 10:00 AM on the Monday morning, and close at 11:59 PM on the Friday of each week.

Quizzes must all be complete and submitted by Fri 11:59 PM of the given week. Late submissions will NOT be accepted. Once you start the quiz, you must complete and submit it within 30 minutes.

Each quiz covers to the content up to the week prior to the quiz being open in Learn.

  • Quiz weight (5 x 4%)