Inspiration
Our inspiration for ChadBot came from the desire to create better user interface software. All of us believed that Siri should not be our standard for what a decent linguistics software should be. And so we believed that we could do something better. The services that ChadBot currently provide came from our love of basketball and so we used the players and stats as a foundation for our chatbot. In addition, we wanted to demonstrate that our bot could converse efficiently with real humans, and so, we created a magic 8 ball to test that.
What it does
The purpose of ChadBot is to provide a fun personality to converse with. The user can interact with the interface through the keyboard, and Chad will carry on the conversation. Chad specializes in the NBA, and he has a very good memory and can make predictions for you. He also has a warped sense of humor.
How I built it
We built ChadBot from the ground-up using Java. First, we created several helper classes for the purposes of providing quick access to methods that would otherwise take up numerous lines of code. Secondly, we decided what features Chad should have. We ultimately decided on four simple ideas, basketball player stats, player comparison, various memes, and a magic 8 ball, which are all in beta testing.
A lot of our code comes directly from loops. Our use of do-while loops was especially important as we would give the user a way to re-enter a statement if their input contained a mistake.
When the hackathon started, Heewon had zero knowledge of HTML and CSS. Now, Heewon has a solid grasp of HTML and a decent understanding of CSS. With this newly obtained knowledge, Heewon was able to create five webpages using HTML and decorated them using CSS. Heewon would create the html/css files in Atom and run the html files in Google Chrome in order to check the appearance of the site. The website can be found here: chadbot.tech
Challenges I ran into
While we didn’t run into any setbacks provided by Java itself, we had some setbacks in creating keywords that signifies what program the user wants. We resolved this by using word lists from the internet.
Another error we used to have was the many arrayoutofBounds exceptions and infinite loops. To resolve this, we went back and debugged the code by testing for all cases, especially the edge cases.
In addition, we ran into a problem when creating the website for our product. The .JPG files would not convert to .jpg files. Luckily, we managed to resolve this without much trouble. There were also difficulties in creating the website with a .tech domain. We resolved this by turning the whole website into a github.io website and attaching the domain of chadbot.tech later on.
The most difficult challenge was setting up the .tech domain. It took forever for us to set up Github Pages. Once the GitHub site was set up, we had to give it the chadbot.tech domain which took way too many hours. Although our first website deployment took hours, it was satisfying when we woke up and were able to access our site by typing “chadbot.tech” into our browser searchbars.
Accomplishments that I'm proud of
We were able to collaborate and create a decent chatbot that the user can interact with. Of course, what the chatbot can currently do is highly limited, however, we were able to get a semblance of decent human interaction as our code gives a lot of liberty into what the user can input into the program.
Heewon was also able to create a decent looking website that works even though it is his first time using HTML and CSS.
What we learned
We learned how to build a working project from scratch(not the language). This was the first hackathon for the three of us and the whole period was rewarding, from the ideation to the final product. When you need to create a working product, the entire experience is hard.
In this case, we needed to ideate possible ideas and eliminate the bad ones without hurting each others’ feelings. Later, we needed to write the pseudocode and convert that to Java. Finally, we learned how to debug the code and created a .tech website to showcase our final product.
In addition, we learned how to collaborate in coding such an extensive project, we used software such as CodeShare.io as a means to effectively share and fix code. This was the first time that we worked together on a project of this scale, and we definitely learned a lot on the fly.
What's next for ChadBot
ChadBot currently has a small number of analytical categories. We hope that in the future, ChadBot will be able to provide an ever increasing number of statistics that the user wants. These statistics could also be used to predict the winner of a game, player individual awards, and player statistics.
In addition, we want to expand the amount of data that ChadBot is using so that the users intentions can be made clear when they converse with ChadBot.
Finally, we hope to be able to integrate ChadBot into our website chadbot.tech so that users would be able to converse with Chad without having to download the code from github and run it in an IDE.
Log in or sign up for Devpost to join the conversation.