Cloning the repo and opening it with IntelliJ Idea should be more than enough to run it without hitches.
This project was build using Spring Boot with the most basic of components from it. In order to keep a sanity check and what the actual scope of each feature would be, I opened issues as mini-specs (#1 and #2).
It crossed my mind that it would be fun to add the posibility of deciding a custom "identifier" for a given url, but decided to skip it, although it would be a nice addition for V2.
The big one: URLs are valid as long as they start with http://
or https://, any more than that and I would probably have spent
more time coming up with the best RegEx available -not today.
Also that URLs with different query strings count as different ones in this shortener, which would keep some sort of personalization in the end.
Mostly the database. I built the project using H2 to keep the project not only lightweight, but pretty much transportable. However due to the lack of containerization, that other statement is not as true as it sounds.
I also decided to be somewhat less-strict with TDD and only commit once the test would pass and the refactoring was done, but hopefully the history on both branches is helpful in showing my approach.
I had written another one of these README's earlier, but I pressed back when trying to see the preview, so forgive me if this one is a bit succint and straightforward (or a bit apologetic like right now).
However, that doesn't take away from how fun and challenging this project was, especially taking into account that I haven't touched much backend code in a couple of years.