Coder. Cat Dad. Car Nut.
I’m a software developer focused on mastering my craft one language at a time. The projects in this portfolio are some of my favorite works.
This is a Personal Calendar project built in Java to demonstrate a mastery of principles of Object Oriented Programming. The project is built to allow users to create, read, update, and delete time-based appointments and day-based events, including names, dates, and descriptions, as well as start and end times for time-based appointments. Furthermore, time-based appointments are validated against existing appointments to prevent overlap. This program is built as a command-line interface.
To compile and run the program, make sure you have the Java Development Kit installed on your device, then run the following:
cd ./Calendar;
javac *;
java CLI;
When running the program, you will begin at the top menu of the calendar (see Fig 1). From the menu, you can create an event (see Fig 2) or an appointment (see Fig 3). The menus for each are quite similar to represent the relationship between events and appointments: An appointment is any event with a start and end time. For instance, your birthday or a holiday is an event, whereas a party to celebrate these occasions would be an appointment. To create these objects, you need a calendar to save the event to, a title for the object, a date, a description, and a location, plus a start and end time in the case of an appointment (see Fig 2 and 3). After creating an event or appointment, you can search for a list of objects by name (see Fig 4) or by date (see Fig 5). After finding an event or appointment, you are able to edit or delete said object (see Fig 5). Lastly, when finished you can quit (see Fig 6).
Fig 1. The launch menu.
Fig 2. Menu to create an appointment.
Fig 3. Menu to create an event.
Fig 4. Output when searching by title.
Fig 5. Method to find and edit appointments and events.
Fig 6. Feedback when quitting.
If you would rather use a pre-existing Java Development Environment, copy the files of this project to a new directory to run.