This program was a project for my Software Engineering class. I was given the barebones code for a console-driven program that organized DVDs and was tasked with completing the console app to allow the following features: add/modify DVDs, remove DVDs, edit DVD details, get the total running time of the movies, and view the DVD collection. After completing the console app, I had to create a GUI for the app which accomplished the same things. Additionally, I added the feature of adding favorites and viewing only favorited DVDs.
In order to complete the application, I had to write a class representing the collection of DVDs and write its methods to be used by the program. While writing the DVD collection class, I had to make sure all of its features could be utilized by a GUI class.
In addition to creating the application, I had to write and run several tests on it using JUnit. I built tests for the console UI, the DVD class, and the DVD collection class. I also built a test suite which ran the tests. I used the results of the tests to constantly improve the overall program and locate bugs that would be hard to spot otherwise.
This was an individual project (no collaborations), written entirely in Java and utilizing Java's "swing" library for the GUI.
This action took the details of a movie as input and added a DVD with those details to the collection. If the title already exists, the other details of the DVD will be modified instead.
This action took the title of a movie as input and removed its DVD from the collection.
This took a rating such as "PG" or "R" as an input and returned all of the DVDs with that rating.
This returned the total running time of all the DVDs.
This action allowed the user to choose a DVD and edit its details, as well as add it to favorites.
This allowed the user to select a movie and view its details, including a picture representing it.
This feature allowed the user to view the details of the DVDs that have been favorited.
This shows the result of running the test suite, which ran all tests on the DVD, DVD collection, and console UI classes.