My own implementation of Dijkstra's Shortest Path Algorithm after watching Tech Buddy's youtube video about it. The channel owner has done a really great job in explaining the algorithm. His explanation was better than my university lecturer's (I took an Operation Research course but couldn't implement the algorithm at that time.).
However, even though it is not that much important detail, I have mixed some conventions from the course at the university such as taging. Tagging is similar to constructing a table as explained in the video. To understand it, you can see the private nested NodeTag class inside the Graph class.
In addition to the example in the video, I have also used two another examples from my course notes. They are as follows.