Create a simple link shortening and analytics web service similar to bit.ly
.
In order to take over the world and beat competitors, we need the service that provides the following functionality:
- Include validation against malformed links
- Make sure there are no duplicates
- Make sure that
<this-part>
does not include abusive words (provide hard-coded dictionary withN
random words)
- Country is resolved against some geo-encoding service such as
ip-api.com
orfreegeoip.net
- Implement protection against network latency with
Failsafe
- Make sure that a link is eventually geo-encoded, even if geo-encoding service is slow or unresponsive during the link visit
- It must be clear from the response whether geo-encoding is pending
- Link visits must appear in chronological order
- Demonstrate application usage with high-level acceptance tests
- Make sure that both application and tests run in embedded mode. In other words, it must run on a laptop with nothing but Java and Docker installed
- Push application to GitHub
- Provide simple and concise setup instructions
- Express major design decisions you have made on wiki
โ there is no need in UI. Web API is the app's UI.