Scope of the problem for URL Shortener #
Here, we will define the scope, functional requirements, and non-functional requirements of URL Shortener.
Scope of the problem #
Function requirements: #
- URL Shortener should have command line interface
- URL Shortener should have HTTP(s) APIs
- URL Shortener should have web-interface.
- URL Shortener should support OAuth 2.0
- User should be able to generate custom and generic URLs
- For the same URL, different users should get different short-URLs.
- Users should be able to track number of hits per URL.
- URL Shortener should generate short URL only for a valid long URL (based on regular expressions).
- Short URL should support both HTTP and HTTPS
- It should support permanent and temporary redirection.
- Short URLs can expire after certain time.
Non-Functional requirements #
- Support moderate scale (100 QPS)
- APIs should have low sub-millisecond latencies.
- Have 99.9% availability
- Should be deployable on a cloud service provider. Ideally, we want full CI/CD
- Should use
gitfor version control. - Should have test cases with more than 80% unit test coverage.