Project Assignment, Phase 3
Based on the previous phases, you should now have the basic framework of your application completed. In this phase, the actual functionality of the project is implemented, meaning that the data model is connected to the user interface.
At this stage, each task submission consists of a URL pointing to a specific commit. The URL should contain the corresponding commit hash. This allows the instructor to inspect the code associated with that particular stage of development if necessary.
Commit Hash
A commit hash is a unique identifier generated by Git for an individual commit.
It usually appears as a long character sequence such as a1b2c3d4...
and can be used to refer precisely to a specific state of the project.
The purpose of a commit is to save one version of a project into version control. The commit hash identifies which of those saved versions is being referred to. When a commit hash is included in an assignment submission, the instructor can view the exact version of the code in which the task was completed.
A commit hash does not represent a single file or change. Instead, it represents an entire commit object containing metadata about a commit. This includes information such as: the commit message ("message"), the author ("author"), a reference to the project directory structure ("tree") and a reference to the previous commit ("parent").
Example: Finding a Commit URL in GitLab
- Log in to GitLab and open your project.
- Select Code Commits.
- You will see a list of commits. Select the commit associated with the assignment submission and click it.
- The browser address bar will display a URL containing the commit hash. Copy this URL and submit it with the assignment.
Example: Finding a Commit URL in GitHub
- Log in to GitHub and open your project.
- Click NNN Commits below the green Code button, where NNN is the number of commits.
- You will see a list of commits. Select the commit associated with the assignment submission and click it.
- The browser address bar will display a URL containing the commit hash. Copy this URL and submit it with the assignment.
Exercises
For each exercise, submit a URL that points to the corresponding commit in your remote repository.
If you have completed your project work in a slightly different order than the phase structure presented here, submit the URL of the commit that best represents the requirements of the corresponding exercise.
Implement adding data. After the data has been added, the application must display the newly added data in the user interface. Validation does not need to be implemented yet. At this stage, it is sufficient that the application is capable of creating and displaying data.
Implement data deletion.
When deleting data, you must also handle any other objects that reference the deleted object.
For example, if you delete a Category object in the Expense Tracking application, the category must also be removed (set to null or Optional.empty()) from all Event objects that reference it.
It is also recommended to include a confirmation dialog when deleting data, for example by using the Alert class, so that accidental clicks do not destroy data.
Implement saving data to a file and loading data from a file.
Implement data editing. Changes must be saved immediately to both the data model and the file. As with deletion, editing must also take into account any objects that reference the edited object.
Implement data validation. The application must not allow the user to enter clearly invalid data.
Implement unit tests for the data model using JUnit.
Complete the README file.
Add a description of the functionality you have implemented, as well as instructions for using the application.
Take screenshots of the different views and explain how the various features work.
Present the phase to the instructor.