Design a simple todo list desktop app

Job ID: 30771129

Budget: $30 – $250 USD

Overview - DUE DATE : 24 Hours
Using IntelliJ and Gradle, you will create a GUI-based desktop application to allow a user to manage multiple "todo"-type lists.

Directions
Your application shall satisfy the following requirements
1. You shall create your application Graphical User Interface (GUI) using SceneBuilder and store the associated *.fxml files within your project's `resources` folder.
2. The application shall manage a single list of items
o The list shall have the capacity to store at least 100 unique items
3. An item shall have a description
o A description shall be between 1 and 256 characters in length
4. An item shall have a due date
o A due date shall be a valid date within the Gregorian Calendar
o A due date shall be displayed to users in the format: YYYY-MM-DD
5. A user shall be able to add a new item to the list
6. A user shall be able to remove an item from the list
7. A user shall be able to edit the description of an item within the list
8. A user shall be able to edit the due date of an item within the list
9. A user shall be able to mark an item in the list as either complete or incomplete
10. A user shall be able to display all of the existing items in the list
11. A user shall be able to display only the incomplete items in the list
12. A user shall be able to display only the completed items in the list
13. A user shall be able to save the list (and all of its items) to external storage
14. A user shall be able to load a list (and all of its items) from external storage
15. You shall create a single IntelliJ project (using Gradle)
16. your application should allow user to sort the list by due date,
17. Note: All of your design artifacts should use a file that was designed previously as a mockup of this app and will be provided to you except where they have been updated to reflect changes in your design.
You shall use JUnit 5 to incorporate automated unit testing into your solutions.
18. You must create a unit test for each behavior specified in the application requirements.
19. You must include pseudocode in each test.
20. You shall create a Class Diagram for your application using PlantUML. TEach class within your diagram must list both the attributes and the methods defined within that class.