COSC 310 - Web-based Chatbot


Project Type: Group (3 Iterations) & Solo (Final Iteration)
Purpose: Class Project
Programming Language: JavaScript (node.js), HTML
GitHub Link: Click Here

Project Description

This project was created as part of a requirement for the class. Our group was tasked with creating a Chatbot that could have a reasonably real conversation with the user. We were given freedom to choose any language we wanted, so we opted for JavaScript and HTML to improve the portability of the Chatbot, and to help reduce the overhead of creating a UI. The first 3 Iterations were done as a group, and the final iteration was done individually. In the final iteration, I had to implement 2 APIs of my choice.


Roles & Responsibilities

Group Roles
Overall Project Management
Backend Development

Group Responsibilities
Delegating project work
Creating & managing the GitHub Projects Page
Implementing the first Porter Stemmer algorithm
Creating and managing most of the project documentation
Creating project demo videos for each iteration
Improving the ChatBot's vocabulary list

Group Contribution

For the 3 group iterations of this project, I was tasked with managing the team, implementing the first iteration of the Porter Stemmer algorithm, improving the ChatBot's vocabulary,creating project demo videos for each iteration, and handling the project documentation.


Solo Work

In the final iteration, I had to implement 2 APIs. I chose to implement the Google Translate API and the Google Street View Static API.


The Google Translate API felt like an almost necessary choice, since a ChatBot should be capable of speaking different languages. I didn't implement input language detection due to time and capacity constraints, but it could easily be implemented in the future.


When I was deciding on the 2nd API to implement, I didn't really feel there was an API that could fit with the theme around the ChatBot. After an hour of brainstorming, I realized that there are places on Earth that look similar to places in space. With that, I decided to use the Google Street View Static API to help me source images of these places.


In addition to the APIs, I had to make some Quality of Life changes to help integrate the APIs. I implemented a dropdown menu to help make language selection more intuitive, and I added a window for the images to be displayed in.