URL Shortener app using NodeJS and Mongodb.
- Clean Architecture in Typescript
- Tests with Jest
- Shorten URL
- Redirect to URL
- Redis to cache redirects
- Exposing API with Express
- Postman Request Import
- Fake/InMemory Database for Tests
method: POST
endpoint: /shorten
body: {
long_url: 'https://github.com/Iazzetta'
}
response: {
statusCode: 200,
data: {
long_url: 'https://github.com/Iazzetta',
short_url: 'www.us.com/bRtlBXhaW1N,
expiresAt: '2022-09-23T20:00:00.000Z',
createdAt: '2022-09-22T20:00:00.000Z'
}
}
method: GET
endpoint: /bRtlBXhaW1N
redirect: 'https://github.com/Iazzetta'
- Docker
Create the .env file in the project root and add the necessary variables below:
DATABASE_URL="mongodb://...."
PREFIX_URL="www.us.com/"
EXPIRATION_HOUR=24
REDIS_URL="redis://redis:6379"
$ docker-compose up --build --scale url-shortener=5
$ npm start
$ npm test