A "API Talker Manager" é um projeto que abrange uma API RESTful desenvolvida com Node.js, Express e MySQL, gerenciada eficazmente por meio de contêineres Docker. Esta solução oferece funcionalidades essenciais, como autenticação, validação de dados e operações de CRUD, possibilitando o controle completo das informações dos palestrantes. A API possibilita listar palestrantes, autenticar usuários com tokens aleatórios e realizar operações de criação, leitura, atualização e exclusão de registros. Além disso, ela inclui funcionalidades de pesquisa com parâmetros de consulta, tornando-a uma ferramenta versátil para atender às necessidades de gerenciamento de palestrantes de forma segura e eficiente. Esses requisitos fundamentais garantem a robustez e a usabilidade da API. O uso de contêineres Docker simplifica a implantação e a escalabilidade da aplicação.
Para desenvolver e executar esta aplicação, é necessário configurar um ambiente com as seguintes ferramentas:
Docker: Utilizamos o Docker para empacotar e isolar a aplicação em contêineres, garantindo uma implantação consistente e fácil gerenciamento de dependências.
Node.js: A aplicação é desenvolvida em Node.js, uma plataforma de tempo de execução JavaScript, e é necessária para executar o código.
Docker Compose: O Docker Compose é uma ferramenta que simplifica a definição e o gerenciamento de serviços multi-contêiner em um único arquivo, ideal para orquestrar contêineres relacionados à aplicação.
Certifique-se de instalar e configurar essas ferramentas em seu ambiente de desenvolvimento antes de iniciar o projeto.
Clone este repositório:
git clone git@github.com:ElieltonRamos/project-api-talker-manager.git
Navegue até o diretório do projeto:
cd project-api-talker-manager
Instale as dependências:
npm install
Inicie o docker compose:
docker compose -up -d
Inicie a aplicação:
docker exec -it talker_manager bash
npm start
O projeto conta com testes que verificam o funcionamento de cada rota da API, os testes foram escritos com JEST, lembrando que e necessario que o docker compose tenha sido executado para que os containers da apricação estejam online para que os testes funcionem.
Para executar os testes siga os seguintes passos:
Abra o terminal na raiz do projeto
Execute o comando:
docker exec -it talker_manager bash
Agora, dentro do container do node, execute:
npm test
Verifique a saida dos testes no seu terminal
Explore as rotas essenciais desta API, incluindo autenticação, operações de CRUD e funcionalidades de pesquisa para uma administração eficaz dos palestrantes.
-
GET /talker
- Retornar lista de palestrantes.
- Se não houver palestrantes, retornar array vazio.
-
GET /talker/:id
- Retornar palestrante com base no ID.
- Retornar 404 se o palestrante não existir.
-
POST /login
- Retornar token aleatório de 16 caracteres.
-
Validações para /login
- Validar campos e retornar 400 com mensagem de erro, em caso de dados inválidos.
-
POST /talker
- Criar novo palestrante.
-
PUT /talker/:id
- Atualizar informações de um palestrante.
-
DELETE /talker/:id
- Excluir um palestrante.
-
GET /talker/search?q=searchTerm
- Implementar pesquisa com base em um termo de consulta.
-
GET /talker/search?rate=rateNumber
- Implementar pesquisa por classificação.
-
GET /talker/search?date=watchedDate
- Implementar pesquisa por data de visualização.
-
PATCH /talker/rate/:id
- Atualizar a classificação de um palestrante.
-
GET /talker/db
- Utilizar um banco de dados MySQL para listar palestrantes.
A seguir esta explicada a estrutura de pastas do projeto
project-api-talker-manager/ : A pasta raiz do projeto.
├── node_modules/ : Contém as dependências da aplicação.
├── tests/ : Contém os testes do projeto.
├── src/ : O diretório principal do código-fonte da aplicação, onde estão localizados os middlewares, modelos de dados e definições das rotas da API.
│ ├── middlewares/
│ ├── models/
│ ├── routes/
├── index.js : O arquivo principal que inicia o servidor e configura as rotas da API.
├── talker.json : Pode conter dados iniciais ou de exemplo para palestrantes.
├── package.json : Descreve as dependências e configurações do projeto.
├── README.md : A documentação do projeto.
├── docker-compose.yml : Utilizado para configurar e executar a aplicação em contêineres Docker.
├── DockerFile : Contém instruções para a criação de uma imagem Docker para a aplicação.
├── Jest.config.js : Configurações para testes com o framework Jest.
├── seed.sql : Um arquivo SQL usado para preencher o banco de dados com dados iniciais.
Elielton Ramos
Este projeto foi desenvolvido durante meu curso na Trybe com base no projeto 'Talker Manager'. A Trybe é uma escola de programação que tem compromisso com o sucesso profissional. O projeto 'Talker Manager' é parte do módulo de Back-End e envolve a criação de uma API com Express, Node, Docker e MySQL.
Código Aberto (Open Source)
Este projeto é de código aberto e está disponível para toda a comunidade. Fique à vontade para explorar, clonar e contribuir para o projeto.
Sou grato à Trybe por proporcionar esse desafio enriquecedor e pela oportunidade de aprimorar minhas habilidades como desenvolvedor. Estou empolgado para aplicar os conhecimentos adquiridos em projetos futuros e continuar minha jornada de desenvolvedor web.