Skip to content

uoa-compsci399-s1-2024/capstone-project-2024-s1-team-13

Repository files navigation

Inka


Logo


Te Tuhi Disability Training Cafe platform for Trainees

Damsels in Development consist of five Computer Science students that have taken papers such as CS230, CS335, and CS345. These papers have given us the proper knowledge and skills in order to develop Inkā.

View Demo

Table of Contents
  1. Role Delegations
  2. Project Information
  3. All of the technologies used
  4. Languages Used
  5. Installation Guide
  6. Amplify CLI Command Lines
  7. Github Clone Command Line
  8. AWS Set-up Documentation
  9. Link to Video Demo
  10. Disclaimer
  11. Functions and Test Cases
  12. Future Plans
  13. Acknowledgements

Role Delegations

Frontend Team

  • Saacha Moyo - Frontend and UI/UX Developer/Team Leader

Full Stack Team

  • Istefat Sawda - Full Stack Developer
  • Zainab Shehzad - Full Stack Developer

Backend Team

  • Natania Thomas - Security Engineer/Project Manager
  • Eisen Belleza - Backend Developer

(back to top)

Project Information

Our application, Inkā, serves as a one-stop shop for the training programs developed by the School of Psychology at The University of Auckland, as well as other partners (Rescare Homes Trust). It functions as a platform for monitoring cafe trainee progress and fostering personalized learning experiences for trainees within the cafe environment.

Jira Software was our primary project management tool, and we utilised Click up to plan out the project timeline. Additionally, our client meetings were transcripted by Eisen Belleza which was stored in our Client Meeting Logs. We kept track of our client/ group meeting notes, documentations and reports through the same shared google drive. Our group meetings and brainstorming sessions were held on our Discord server and group chat.

Jira Software Gantt Chart

(back to top)

All of the technologies used

  • AWS Amplify
    • Amplify CLI version 12.11.0
    • AWS S3 version ^1.0.0
    • AWS Cognito version ^1.8.0
  • Flutter version version 1.0.0+1
    • Flutter SDK version >=3.3.3 <4.0.0>
  • Jira
  • LucidChart
  • GitHub
  • Figma
  • Xcode Simulator (macOS) version version 15.3
  • Android Studio (Windows) version Iguana | 2023.2.1
  • Cocoapods (macOS)version 1.15.2
  • VSCode version 1.82.2
  • Discord
  • Ruby (for Cocoapods) version 3.3.0

(back to top)

Languages Used

  • GraphQL
  • Dart

(back to top)

Installation Guide

To use Inkā, follow these steps in order to set it up.

Front end and Backend Installation

Please make sure that you have the following software listed below installed in your environment before cloning our repository.

Required Software for both

  • Flutter
  • Amplify Client
  • Visual Studio Code
  • Simulator

Flutter installation

Follow this documentation and choose either macOS or Windows depending on your OS and then choose FlutterIOS to set it up

Run the following command line in terminal to resolve any dependencies

flutter pub get

Run the following command line in terminal to verify installation of all components.

flutter doctor

Amplify CLI intallation or Update

Follow this documentation and choose either macOS or Windows depending on your OS

VSCode installation

Follow this documentation and choose either macOS or Windows depending on your OS

Simulator installation

For Mac Users

  • Cocoapods
  • XCode (you can download this from the AppStore)
  • Ruby

For Windows Users

  • Android Studio
Requirements for MacOS
  • Cocoapods
    • Put the following code in the command line
      sudo gem install cocoapods
      
    • Follow the rest of the commands in this documentation under the Install Cocoapods heading
  • XCode installation
    • Download and install XCode from the app store
    • To configure, run the following command line
    sudo sh -c 'xcode-select -s /Applications/Xcode.app/Contents/Developer && xcodebuild -runFirstLaunch'
    
    • Then sign the Xcode license
    sudo xcodebuild -license
    
    • To run your Flutter app, follow the steps in this documentation under Configure you iOS simulator heading
  • Ruby installation
    • The default Ruby installation can be used for MacOS
    • Make sure to install Homebrew in not already installed
    • Put the following code in the command line
      brew install ruby
      
    • Follow the rest of the commands in this documentation
Requirements for Windows

Android Studio installation:

Follow the documentation for any questions outside of the given installation guide below.

  • Update the version in the this line inside the file (android > settings.gradle)
    • id "org.jetbrains.kotlin.android" version "1.8.10"
    • The version will be dependent on what is the latest. However, the terminal will indicate which version you should be running if this version is no longer compatible. 1.8.10 was the current version during this time.
  • Update the sdkVersion in this line inside the file (android > app > build.gradle)
    • compileSdkVersion 34
    • minSdkVersion 24
    • The version will be dependent on what is the latest. However, the terminal will indicate which version you should be running if this version is no longer compatible. 24 and 34 were the current version during this time.
  • Check to make sure that the file path for the Android Emulator is correct in your VSC settings.
    • To see file path in Android Studio (Settings > Languages and Frameworks > Android SDK). Android SDK Location is shown at the very top.
    • To see file path in VSC (Settings > type in ‘android’ in the search bar). Emulator Path is shown at the third line.
    • Emulator Path should be the file path as shown in the Android Studio. If the path is incorrect, copy and paste the file path from Android Studio into VSC.

