Skip to content

Projeto para criar URL's curtas separadas em serviços

Notifications You must be signed in to change notification settings

Cristuker/shortner-project

Repository files navigation

Short URL

Projeto que encurta URLs.

Requerimentos

  • Node.js v12 ou maior.
  • Docker e docker compose
  • Postman

Stack

  • NestJS
  • Jest
  • Docker
  • Husky
  • dotenv
  • TypeORM
  • MySQL
  • JWT

Como rodar

  1. Clonar esse repositório
$ git clone https://github.com/Cristuker/teddy-api.git
  1. Instalar as dependências
$ npm i
  1. Criar o banco de dados
$ docker compose up -d ou docker-compose up -d # vai depender da versão instalada
  1. Rodar a aplicação

Ir para a raiz da aplicação e rodar cada serviço em um terminal

$ nest start shortner-api
$ nest start url-redirect

Usando

Na raiz do projeto existe um collection do postman para ser importada e usada para fazer requisições.

Melhorias

  • Isolar banco de dados nos testes e usar um banco em memoria, como usei o MySQL que foi me informado que é o banco usado por vcs ele não tem uma versão em memória.

  • Refatorar para tirar o use guards de todas as rotas

  • Optei por deixar o serviço de redirecionamento separado pois no primeiro momento vai ser o mais usado pensando no mundo real. Onde a mesma URL pode ser acessada diversas vezes. Fazer com que as consultas fiquem mais rápidas para garantir o redirecionamento mais rápido ou até mesmo fazer com que a operação de redirecionamento e constagem aconteçam de forma paralela mas sem que haja falha na contagem ou redirecionamento.

A documentação está disponivel no /api da aplicação

Redicionamento

O redirecionamento é feito por outro serviço no seguinte respositório.

Arquitetura

Arquitetura

Próximos passos

[ ] Configurar docker-compose para subir todo o ecossistema [ ] Migrar o modulo de auth para um serviço [ ] Organizar o projeto e mover coisas em comum para o modulo library [ ] Subir projeto na AWS [ ] Refazer documentação [ ] Aumentar coverage [ ] Criar github actions [ ] build [ ] test [ ] deploy

Made with ❤️ by Cristian

About

Projeto para criar URL's curtas separadas em serviços

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published