Que engraçado, também montei um encurtador de url ontem, fiz o deploy hoje, e comecei a tentar montar um frontend. (https://github.com/RodrigoLMarques/url-shortener-api)
Dei uma olhada aqui, e ficou legal demais, está containerizado, implementou cache, testou o nginx. Esse é um bom projeto para treinar mesmo.
Recomendo apenas estudar mais sobre:
- Estrutura de projeto MSC (Model, Service, Controller)
- Docker compose
- Validação de dados em APIs
- Poderia ter implementado um endpoint de redirecionamento usando o http status 301