Skip to content

Requirements

These are the guidelines for what your product does, and which features it requires.

Tech-Stack

Your application must be built using the following tech-stack, which will be discussed during course lectures 1.

Depending on your requirements, you may need additional libraries. Choose from these:

Core Requirements

Your application must meet all of these requirements.

  1. You must build a graphical application, that follows standards for each selected platform.

  2. You must support at least one OS from each category below.

    • Desktop: Windows, macOS, or Linux.
    • Mobile: Android or iOS.
  3. Your application must store some portion of its data in a database e.g., recipes for a recipe tracking application, user profile information, or user preferences like choice of theme.

    • If your database is online, you are expected to implement suitable authentication and access control mechanisms.
    • If your database is local, you are expected to follow best-practices for security on that platform.
  4. Your application must use Amper or Gradle build configuration, and you will use best-practices for structuring your project/modules.

  5. You are expected to implement automated tests for all of your features using the Kotlin test framework. You should demonstrate 75% code coverage by the end of the course.

Features & Functionality

Your application must also deliver functionality that is suitable to the particular problem you are solving.

As part of your project proposal, you will define a user, their problem, and user-stories i.e., problems and expected solutions. This will require you to identify the features that are specific to your application e.g., sorting recipes in a cooking application, display a social feed for other users in a multiuser application.

This list of features will be different for each project but should be sufficient to address all of the functionality that the user might expect.

These application-specific features will compromise the majority of the work that needs to be done for your project! You want to carefully think through your features at the start of the project to ensure that you deliver all expected and required functionality.

  1. Deviations from this requirement are only possible with written consent from the instructor. ↩︎