Skip to content

danielfalcaodf/apiNodeJS-nlwValoriza

Repository files navigation

NLW Valoriza — API

API REST desenvolvida durante a Next Level Week 6 (NLW Together) da Rocketseat.
Sistema de reconhecimento entre usuários: envie elogios com tags para seus colegas! 🚀


📌 Sobre o projeto

O NLW Valoriza é uma aplicação back-end que permite:

  • Cadastrar usuários
  • Criar tags de reconhecimento (somente administradores)
  • Enviar elogios entre usuários associados a uma tag

🛠 Tecnologias

✅ Regras de negócio

Usuários

  • Não é permitido cadastrar mais de um usuário com o mesmo e-mail
  • Não é permitido cadastrar usuário sem e-mail

Tags

  • Não é permitido cadastrar tag sem nome
  • Não é permitido cadastrar mais de uma tag com o mesmo nome
  • Somente administradores podem cadastrar tags

Elogios (em desenvolvimento)

  • Não é permitido um usuário elogiar a si mesmo
  • Não é permitido cadastrar elogios para usuários inválidos
  • O usuário precisa estar autenticado

📁 Estrutura de pastas

src/
├── controllers/     # Controladores das rotas
├── database/        # Configuração do banco e migrations
│   └── migrations/  # Criação das tabelas
├── entities/        # Entidades TypeORM (modelos)
├── middlewares/     # Middlewares (ex: autenticação admin)
├── repositories/    # Camada de acesso ao banco
├── services/        # Regras de negócio
├── routes.ts        # Definição das rotas
└── server.ts        # Entrada da aplicação

⚙️ Pré-requisitos

🚀 Instalação e execução

1. Clone o repositório

git clone https://github.com/danielfalcaodf/apiNodeJS-nlwValoriza.git
cd apiNodeJS-nlwValoriza

2. Instale as dependências

yarn install

3. Configure as variáveis de ambiente

cp .env.example .env

Edite o arquivo .env conforme necessário.

4. Execute as migrations (cria o banco de dados)

yarn typeorm migration:run

O banco SQLite será criado automaticamente em src/database/database.sqlite.

5. Inicie o servidor

yarn dev

O servidor estará disponível em: http://localhost:3001

🐳 Executando com Docker

docker build -t nlw-valoriza .
docker run -p 3001:3001 nlw-valoriza

📡 Rotas disponíveis

Método Rota Descrição Auth
GET / Health check
POST /users Cadastrar usuário
POST /login Autenticar usuário (retorna token)
POST /tags Cadastrar tag de reconhecimento Admin
POST /compliments Enviar elogio com tag JWT

📝 Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

About

API RESTFul em NodeJS usando TypeScript e Authentication JWT

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors