What is CatJam

CatJam is developing a chatbot to assist students interested in learning more about the Office of Hawaiian Affairs (OHA). Our chatbot aims to provide students with information to apply for funding through grants, scholarships, and loans. We want to assist not only students but also OHA Beneficiary Services. By providing an alternative outlet through which students can receive information from OHA, we hope to reduce the amount of stress on OHA’s service department.

What does Catbot do

Catbot allows users to ask questions regarding OHA and its services without speaking to a person on the phone. If there are any issues with the chatbot, users can also send feedback using a form on the website. Administrators have full access to the chatbot and feedback form but can also view user ratings, satisfaction, and submitted user feedback.

How we built it

The Catbot project was built upon a meteor application template from the University of Hawaii at Manoa’s ICS department. The project was created by utilizing Meteor, Semantic UI React, and Node.js. Chatbot functionality is made possible by using Google’s DialogFlow API.

Challenges we had

The main challenge we faced was integrating the DialogFlow API with our chatbot. Full integration would enable rich text support, allow for interaction with the chatbot through buttons, allow users to click on hyperlinks, and free customizability of the appearance of the chatbot message box. Instead, we embedded the web demo of the chatbot into our website. This significantly lessened development time.

Designing the website was a challenge due to our lack of experience. We had to research and experiment with different web templates and color palettes in order to provide a pleasant experience to the user, while also maintaining functionality and practicality.

Accomplishments

We have created a chatbot that works through two methods of communication. The first way is the chatbot interface that is embedded in the website. The second way is through calling the Catbot hotline at (732) 307-3105. The chatbot can receive and respond to verbal questions if text messages are inconvenient for the user. We are proud to be able to provide multiple avenues of communication with our chatbot. This would allow a wide variety of users to connect.

Installation

  1. Install Node.js
  2. Install Meteor
  3. Download/clone a copy of CatJam to your device
  4. cd into the app directory and install the required libraries with: $ meteor npm install Once the installation is complete, you can run the application with: $ meteor npm run start

Opening the application

If there was no problem during the whole process, the application will appear at http://localhost:3000

If you don't want to install it locally, you can also open this application at https://catbot.bar

You can log in to the different accounts by using the credentials in settings.development.json

Security Solution

For OHA Catbot, we are working with two primary forms of data on our website—user input and intent data from our database. Generic users will not input personal information, so we require no encryption on this data. We will sanitize input values to ensure tampering cannot happen. Implementation of a spam filter will also be necessary to ensure that users do not overload our chatbot. Due to multiple admin users being able to log in to our website, we will hash their user credentials to ensure the security of our application. In the future, we would like to implement two-factor authentication to strengthen the safety of the login process.

The second form of data is intent data and is used for our chatbot to automate conversations with the user. This data is stored in the Mongo Database. The information saved inside the database is essential to support generic users in getting the information they need and providing accurate chatbot analytics to the admin users. Applying encryption through creating unique keys for each intent, feedback log, and database will ensure the security of this important data. Creating daily backup saves of the Mongo Database will also be needed in case of loss of data or a data breach.

What's next for CatJam

In the near future, we plan to optimize our chatbot to save users time. We're currently using the DialogFlow web demo, but we'd like to upgrade to a custom chatbot with DialogFlow to provide more functionality so we can provide better support to all types of users.

Built With

Share this project:

Updates