Inspiration

We were inspired by the struggles of sorting through and opening one-by-one a plethora of school-related tabs on a daily basis. There had to be a more efficient method for this tedious process, and hence BookLink, a novel method of creating group bookmarks, was born.

What it does

BookLink is a minimalist terminal application that allows users to bookmark tabs in sets of links that are frequently opened together. The user can add, swap, and delete links to specify the order in which the BookLink will open the links. In addition, users can rename BookLinks to their liking.

How we built it

Using object-oriented design, we made a BookLink class in C++ with methods to create, edit, and save BookLinks locally (within a text file). The terminal-based user interface was also created using C++. Finally, a Python script was used to open the BookLink, that is, to open the list of links that were saved by the C++ portion of the project as text files.

Challenges we ran into

The main obstacle we faced was developing an UI for our application. BookLink was originally supposed to be a chrome extension, but halfway through the hackathon and a few reality checks later, we realized we did not have the capacity to fully develop our vision. Only one of our four members had previous experience in making a Chrome extension and using React, which we would have relied heavily upon for the UI. Unfortunately, said member was unable to continue hacking in the last 12 hours and we only had the bare bones of our project completed at this time. This meant we were not only down a team member, but also had to completely re-adapt our project for the terminal instead of Chrome.

Accomplishments that we're proud of

Given the challenges we faced as well as our tight timeline, we are proud to have a fully functional program ready to go before the submission deadline. We are also satisfied with our ability to quickly adapt to a different platform, that is, from a Chrome extension to a terminal program. Lastly, we ourselves are positively surprised by our ability to code, collaborate, and stay productive all the way up to six in the morning.

What we learned

One of the things that we learned was how to create a program that uses more than one language. Specifically, we learned how to execute Python scripts from within C++, which seems like a handy thing to know. In addition, we learned how to adapt an idea from one platform to another when we had to shift our vision from a Chrome extension to a terminal-based program.

What's next for BookLink

So far, BookLink’s terminal user interface is quite plain, and though one could describe it as being “minimalist in design”, we would like to add more ornamentation to it. As a terminal application, BookLink reminds us of the days before window managers and GUIs, so we would like to take that concept further by adding a touch of ASCII art to the program’s output. Alternatively, we can take a whole other path by migrating the structure that we used in our current version of BookLink to a Chrome extension, as we originally planned.

How to Use BookLink

Use the Makefile to create an executable, which will be called "booklink". Run it using "./booklink", then type "help" for commands when prompted.

* Edit: When in edit mode, type "help" for a list of subcommands; enter "done" to exit edit mode
* Create: Enter "create", then add the title when prompted; when prompted to add links, press enter after each link, then enter "done" to exit create mode
* Open: Opens the specified BookLink
* List: Displays the list of links contained in the specified BookLink
* Help: Enter "help" to see the list of commands

Built With

Share this project:

Updates