Skip to content
YeonJeong edited this page Nov 9, 2023 · 58 revisions

Document Revision History

Version Date Message
1.0 2023-10-08 initial
1.1 2023-10-18 edit class diagram and data models
1.2 2023-10-20 edit API
1.3 2023-11-05 edit system design and testing plan

System Design

Tech Stack

tech_stack

System Architecture

system_architecture

Class Diagrams and Data Models

frontend_class_diagram

backend_class_diagram

data_models

Implementation Details

API Specifications

SpeechBuddy uses RESTful API for communication between the client and the server. Implementation details can be found in a dedicated wiki page for RESTful API design.

Testing Plan

Unit Test

We aim to maintain a test coverage of at least 80% for both frontend and backend parts of our project. The framework to be used are:

  • Frontend (Android)
    • JUnit4
    • MockK (Mocking library for Kotlin)
  • Backend (Django)
    • Django Unit Test Framework

Integration Test

We plan to employ UI testing to our project as a type of integration test. We will use the ComposeTestRule, a set of APIs provided by compose, to test the various interactions and behaviors of our app's UI layer.

User Acceptance Test

We plan to proceed the User Acceptance Test (UAT) with the below five user stories.

  1. Related Features : Symbol selection, Search
    As a user who is looking for the right symbol to choose next, I can search for the specific category/symbol in mind to find the symbol.

  2. Related Features : Symbol selection, Add to favorites
    As a user who frequently uses a small set of symbols, I can add those symbols to my favorite list and find them easily later by choosing the "show favorite symbols only" menu.

  3. Related Features : Symbol selection, Next word prediction
    As a user who cannot quickly find symbols to choose next, I want to receive recommendations of symbols depending on my history, so that I can get assistance in communicating with others.

  4. Related Features : Text-to-speech
    As a person with speech impairment, I want to write down my thoughts and want them to be read aloud, so that I can convey my ideas to others, using sound.

  5. Related Features : Symbol creation
    As a user who wants to express creative thoughts, I can add new symbols to the list by uploading my own photos that I took and have them converted into symbols.

Clone this wiki locally