A Url Shortener example, using Spring Boot and Redis. I created this app to learn more about Spring Boot and Redis, as well as basic System and API Design.
Along the way I learnt about:
- API Design
- Key Generation
- Hashing
- Encoding/Decoding
To get up and running in development mode
docker-compose up
Go to the url to interact with the API:
http://localhost:8080/swagger-ui/index.html
./gradlew bootBuildImage
docker run -p 8080:8080 tinyurl:0.0.0
I wanted to learn more about System Design and a URL Shortener is one of the most basic System Design problems to tackle.
There are many URL shortener apps available today. The goal was to learn from some of the best and apply them to this application and create a well document API.
-This project was build using:
- There are many URL shortening apps available, and they seem like very simple applications. However one of the biggest challenges was understanding how to generate a small key to represent a large url. And to make the process Scalable.
- Make application deployable as a Microservice, potentially using Kubernetes.
- Make the app scalable, spin up multiple instances if traffic peaks.