Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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.

Exercise 11.1: Adding Data 1 p.

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.

Complete this exercise in TIM
Exercise 11.2: Deleting Data 1 p.

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.

Complete this exercise in TIM
Exercise 11.3: Saving and Loading from a File 1 p.

Implement saving data to a file and loading data from a file.

Complete this exercise in TIM
Exercise 11.4: Editing Data 1 p.

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.

Complete this exercise in TIM
Exercise 11.5: Validation 1 p.

Implement data validation. The application must not allow the user to enter clearly invalid data.

Complete this exercise in TIM
Exercise 11.6: Unit Tests 1 p.

Implement unit tests for the data model using JUnit.

Complete this exercise in TIM
Exercise 11.7: README file 1 p.

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.

Complete this exercise in TIM
Exercise 11.8: Presenting the Phase to the Instructor 1 p.

Present the phase to the instructor.

Complete this exercise in TIM