Back to Projects
📝

BuJo Bullet Journal

March 2024 - April 2024
BuJo Bullet Journal

Overview

The BuJo Bullet Journal App is a Java-based desktop application designed to bring the functionality of a traditional bullet journal to digital form. Built using JavaFX, the application follows SOLID principles and implements a robust MVC architecture. Users can create, edit, and organize tasks and events throughout their week, mark completion status, and save their journals as .bujo files for later use. The clean purple-lilac theme creates a positive environment that encourages productivity and organization.

As part of CS3200 Object Oriented Design, I collaborated with teammates to create the BuJo Bullet Journal App, a digital organization tool that brings the functionality of a traditional bullet journal to desktop users. This project challenged us to apply SOLID principles and implement a clean MVC architecture while delivering an intuitive user experience.

The application features a weekly view where users can visualize their schedule with tasks and events organized by day. Each action (task or event) includes a name, optional description, and assigned day, with events having start and end times and tasks having completion status. All tasks appear in a dedicated Task Queue that serves as a to-do list, allowing users to quickly track their progress throughout the week.

My primary contributions included implementing the View components using JavaFX and FXML, designing the user interface with a light purple-lilac theme, and ensuring the application followed the Single Responsibility and Interface Segregation principles. I developed the UserInputView class that handles the initial scene where users can create or load journals, as well as the event and task creation interfaces that validate user input before passing data to the controller.

A key technical achievement was establishing a clean separation between the view, controller, and model components, allowing for extensibility while maintaining a closed core codebase. The project demonstrates how effective object-oriented design can lead to a maintainable and flexible application structure, with classes like Event and Task extending an abstract Action class to share common functionality while implementing their unique behaviors.

Project Links

Technologies

JavaJavaFXFXMLObject-Oriented DesignMVC ArchitectureSOLID Principles

Project Gallery

BuJo Bullet Journal screenshot 1
BuJo Bullet Journal screenshot 2
BuJo Bullet Journal screenshot 3