O Nanoly é um projeto de um sistema de encurtar url's, onde o usuário pode encurtar uma url e compartilhar com outras pessoas.
POST
/users Cria um novo usuário.POST
/sessions Autentica um novo usuário.GET
/users/profile Obtém o perfil de um usuário.POST
/urls Cria uma nova url.GET
/urls/{:shortUrl}/redirect Obtém o link de redirecionamento de uma url encurtada.GET
/urls/{:id} Obtém uma url pelo seu id.DELETE
/urls/{:id} Deleta uma url.GET
/urls/profile/urls Obtém as url's de um usuário.
Encontre a documentação completa aqui.
Tecnologias utilizadas no projeto.
- TypeScript
- Fastify
- @fastify/jwt
- @fastify/cookie
- @fastify/swagger
- @fastify/swagger-ui
- Node.js
- Zod
- BCrypt
- Node e pnpm.
- Docker.
- Teste das chamadas realizados com REST Client.
# Caso não tenha o pnpm, execute:
npm install -g pnpm
Recomendo que veja a documentação de configuração do Fastify.
# Clonando o projeto
git clone https://github.com/davsilvam/nanoly-api.git
# Instalando as dependências
pnpm install
# Criando o container do banco de dados:
docker compose up
# Criar arquivo .env com base no .env.example e preencher os campos necessários
NODE_ENV=<dev|test|prod>
JWT_SECRET=<secret>
DATABASE_URL=<url>
# Rodar o servidor em desenvolvimento
pnpm start:dev
# Iniciar testes gerais
pnpm test
# Iniciar testes unitários
pnpm test:unit
# Iniciar testes E2E
pnpm test:e2e
# Compilar e minificar para produção
pnpm build
# Rodar o servidor em produção
pnpm start
Esse projeto está sob a licença MIT.
Feito com 🤍 e ☕ por David Silva.
Portfólio · GitHub @davsilvam · Instagram @davsilvam_