You are browsing as a guest. Sign up (or log in) to start making projects!

tramcrazy

@tramcrazy

Joined June 5th, 2026

  • 7Devlogs
  • 2Projects
  • 2Ships
  • 30Votes
Software engineering, computer science and cybersecurity enthusiast based in the UK. https://tramcrazy.com/link
Ship

To try the project go to the link (Try project button). The planner uses London Underground stations - if you don't know any, why not try searching for King's Cross St Pancras, Waterloo, Tottenham Court Road or Victoria? As you type, lots of suggestions will appear anyway. The homepage now shows your 5 most recent searches - this data is stored locally in your browser!

In this ship I have built a 'recent journeys' feature which saves a user's 5 most recent journeys in their browser (preserving user privacy) and allows them to easily access journeys they've taken before. This feature involved improving the database logic to improve multi-client functionality, and required a whole new client-side database system (using JavaScript's IndexedDB) to store journey data, which meant I had to get familiar with more complicated asynchronous structures I hadn't used before! To show users when they last took a journey, I saved the Unix timestamp of the journey request time in the local database and then compared this with the current time, using human-readable descriptions!

This is the new version of my London Underground Journey Planner, for planning journeys on the London Underground network! It uses a custom-built HTTP server, custom templating engine, and my own implementation of the A* pathfinding algorithm which took a while to get right! Just head to the website at https://journeyplanner.tramcrazy.com to give it a test! Much of the work for this project was done before Stardance, but since it started I have added a new file handling system, the recent journeys feature and written more documentation.

  • 5 devlogs
  • 4h
  • 17.40x multiplier
  • 70 Stardust
Try project → See source code →
Open comments for this post

33m 13s logged

I’ve finished the recent journeys feature and improved the database code so that it handles multiple clients properly! I used some custom logic to decide how to tell the user the time since they took a journey, based on how long ago it was.

0
0
14
Open comments for this post

51m 57s logged

I’ve now (almost) fully implemented the first version of the recent journeys feature! The time you took the journey is still shown as a Unix timestamp - I just need to add some switch-case logic for choosing how to display the time in a human-friendly format! I had to implement a new API endpoint, /api/stationName, on the server so that I could get station names from the database but this is working now, and the client-side JavaScript reads from the locally stored database whenever the homepage loads, before grabbing the station names from the server and displaying everything in the table! The screenshot is the real app, not test data! I haven’t deployed it to the main server yet because I need to make the database handler a bit more robust to deal with the increased simultaneous requests, and I want to make the time element more user-friendly. Watch this space for more!

0
0
9
Open comments for this post

20m 35s logged

I’ve now fixed the logic for deleting old journeys, so a local IndexedDB stores the user’s five most recent journeys on their device, with the origin, destination and timestamp. Once the database table reaches five entries, the oldest one (based on the incrementing primary key) is automatically deleted so that we don’t clog up users’ storage space! Now I need to implement a backend lookup to find station names based on their IDs, so that I can implement the recent journeys UI component!

0
0
6
Open comments for this post

1h 56m 6s logged

I’ve been working on the frontend of the app as previously most of the effort had been on the backend! First of all I am adding a ‘recent journeys’ feature which will let users easily access journeys they’ve previously searched for. So that I don’t have to implement a login system, and to increase user privacy, I am storing the recent journey data in IndexedDB on the client side, so I have had to start implementing the logic for that. So far, I have managed to store the journey data but now need to fix the logic for deleting old journeys and filling the recent journeys UI component. Below is a prototype (with dummy data) of the recent journeys UI, let me know what you think!

Based on rater feedback, it seems a bit tricky to use for people who aren’t familiar with London! The project uses Underground stations and not landmarks, so try typing a few letters to start searching… if you don’t know any, how about Liverpool Street or Paddington to get you started?

0
0
7
Ship

This is the first public version of my London Underground Journey Planner, for planning journeys on the London Underground network! It uses a custom-built HTTP server, custom templating engine, and my own implementation of the A* pathfinding algorithm which took a while to get right! Just head to the website at https://journeyplanner.tramcrazy.com to give it a test! The dark theme still needs a bit of work as the colour contrast isn't great - colour mode is done based on system theme. Note - there are only 2 hours of Hackatime because I have been working on this project for many months and only the more recent parts have been done during Stardance.

  • 2 devlogs
  • 2h
  • 8.18x multiplier
  • 13 Stardust
Try project → See source code →
Open comments for this post

41m 12s logged

In this session I’ve been writing the README so that people who come to the GitHub repository have a better idea of how the project works and how all the code fits together, as well as how to compile it for themselves!

0
0
10
Open comments for this post

52m 39s logged

In this first session I have redesigned the file handling logic for my template HTML files and static assets! Previously I was using a standard Java file handler to open these and serve them to users over the TCP socket, but I have now used Java’s resource functionality so that I can bundle the templates and static files into an artefact for deployment to the server! I have also been working on configuring the server ready for deployment and have deployed my project on Hack Club Nest so that others can try out the system! Still lots of work to do on improving the database system and making the journey planning algorithm itself a bit more sensible, but I have improved search times by fixing the journey planning algorithm so that it functions as a full A* pathfinding algorithm. Note that before Stardance, I had already developed most of the code in the project and my aims are to improve the project and make it work better as an online service!

0
0
8

Followers

Loading…