Skip to content

Architecture

Kyle edited this page Oct 16, 2022 · 49 revisions

Architecture

Languages, Development kits, and libraries

  • We are creating an Android app written in Dart using flutter for UI development and cross-platform support. The project will be written and compiled/debugged in Android Studio.
  • In conjunction we will use Firebase for user data and user account authentication via the firebase authentication
  • Flutter will be used as our build manager as well.

Dev Kits

POC milestone delegation

Will Sutton

  1. User Data Saved upon User Log Out https://github.com/SCCapstone/Downpour/issues/29
  2. Delete their account https://github.com/SCCapstone/Downpour/issues/28
  3. Input Password https://github.com/SCCapstone/Downpour/issues/20
  4. Input Username https://github.com/SCCapstone/Downpour/issues/19

Tatian Washington

  1. receive quiz score https://github.com/SCCapstone/Downpour/issues/27
  2. select quiz https://github.com/SCCapstone/Downpour/issues/25
  3. receive feedback, https://github.com/SCCapstone/Downpour/issues/23
  4. user is prompted w/ answer choices and questions https://github.com/SCCapstone/Downpour/issues/26
  5. multiple quiz types https://github.com/SCCapstone/Downpour/issues/31

Christopher Meyers

  1. Direct Messaging Capability https://github.com/SCCapstone/Downpour/issues/37
  2. Users can search for information about the language https://github.com/SCCapstone/Downpour/issues/34
  3. Users can search for information about the Island https://github.com/SCCapstone/Downpour/issues/33
  4. Button Navigation System https://github.com/SCCapstone/Downpour/issues/30

Kyle Meiler

  1. Input Username/Password https://github.com/SCCapstone/Downpour/issues/15
  2. Confirm Password https://github.com/SCCapstone/Downpour/issues/16
  3. Input User Email https://github.com/SCCapstone/Downpour/issues/17
  4. Sign Up Button https://github.com/SCCapstone/Downpour/issues/18

Nghia Nguyen

  1. 1
  2. 2
  3. 3
  4. 4

Release

We will build an .Apk file through android studio / Gradle that testers can then install onto an android device or emulator (Possible release on Android Store for ease of access)

App Models

The Models for your app. These could be UML class diagrams, or just models with attributes (with type) and descriptions (in English).

State maintaining

  • App States: stored in memory
  • User data: stored in a database using Firebase.

Firebase Schema and queries

If you are using a db-backend (say firebase) then include the Database schema: set of tables/documents with list of attributes and their types.

Views and design

The Views of your app: name, describe. Embed the images from your Design Milestone. Typically, one page in the app is composed of multiple View elements.

Log In Screen

Login (3)

Description

  • Should allow the user to sign into their account if they have one or prompt the user to create an account
  • Two fill bars one for username and one for password
  • a button for password recovery
  • a button to create an account

Sign Up

Sign Up (4)

Description

  • The sign up page should have 4 fillable text boxes for username ,password ,confirm password, and email.
  • A button for completing the sign up form
  • A button for returning the user to the login screen if they already have an account

Home Page

image

Description

  • The welcome screen should greet the user with lessons/quizzes and their current login streak
  • Shows buttons and view links for going to lessons and quizzes
  • should have navigational links at the bottom of the screen for moving to the different views

Search Page

image

Description

Example Lesson

image

Description

Profile Page

image

Description

Culture/ Article Screen

image

Description

Direct Message Page

image

Description

Learning Trail

image

Description

  • The user can see what level they have reached
  • The user can Start with the first lesson
  • The user cannot skip lessons
  • Clicking on a path i.e. "Greetings" directs user to the Greetings lesson
  • The user can access the navigation bar to swap screens
Clone this wiki locally