Skip to content

Latest commit

 

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 URL Shortener Backend

Este é o backend do projeto URL Shortener, desenvolvido em Node.js e Express com autenticação JWT, documentação Swagger e integração com MongoDB via Mongoose.

Você pode visualizar o projeto do frontend no repositório: url-shortener-frontend


📚 Índice


Sobre o Projeto

Este backend permite que usuários criem contas, façam login e gerenciem URLs encurtadas. O sistema suporta diferentes perfis de usuário (cliente, admin e recrutador para testes) e garante que cada usuário só acesse suas próprias URLs.


Funcionalidades

  • Cadastro e login de usuários com senha criptografada (bcrypt)
  • Autenticação JWT com controle de expiração de sessão
  • Gerenciamento de URLs: criar, listar, editar e deletar URLs encurtadas
  • Perfil de Recrutador: login especial para testes, com limpeza automática das URLs após logout ou expiração do token
  • Documentação interativa via Swagger
  • Controle de acesso por roles (cliente, admin)
  • Deploy pronto para produção (exemplo: Render.com)

Tecnologias e Dependências


Como Executar

  1. Clone o repositório:
    git clone https://github.com/vitorbcc2021/url-shortener-backend.git
    cd url-shortener-backend
  2. Instale as dependências:
    npm install
  3. Configure as variáveis de ambiente:
    • Crie um arquivo .env na raiz com:
    PORT=3000
    SECRET=sua_chave_secreta_jwt
    MONGODB_URI=sua_string_de_conexão_mongodb
    
  4. Inicie o servidor:
    npm run dev
    O backend estará rodando em http://localhost:3000/

📄 Documentação da API (Swagger)

Swagger UI

Acesse a documentação interativa Swagger em: https://url-shortener-1x3f.onrender.com/api-docs/

  • Teste todos os endpoints diretamente pelo navegador.
  • Veja exemplos de requisições e respostas.

📂 Estrutura de Pastas

.
├── controllers/         # Lógica dos endpoints (auth, url)
├── dto/                # Data Transfer Objects (validação de dados)
├── docs/               # Configuração e componentes do Swagger
├── middlewares/        # Middlewares de autenticação e autorização
├── models/             # Schemas do Mongoose (User, Url)
├── routes/             # Definição das rotas Express
├── utils/              # Utilitários (ex: conexão com o banco)
├── server.js           # Ponto de entrada da aplicação
└──package.json

📝 Melhorias Futuras

- Permitir encurtamento ilimitado de URLs (remover limite de 10.000)
- Suporte a domínios personalizados
- Melhorar tratamento de erros e mensagens de retorno
- Implementar testes automatizados
- Otimizar limpeza automática das URLs do recrutador
- Adicionar logs e monitoramento

📬 Contato

Dúvidas ou sugestões? Abra uma issue ou entre em contato(informações disponíveis no meu GitHub).

About

This is my url shortener service made in NodeJS with express and MongoDB!

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages