Java Project Management App
Project management app made with Java and OOP (Object Orientated Programming), Java FX library for the GUI and MySQL for the database.
For this project I used the Model View Controller design pattern to make it easy for me to edit and maintain the application.
Tech stack
- Java
- Java FX
- Junit 4 testing
- MySQL
The Goal
This was my final assignment for my Further Programming class. I had to create an application where a user can login or create an account and organise projects.
They had to be able to:
- Have multiple projects.
- Have subtasks in those projects.
- Micro tasks in those tasks.
- Action items.
- Be able to move around, edit and delete things.
My process
I had to do lots of things here I haven't done before so I started by researching how I would accomplish certain things like connecting my Java app to the MySQL database, how to make Java FX respond to changes in the database (for example if I delete a project how do I make it immediately update the UI).
I then organised all the tasks and budgeted time for each of them.
I followed my plan and started the development. Here I realised how much easier this task was for me because I had every task organised. There was never a moment where I was confused what to do next, thanks to my plan all I had to focus on was the code.
Since I did not have much time for the project because of other subjects whenever I ran out of time for a task I left it for later. After all the core functionality was complete I finished the other features.
To help with development and bug fixing I made Junit tests along the way for each use case.
The Result
Project result
I managed to complete the project on time and have recieved a distinction grade for it.
I still have it saved on my github and plan on building on top of it by polishing it up, adding more features and one day make a web based version, possibly a SaaS.


What I learnt
This was great practise for my time management skills and also working under pressure, this project was 40% of my grade so I really had to make sure it was as good as possible.
It was also great practise for me with using Java. Before I only used Java Swing so I had to adjust to the Java FX way of doing things.