Skip to content

jhoon/shortener

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple URL shortener

How to run the project

Cloning the repo and opening it with IntelliJ Idea should be more than enough to run it without hitches.

Architectural Approach

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.

Assumptions

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.

Trade Offs

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.

Final Thoughts

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages