Skip to content

Architecture

Nghia Nguyen edited this page Oct 17, 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

Tatiana 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. Receive Lesson https://github.com/SCCapstone/Downpour/issues/22
  2. Recharge Lesson suggestions https://github.com/SCCapstone/Downpour/issues/32
  3. Search for other Users https://github.com/SCCapstone/Downpour/issues/35
  4. Animations https://github.com/SCCapstone/Downpour/issues/36
  5. Build .apk for release https://github.com/SCCapstone/Downpour/issues/39

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

User

  • username:String Username represents the user-chosen username for each user. Each username has to be unique, less than 30 characters, with accepted characters being alphanumeric and periods.
  • email:String The email of the user.
  • password:String The password of the user. When creating the password, the password requirements include having at least 8 characters, with accepted characters being alphanumeric and punctuation marks.
  • description:String A user defined description for their profile. This could be thought of as a "bio" or "about me" section for their profile.
  • progress:

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

  • has a Fileable text box for user input
  • A search button that confirms the users query and searches for matches in the wiki

Example Lesson

image

Description

  • Multiple choice lessons have a questions and 2-4 answer choices for the user to select
  • they display the question number and the questions remaining

Profile Page

image

Description

  • the profile page displays a profile picture that the user can change
  • User statics in text boxes for their app engagement streaks and current lesson module
  • A button to log the user out
  • A button to edit their settings
  • A text field indicating when the user signed up for the app

Culture/ Article Screen

image

Description

  • Displays images in a layout that take the user to the corresponding wiki article about said topic

Direct Message Page

image

Description

  • Allows peer to peer communication between users for increased interaction for sharing language and culture.
  • Allows for the user to enter text and then send

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