personal project – url shortener

Categories: aws, microservice, Python, Security

To get back to ‘hardcode’ coding, I want to start a series of personal projects. The first in the series is an URL shortener.

The idea is to create a simple API service to generate and manage URL shortener keys. The goal of this API service is to:

  • Generate a new key given an URL
  • Retrieve the URL given the key
  • Delete the key to URL mapping
  • Update the URL for a given key.

These generic requirements are but standard requirements. It would be nice to have additional requirements, some functional and some not:

  • (security requirement) Return the URL reputation score of the URL durin retrieval
  • (analytics requirement) Capture the number of retrieval of a given key
  • (security requirement) Authenticated API calls
  • (security requirement) Ignore requests from potentially malicious IP (using SURBL, for example)
  • (analytics requirement) Number of generate requests by unique callers for a given URL

I am hoping to get this up and running using a combination of AWS technologies (API Gateway, Lambda, …) and Python as the programming language. If everything works, I could provide a GoLang equivalent too! #FingersCrossed

I will continue to update this personal project requirement.