Skip to content
Application Development II
GitLabGitHub

Project Overview

This document summarizes all of the milestones in one place.
Overview

For the group project, your team must develop a multi-screen application for Android using Jetpack Compose.

You can see who in the class is working on what by checking out the Moodle link to “Groups and Projects”

Worth 55% of grade total including all milestones.

As these milestones progress, you will meet the requirements outlined below. They are listed here now to give you the ability to make plans in Milestone 2b. These requirements may be updated as the semester progresses.

  • Must use a declarative UI approach (Compose) with separation of concerns between display and data (e.g., MVVM approach)
  • Important source code files must be appropriately documented meaningfully.
  • Coding contributions by each member will be made clear by strict branch management (pull requests into main for release-ready changes, separate branches for testing/development)
  • Must apply the key techniques taught in class for state management (including ViewModel), user authentication, navigation, coroutines & flow, Material 3 design, layout, etc.
  • Must persist data provided by the user (Local storage or remote database)
  • Must include a user login/register capability with associated serverless authentication (e.g., Firebase)
  • Must include 1 “advanced feature” suggested in class.

  • Must have at least three functional screens
  • Must have user login/register capability (separate screens from the functional screens in previous requirement)
  • Must implement a navigation approach that allows user to move to different screens and that works with device back button (e.g., NavBar, but other approaches are possible)
  • Must gate access to some UI elements and associated access based on whether user is logged in or not.
  • Must have an “About Us” screen that describes your team and the motivation for the app.
  • Must have at least one information screen in addition to the About Us screen.
  • All screens must use Material design and share a common look and feel.
  • The user should be able to perform all interactions with the application by starting the app and then navigating appropriately within the app.
  • User inputs should be handled appropriately (e.g., hide password, some minimal form of validation)
  • The application should not hang or crash

  • Your app must serve a clear purpose and provide effective means of achieving that purpose.
  • Your project should largely follow your proposed design (Milestone 2b) — if and when deviations arise, they will be documented on your repository. Major deviations should be discussed with the teacher in advance.

  • Good usability
  • Good aesthetic design (Layout, images, formatting, color scheme, etc.).
  • Usefulness of app