This is a Java-based Task Management System developed as a semester project for the Multimedia Technology (2024-2025) course at the National Technical University of Athens. This project utilizes JavaFX for the user interface and Jackson for JSON serialization, making it a lightweight and efficient task manager. For detailed information about the project requirements see here and for detailed information about the project implementation see here (both in Greek).
✅ Create, edit, and delete tasks
✅ Categorize tasks and set priorities
✅ Track task progress using different states
✅ Set reminders for upcoming deadlines
✅ Persistent data storage using JSON
- Java JDK 21.0.2
- JavaFX 21.0.2 (for UI)
- Jackson 2.18.2 (for JSON serialization)
- VS Code (Development Environment)
📦 TaskSystem
┣ 📂 src
┃ ┣ 📂 controllers # JavaFX Controllers
┃ ┣ 📂 images # UI images
┃ ┣ 📂 models # Task, Category, Priority, etc.
┃ ┣ 📂 views # FXML files
┃ ┗ App.java # Entry point
┣ 📂 lib # Dependencies (JavaFX, Jackson)
┣ 📂 bin # Compiled files
┣ 📂 doc # Documentation (javadoc)
┣ 📂 medialab # Database stored in JSON
┗ README.md # Project documentation
The project is fully set up, as all package dependencies are included in the lib directory. Additionally, the documentation has been generated and is available in the doc directory. However, if you prefer to set it up from scratch, follow the steps below:
-
Download Java JDK (for Windows)
-
Install Java
-
Update PATH Variables
-
Restart Open Terminals
-
Download JavaFX SDK
-
Extract and place Files in the
libdirectory
-
Download Jackson Packages
- jackson-annotations.jar
- jackson-core.jar
- jackson-databind.jar
- jackson-datatype-jsr310
-
Place Files in the
libDirectory
- Extension Pack for Java
- Run the following command:
javadoc -d doc -sourcepath src -subpackages models -classpath "lib/jackson-databind-2.18.2.jar;lib/jackson-core-2.18.2.jar;lib/jackson-annotations-2.18.2.jar;lib/jackson-datatype-jsr310-2.18.2.jar"