# Design Proposal

The purpose of the design proposal is to make early technical decisions, prior to coding. Carefully consider your application's requirements (from the project proposal): what are the technical implications of those requirements?

# What is required

# Architecture

  • Given your proposal requirements, what is your intended architecture?
  • Do you need a dedicated server? Cloud service? How will you connect to it?
  • How do you handle multi-user issues? Authentication?

# Application details

  • What device are you targetting for your application? (Android, iOS, Windows, macOS).
  • What OS versions are you targeting? Explicitly list them and ensure that you have access to these for development/testing.
  • How will users install your application?
  • Using Figma, sketch out low-fidelity prototypes of the most common screens in your application. Keep these simple! You need to illustrate basic information and screen flow; you don't need much detail. Copy-paste your prototypes as images and save those images in this project page (i.e., a "snapshop" of your diagrams at this point in time).

# Service details

  • Are you deploying to an online or local database? What data will it store? Where does the database fit in your architecture?
  • Are you deploying to the cloud? Do you anticipate building a service, or using an existing platform?
  • What are the security implications of your requirements? Do you need multi-user support?

# Dependencies

  • What libraries and SDKs are required? Identify functional areas where you may need library support.

# Where to store this document

Your proposal should be contained in a Wiki page titled Design Proposal, and linked from the README.md file of your GitLab project.

# How to submit in Learn