After you have installed and configured the aforementioned services, simply clone our repository either in a terminal or on GitHub itself.

Once you have a clone of our repository, open up Visual Studio Code and open the extracted file.

(back to top)

Amplify CLI Command Lines

If there is no “Models” folder inside /lib, use this command line to generate data models inside your Flutter project:

amplify codegen models

To pull and connect the Amplify project into your Flutter project, use this command line: amplify pull [generated-amplify-name] You can copy-paste this command line from Amplify Studio itself at the dashboard on the website as the generated-amplify-name is unique but is not human-friendly to remember.

Make sure that the amplify_config file is up to date as it can cause errors with the project when running it.

(back to top)

Github Clone Command Line

git clone https://github.com/uoa-compsci399-s1-2024/capstone-project-2024-s1-team-13

AWS Set-up Documentation

We have included an AWS Setup document to help with setting up the project on AWS. Please refer to this document when initialising a new Amplify project. We have included screenshots inside the document as a reference if you are unable to proceed to the next instruction. Please note that this AWS Setup document is purely a reference to the way that we have set up our Amplify Studio and the components that are connected to AWS - please refer above to any installation requirements.

(back to top)

Link to Video Demo

The demo highlights the key features of the Inkā application in a succinct manner.

Video Demo

(back to top)

Disclaimer

Inside the backend folder in Amplify, all of the functions are empty since our backend functions are included on the frontend screens. We were unable to connect Amplify and Lambda.

For the data models, we are not making use of the CurrTask table.

(back to top)

Functions and Test Cases

There is a summary of the core functionalities of the app below:

Trainee Evaluation and Data Manipulation:

  • Support Workers: Can manipulate existing data (trainee and task notes) and evaluate trainee progress.
Support Worker Evaluation Support Worker Dashboard Support Worker Task Feeling
Support Worker Progress Support Worker Task Notes

  • Admins: Have broader access to manipulate all data, including trainee progress, but cannot evaluate trainees.
Admin add trainee Admin edit recipe Admin delete task

  • Training Modules: Accessible without login, allowing trainees to go through task/recipe steps using cue cards and a text-to-speech option.
Training module cue card Training module task

We have provided a thorough explanation of the test cases made. Below is the link for the Inkā Test Case Documentation:

Test Case Document

(back to top)

Future Plans

Logging:
If any changes are made to the system e.g. adding/editing/deleting/archiving, it would be handy for the cafe to have a history log, showing exactly what the changes were, in the case that something needed to be reviewed. If the user requests a log report, this can be sent directly to an email connected to the account.

Exporting:
Based on the trainee’s sessions and their progress, if the cafe would like to download their work in either pdf or excel format, they would have this option. Another option could be to allow them to view the sessions in a monthly format to help the support workers oversee the training in a different and more consolidated way.

Distribution of the application:
During the duration of the project there were conversations about how this application could be used in different countries. It would be beneficial for the cafe, if we could implement something that ensured that the different cafes could have different applications with no information from the separate cafes, for example, they would start with a whole new application and build that from the ground up.

Customisation:
We could include a customisation feature where If the clients would like to change the theme, or customize the application specific to the trainee , then it would be saved within the specific trainee’s profile.

Extra Aesthetics:

  • Distinction in background for support and admin
  • An information button for new users who are unsure of the functionalities
  • Auto correct function
  • Time out the session if exceeding a long period of time or a message pop up asking if a session continuance is required - determine whether there needs to be a session limit (something the cafe can configure)
  • To maximise screen space, we can move the navigation bar at the bottom and create a burger menu for this
  • In the event that the app crashes, the application should retain the information, like a cache memory stored locally on the iPad and this should be loaded once the app restarts
  • Should be more obvious which trainee is being evaluated or trained - with the name at the top of the screen

(back to top)

Acknowledgements

We want to give a shout out to Osama our tutor for the guidance and reassurance, to Anna for encouraging us and getting just as excited as us about the project.

We appreciate the Amplify Documentation pages, YouTube videos and other documentation which helped the team in troubleshooting and learning the ins and outs of parts of the project

We want to thank the clients for giving us an impactful real world experience and for the feedback they provided which helped us grow both professionally and personally.

(back to top)

About

capstone-project-2024-s1-team-13 created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published