Cody's Project Portfolio Page
Project: Police Investigation Virtual Organisational Tool
PIVOT is a desktop application to assist the police investigators in keeping track of their investigations and relevant information. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 20 kLoC.
Given below are my contributions to the project.
- New Feature: Added the ability to open documents from the application. (Pull request #155)
- What it does: allows the user to open a file stored in their local computer directly from the program.
- Justification: This feature improves the product significantly there can be many files saved in the program, and the user can conveniently open relevant files while using the program.
- Highlights: The main challenge was to store the references to work with the logic of the program as users are able to directly manipulate files in their local folder from outside the program. As the program does not know the different “states” of the files, there needs to be separate checks for validity of the reference as well as its existence when the user opens the file.
- Credits:
- The
Desktop
class allows us to open the file directly from the program. JUnit 5
Temporary Directory support allows me to test directory and file creation locally without interfering with user program files. It also aids in the clean up of created files during unit testing.
- The
- New Feature: Added
open case
andreturn
functionality to the program (Pull requests #116, #121)- What it does: Changes the state of the program, enables users to access both the main panel as well as individual cases.
- Justification: A user can execute different commands based on which interface or
state
the user is at. - Highlights: This command makes use of a global
StateManager
which tracks the state of the program. A singleStateManager
ensures that thestate
is accessible easily and the program has only onestate
at any instance.
-
Code contributed: RepoSense link
- Project management:
- Released
v1.3.trial
-v1.3
on GitHub
- Released
- Enhancements to existing features:
- Documentation:
- Community: