Sprint 1: Architecture & Design

Sprint 1: Architecture & Design

Make sure to address 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 a layered architecture with UI, Domain and Data layers.
  • In your Domain package, add data classes (business objects) relevant to your project e.g., Recipe class for a Recipes application; Post class for a social media application. Also add a Model class that loads and manipulates your domain objects as necessary.
  • You should have a “reasonable number” of unit tests in place against your Domain classes. Your unit tests should pass.

Hint: you may need to create mock classes for components that you haven’t implemented yet, like a database. These mock classes can provide hard-coded test data for your unit tests, and make it easier to write tests for classes that are in-progress.

These features shouldn’t take your entire sprint to complete. You should also scope additional features that make sense, based on your existing user stories (note that you do not have to complete an entire user story, but you can extract and deliver some of its features).

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 Project goal and scoped features were reasonable. 1
Feedback from the proposal was addressed. 1
Issues and project documents are up-to-date. 1
Team meetings were held and documented. 1
Code was merged back to main. 1
Compiles and executes using ./gradlew or the IDE. 1
Features Layered architecture; modules defined properly. 2
Domain classes that model your core functionality. 2
Unit tests were created for all features and tests pass. 2
Progress was made on custom or advanced features. 3
Total / 15