This is the core module for gr2232. It consists of the logic layer, serializer/deserializer and persistence to and from file.
The core module containes all the classes that deal with what we can call the backend of the application. The module is seperate from the UI (fxml) and the type of persistence the user chooses.
The module can be seperated in two parts: core (logic) and json(persistence, serializer/deserializer).
Core contains the logic of the application. It manages units and units in a unitlist. It also takes care of validating values entered into a unit and as such also validates which units can go into a Unitlist. Core can be find here gr2232/core/src/main/java/gr2232/core
Json takes care of persitence to and from .json files. It also handels serializing and deserializing. This means the reading and writing of Unit or UnitList to a .json object. This can be done both remotely and locally. For example the server might pass a UnitList as a json object. This will then be deserialized into a UnitList object.
We decided to use JSON schema to document our JSON-data files. The reason for this is that JSON schema provides clear human- and machine readable documentation.
Click here to see the JSON schema, that is a documentation for the JSON-data files that are used in the application.
In addition to the dependencies used project-wide, the application also use the following plugins in the Core module: