Giter Club home page Giter Club logo

assist-go-android's Introduction

AssistGo! Android App

AssistGo! is a mobile application that makes the communication features of a phone out-of-the-box accessible. The standard Android user interface is overcrowded with unnecessary features and configurations that take away from the primary purpose of a cell phone: communication for daily and emergency use. Android provides users the ability to make their device more accessible with a multitude of accessibility configurations. However, it requires users to be aware of these options and be able to manually adjust them to their needs. This accessibility solution provided by Android creates a large barrier of knowledge.

AssistGo! leverages a simple user interface so users with accessibility issues such as visual impairments, limited literacy, and language barriers can easily access primary functions of communication such as voice/video calls and chat. AssistGo! makes it easy for users to add, edit and remove contacts, in addition to providing in-app translation features so those that may have a language barrier can translate without needing a third party. Users are also able to call the local emergency services without the need to look up the service numbers. At a high level, AssistGo! provides users with a simpler way to communicate.

Technologies

  • Android SDK
  • XML
  • Java
  • Twilio Video API
  • Google Speech to Text

Prerequisites

  • Java needs to be installed on version 11
  • Android Studio needs to be installed
  • Android Studio Emulator needs to be on API version 30 or You need a physical android device
  • Also follow the instructions below to set up Twilio Video Chat:

Configure account information

Every sample in the demo requires some basic credentials from your Twilio account. Configure these first.

Config Value Description
TWILIO_ACCOUNT_SID Your primary Twilio account identifier - find this in the console here.
TWILIO_API_KEY Used to authenticate - generate one here.
TWILIO_API_SECRET Used to authenticate - just like the above, you'll get one here.

A Note on the Information Above

Put the information above in the apikey.properties file in the root directory of this project in this format:

A Note on API Keys

When you generate an API key pair at the URLs above, your API Secret will only be shown once - make sure to save this information in a secure location, or possibly your ~/.bash_profile.

Configure product-specific settings

Depending on which demos you'd like to run, you may need to configure a few more values in your .env file.

Configuring Twilio Sync

Twilio Sync works out of the box, using default settings per account. Once you have your API keys configured and your Java application built and running, open a browser!

Configuring Twilio Chat

In addition to the above, you'll need to generate a Chat Service in the Twilio Console. Put the result in your .env file.

| Config Value | Where to get one. | | :------------------------ | :---------------- | --------------------------------------------------------------------------------------- | | TWILIO_CHAT_SERVICE_SID | Chat | Generate one in the Twilio Chat console |

Configuring Twilio Notify

You will need to create a Notify Service and add at least one credential on the Mobile Push Credential screen (such as Apple Push Notification Service or Firebase Cloud Messaging for Android) to send notifications using Notify.

Config Value Where to get one.
TWILIO_NOTIFICATION_SERVICE_SID Generate one in the Notify Console and put this in your .env file.
A Push Credential Generate one with Apple or Google and configure it as a Notify credential.

Once you've done that, run the application and open a browser!

Run the sample application

Sample Application

This application uses the lightweight Spark Framework, and requires Java 8.

Edit .env with the four configuration parameters we gathered from above.

Now that the application is configured, we need to install our dependencies from Maven.

mvn install

And compile our application code:

mvn package

Now we should be all set! Run the application using the java -jar command.

java -jar target/sdk-starter-1.0-SNAPSHOT.jar

Your application should now be running at http://localhost:4567/.

Home Screen

Check your config values, and follow the links to the demo applications!

Running the SDK Starter Kit with ngrok

If you are going to connect to this SDK Starter Kit with a mobile app (and you should try it out!), your phone won't be able to access localhost directly. You'll need to create a publicly accessible URL using a tool like ngrok to send HTTP/HTTPS traffic to a server running on your localhost. Use HTTPS to make web connections that retrieve a Twilio access token.

ngrok http 4567

Instructions to compile and run code

**Final Result **

assist-go-android's People

Contributors

dnofulla avatar dolnuea avatar jeongjieon avatar lejiebennett avatar

Stargazers

 avatar

assist-go-android's Issues

Edit-Contact: Changing image (Please read before testing)

Changing image is buggy.

Contact's phone number and name can be changed along with picture with no problems, at first attempt.
After first attempt, name and phone number can no longer be changed and will result in app crash.
After first attempt, the picture can be continued to be changed.

The error thrown when name and phone number is attempted to change is:
android.database.sqlite.SQLiteException: unknown error (code 0 SQLITE_OK): Unable to convert BLOB to string

If contact picture is never changed, the name and phone number will not break and can be changed as many times as you want.

Conclusion: Changing image breaks changing name and phone number.

Demonstration:

Editing contact with issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.