A couple of days ago, I faced a problem. I was using my laptop at home and was completing a school assignment. I had about 15 different tabs open and I could not find anything. This inspired me to create a program that would solve this problem.
What it does
The Tab Organizer displays all of the user's tabs within their web browser onto a separate screen. Specifically, it will display a screenshot of each webpage, along with the title of the website. The user can then click on the corresponding screenshot to redirect them to the proper tab.
How we built it
We built the Tab Organizer in the Java Eclipse IDE. The user will press Back Slash() to run the program. The program will use a robot object to iterate through every tab, collecting their URLs, and taking screenshots. A Jaunt object is then used to web-scrap the title of each webpage from the HTML code. All of this information is stored within an object with type WebsiteInfo. We then utilized Swing to display the screenshots and titles of the webpages onto a user-friendly interface, allowing the user to simply click them to navigate to the tab. A Grid-Layout containing JButtons are used, attaching each JButton to the ActionListener class. In the actionPerformed method, we listen for ActionEvents. When the user clicks one of the JButtons this method determines which JButton was pressed. We then use this information to select the tab that the user selected by utilizing the robot class.
Challenges we ran into
We originally looked for some kind of Chrome API in order to receive tab and webpage information from the Chrome browser. However, it became too complicated and we resorted to using the Robot class to emulate this instead. Furthermore, making our GridFrame and the contents within it dynamic in accordance to the number of tabs was another big challenge that contained many bugs and errors. Lastly, many members of our team were inexperienced in Java programming. We originally attempted to interface between Java and other programming languages such as Turing or Visual Basics, however, these attempts were not successful.
Accomplishments that we're proud of
We are proud that our program actually worked. We did not have a finite plan at the beginning of our project, coming up with ideas on a whim.
What we learned
Our team learned a lot about programming. We met many other advanced programmers that shared their knowledge with us. For example, we learned what OpenCV and Tesseract are. Furthermore, we had to learn many different libraries to complete this project which we have all learned.
What's next for Tab Organizer
Our team would like to use some kind of Chrome API to receive data about tabs and webpages from chrome. Our current method is very inefficient and may not be compatible with other computers. Furthermore, we would like to make this as a chrome extension instead of a standalone program. Due to our lack of experience in other programming languages, we decided to stick with what we knew.