Our inspiration was our younger siblings that were trying to learn English for the first time. While they were reading books and other English materials, they would always encounter words that they would not understand and go to either ourselves, parents, or Google to search them up. After seeing this occur countless times, we decided to create a program to help with this situation and so we came up with Learning New Words, a Java Software that takes in text from any literature and finds difficult words with a search up function for anyone to use.
What it does
Learning New Words is a tool that reads through a file and finds all of the hard words and puts them in the "hard word box". It finds these words by cross-referencing it with a pre-made 5000-word dictionary that had a word and the frequency of the word in the English language. If the word was either long or had a very low frequency the word will be printed in the "hard word box". An instructor can either add a definition to the words themselves for shorter children's books. Or the user can click the "look it up" button and find the definition themselves. It is ideal for children and readers in general because it is very simple and does not have very much distractions on the screen.
How we built it
We built Learning New Words with Java Swing AWT. It is a dated GUI platform but it did what we needed it to do. We used a total of three classes One class was a back-end HashMap sorter. It sorted a dictionary of words ordered alphabetically, a HashMap was used because it is the fastest method to do such a thing. The second class was a very difficult browser accessing search GUI. It creates a window and the user has to input a word for it to return the definition from an online dictionary. Lastly, we had the front-end class that includes methods on reading the file and cross-referencing it to a dictionary. The front-end included button functions, text area placement, and other features.
Challenges we ran into
Some challenges we ran into were knowledge, time, and communication. All three of us are complete novices when it comes to programming. We just started to learn about coding in Java with the Java Swing GUI. So we used the little knowledge that we have from class with a lot of online searching to master Swing. One negative aspect of Swing is that it looks very dated and is very slow as well. Our problem with time was that we did not have enough time to make the project as perfect as we would like. So there are sharp edges and the text is not as appealing as we would have wanted to. Our problem with communication was that we did not have proper communication between teammates. It got bad to the point where one of our team members was only able to call us on our phones because his wifi stopped working, which caused the other two team members to carry his responsibility as well.
Accomplishments that we're proud of
Some things that we were proud of was that we were able to get access to the Internet through Eclipse. There was a very specific method in order to do this because it usually does not allow this. Another accomplishment was figuring out how to make a scroll bar for large amounts of text. Due to our lack of experience in Java GUIs, this took us a very long time, but we finally got it to work. Another accomplishment is this entire project itself. We took the time HooHacks gave us, subtract sleeping, eating, and other daily things, and still created this as beginners with Java GUI.
What we learned
We learned how to use GUIs, scroll bars for textboxes/ text labels, and connect them to the Internet. In our software development class, we had learned how to create very basic GUIs, nothing advanced like scroll bars, buttons creating new windows, and even connecting to the Internet. Throughout HooHacks, we learned this on the fly and attempted many different ways before figuring it out. Although it took us a while, this was a very crucial step and we learned a lot about how GUIs are used and what many small companies may start off with when creating an interface.
What's next for Learning New Words
Learning New Words will first be perfected with a more sleek design. After that, it will either take one of two directions. It will either become an internet-based extension that people will be able to see a small definition in the corner of their screen to look at the definition of the word. Or it will become an even greater interactive children's reading tool. It will allow children to read the words and if a word is clicked it will show the definition and will include a small animation if the definition is a verb the definition box.
Try It out
awt, eclipse, gui, java, swing