Sprint 1: Architecture & Design

⚠️
Make sure that you addressed any feedback from the Proposal stage.

The goal of this iteration is to setup a project with the required architecture (including modules, packages) and unit testing framework, and to design and construct your domain classes and structures. This will be the foundation for the rest of your project.

Requirements

For this sprint, you should complete the following:

  • You should have a Gradle project, with the correct structure for the type of project that you are building e.g., multi-project build, or KMP project. It should build from the Gradle menu (in IntelliJ) or the command line (using gradlew).
  • You should have entity (business objects) classes relevant to your project e.g., recipe class for a Recipes application.
  • You should have an obvious layered architecture, with Domain and Model classes. You should also have a model that loads and manipulates them as necessary (probably using “fake” data since you won’t have a database at this point).
  • You should have a “reasonable number” of unit tests in place against your Domain objects that allow you to build the project, run and pass all of the tests.

You may have additional features, but you should have at least these features complete in time for the demo.

Submission

After the demo, you will need to ensure that your work is complete so that it can be graded. This means that all documentation should be updated (issues, wiki pages, team meeting minutes), and all source code should be frozen (changes pushed, everything merged to main).

The deadline is 6:00 PM on the listed time and date. You do not need to actually submit anything; we will grade what is posted in your GitLab project at the deadline.

The content that is in GitLab should be the same as what you presented in-class. You are allowed to make small corrections but please avoid making major content changes between the demo and the submission.

Grading

The grading scheme is available in Learn under Resources > Rubrics.

Deliverables are normally graded by the following week’s lecture, and the grade and feedback will be posted under Submit > Dropbox. Any questions related to this should be sent directly to your TA.

See grading policies for more information.

Component Items Marks
Project Targets can be built and run using ./gradlew or the IDE. 1
Issues and project documents are up-to-date. 1
Features Gradle project with correct structure, version catalog. 1
Domain classes that model your core application data. 2
Layered architecture, with Model, interfaces. 2
Progress was made on custom or advanced features. 1
Unit tests were created for all features; tests all pass. 2
Total / 10