Home
Qualis Order Bot

Qualis Order Bot

to : The Qualis Order Bot allows nurses to order durable medical equipment for hospice patients, completely hands free.

Client

Showcase & Media

Video Case Study

Post Mortem Discussion

Screenshots

Check out photos of this project

Problem

What was the problem to be solved?

The process for nurses to order durable medical equipment can be combersome and error prone.

Additionally, it requires many manual steps and nurses are often on the go or in their vehicles when they need to order equipment for their patients.

Solution

What was the proposed solution?

Nurses need a guided way to order equipment using only their voice.

Additionally, the bot needs to assist the nurse by proactively protecting the nurse from order errors.

Finally, the platform should be available for the nurses on their mobile phone so they can access it on the go.

Challenges

What challenges arose during the project?

Despite the many advances in voice-to-text and text-to-voice technology, it still has many challenges.

For example, if an application says "What time would you like the item delivered?" voice translation technology can easily convert "12 PM" or "9 AM" to a time.

However, if the user says "Noon" or "morning", the technology needs a bit of training.

Even more complicated is if the user adds pregnant pauses such as "uhhhhhhh 12 pm" or "how about noon."

If the bot replies "I'm sorry. I didn't understand that" too often, the technology loses its purpose as the users get frustrated with it.

Technical

What was the technical approach to the project?

The requirements of mobile and voice made React Native an ideal choice for this project.

"In order to leverage the built-in voice-to-text translation systems of iOS and Android, this needed to be a native application," Gunner founder and CEO, Cody Swann, said. "And because the app would be virtually identical whether on an Android or iOS device, React Native was the obvious winner."

Additionally, the team leveraged an Open Source library that acted as a wrapper around both of the platforms' voice to text tech, which eliminated a lot of the heaches that go into exacting words and meaning.

In order for the bot to read the steps and ask for confirmations, the team relied on Expo for that and a number of other common functions.

The frontend React Native client communicates with a GraphQL API written in Node.js and run on AWS Lambda and Amazon API Gateway.

This API sources its data from a legacy Ruby on Rails application.

Management

What was the project management approach to the project?

In this case, the team knew it had approximately four months to complete this platform.

With that in mind, the management team worked with stakeholders to list user stories for all the features the platform would need.

After that, the management team worked with the product team to estimate Effort Points for each user story on a 1, 2, 4, 8, 16 point scale.

The team added all the points to arrive at a total Effort Point level for the entire project.

Knowing they had two months to tackle that total level, the management team was able to look at the available development resources and their Velocity score (how many Effort Points they can complete in a single iteration), and put together a team that could complete the project in less than four months.

Each iteration is a week, and the management team will know immediately if the team is ahead or behind schedule and can adjust resources as necessary.

This approach is a variation of the Agile Scrum approach to project management.

Architectural Description

What platform was built for this project?

As with most projects, the team used CloudFormation and the Serverless Framework to manage the backend, which included:

For the frontend, the team leveraged the AWS Amplify framework, which helped create the AWS AppSync backend with a GraphQL API that the React and React Native clients used to communicate with the backend.

Amplify also helped manage Amazon S3 and Amazon CloudFront for storing and serving static assets and building and deploying the React Native client.

Lessons

What did you learn from working on this project?

As this was Gunner's first voice-only app, the team learned a lot about the idiocracies of heavily integrating voice.

For example, the developers had to figure out how to detect silence and then implement an ideal time of silence to determine that the user had stopped speaking as this was a completely hands-free app.

Why Gunner?

Why was Gunner selected for this project?

Qualis has been a Gunner Technology client for nearly a decade.

When they need something built, they know Gunner will deliver the highest quality, on time and on budget.

Proficiencies

What tools, techniques and methodologies were used on this project?

[object Object]

Agile

Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams

[object Object]

Amazon API Gateway

Amazon API Gateway is a fully managed service that makes it easy for developers to create, publish, maintain, monitor, and secure APIs at any scale.

[object Object]

Amazon CloudFront

Amazon CloudFront is a content delivery network offered by Amazon Web Services.

[object Object]

Amazon Cognito

Simple and Secure User Sign-Up, Sign-In, and Access Control

[object Object]

Amazon S3

Object storage built to store and retrieve any amount of data from anywhere

[object Object]

Apollo

Apollo binds data to your UI with the ultra-flexible, community-driven GraphQL client for React, JavaScript, and native platforms.

[object Object]

AWS Amplify

AWS Amplify is a toolchain which includes a robust feature set for simplifying mobile and web application development.

[object Object]

AWS AppSync

AWS AppSync automatically updates the data in web and mobile applications in real time, and updates data for offline users as soon as they reconnect.

[object Object]

AWS IAM

Securely control access to AWS services and resources for your users

[object Object]

AWS Lambda

AWS Lambda lets you run code without provisioning or managing servers.

[object Object]

Babel

Babel is a compiler for writing next generation JavaScript

[object Object]

ES6

The next version of JavaScript

[object Object]

Expo

Expo is a free and open source toolchain built around React Native to help build native iOS and Android projects using JavaScript and React.

[object Object]

Git

Fast, scalable, distributed revision control system

[object Object]

GraphQL

GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data.

[object Object]

JavaScript

JavaScript is the world's most widespread programming language, powering the Internet.

[object Object]

Material Design

Material Design is a visual language that synthesizes the classic principles of good design with the innovation of technology and science.

[object Object]

Material UI

Material UI is a CSS Framework and a Set of React Components that Implement Google's Material Design

[object Object]

Node.js

Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications

[object Object]

React

React is a JavaScript library for building user interfaces.

[object Object]

React Native

React Native is a framework for building native mobile apps with React

[object Object]

Serverless Framework

Build web, mobile and IoT applications with serverless architectures using AWS Lambda, Azure Functions, Google CloudFunctions & more

[object Object]

Webpack

Webpack is a module bundler

[object Object]

Yarn

Yarn is a package manager for JavaScript