/url_shortener

URL Shortener app written in elixir.

Primary LanguageElixirMIT LicenseMIT

UrlShortener

ci.yml

Oh, no! Another URL shortener app.

Dependencies

Project setup

From the project root, inside shell, run:

  • make pull to pull latest images
  • make init to install fresh dependencies
  • make up to run app containers

Now you can visit localhost:4000 from your browser.

  • make down - to extinguish running containers
  • make help - for additional commands

Howitworks

There are two API methods:

Shorten a long URL by getting an incremental counter and converting it to base62 format.

curl --location --request POST 'http://localhost:4000/' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
    "long_url": "https://example.com"
  }'

It responds with:

{
  "short_url": "http://localhost:4000/2bU"
}

Reading short URL and redirecting to the matched long URL.

Just follow the link builded from the previous step:

curl --location --request GET 'http://localhost:4000/2bU'

You will be redirected to the previously stored long URL.

Benchmarks

Run make bench for benchmarking tests.

Thats literally it. Good job :)

License

MIT. Please see the license file for more information.