As part of Object-Oriented Design, a class I took in Summer 2023, we were tasked to design a bullet journal app using Java and JavaFX in the span of a week.
Bujava™1 has a weekly view, allows revision of events and tasks once they’re created, and persists data in custom .bujo
files that are recorded in JSON. Statistics and progress bars are calculated upon loading and update whenever the user changes the status of a task or creates a new one. I also added hyperlink functionality to open in the system browser for any http
or https
link text that’s clicked. In addition, each theme I’ve created has a distinct look with CSS styling.
The finished product is designed following MVC2 conventions with a single Driver
class entry point to the program. It follows the SOLID3 principles, and has an overarching use of interfaces and abstract classes to promote code extensibility. Jackson was used as the JSON library, and I added Ikonli for the icons displayed. Scene Builder was used to create layouts and object maps in .fxml
files.
Here’s part of the README I wrote for the repo; worded like an app store advertisement:
Our bullet journal features columns for every day of the week, and separates tasks from events for readability and to help priorities remain clear. As an organizational tool, a task queue is built into the left hand side and statistics are tracked across the week on the right hand side, as well as each individual day’s in a progress bar to the top of each day’s tasks.
Flexibility is key to our journal. Need to redefine a task or change the details to an event? No problem. Simply click on any of the items you’ve put in a day to open a popup where you can adjust any aspect you’d like. To help with keeping all the little details in place, our application features data validation for every input. There’s no worries about setting the time to something that’s not even a time– we’ll catch that and provide a nifty little popup.
For those of you who prefer to use a bullet journal to keep references and bookmarks that you’d like to revisit at a later date, we’re here to help! As a digital bullet journal, we provide functionality in parallel with the web. Just add or edit an event or task to include a link (http or https, please!) and the next time you select the event the links will be there ready to go. It’s quick and easy, and soon enough maybe you’ll find all your tasks have become visiting webpages– incidentally, kind of our jobs.
Personalization is also so important. That’s why we’ve included three custom-built themes in addition to the default; a light mode themed sepia to resemble the pages of a book, a dark mode for those who are more comfortable with a dimmer screen, and a green theme for those who would like to get outside but currently aren’t able to. While it’s not a replacement for touching grass, we hope that it does prove to come close.
This bullet journal will alleviate your suffering! :)