https://github.com/jonathanprojetos/talker-manager
Esta é uma aplicação de cadastro de talkers (palestrantes)
https://github.com/jonathanprojetos/talker-manager
docker docker-compose express javascript node
Last synced: 3 months ago
JSON representation
Esta é uma aplicação de cadastro de talkers (palestrantes)
- Host: GitHub
- URL: https://github.com/jonathanprojetos/talker-manager
- Owner: JonathanProjetos
- Created: 2022-08-04T00:06:29.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2022-09-05T01:08:43.000Z (almost 4 years ago)
- Last Synced: 2025-10-13T19:33:26.429Z (9 months ago)
- Topics: docker, docker-compose, express, javascript, node
- Language: JavaScript
- Homepage:
- Size: 197 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Talker-Manager
# Contexto
Esta é uma aplicação de cadastro de talkers (palestrantes) em que será possível cadastrar, visualizar, pesquisar, editar e excluir informações, a aplicação não acessa o banco e todo o método e feito usando módulos do nodejs para manipular o arquivo talker.json usando fs.readFile() para leitura e fs.writeFile() para a escrita.
## Importante:
- Para consumo da aplicação será nescessario o uso de um software de envio de requisições REST como:
- [Insomia](https://insomnia.rest/)
- [Postman](https://www.postman.com/)
- [Httpie](https://httpie.io/)
## Detalhes das rotas
#### Verbo GET : http://localhost:3000/
##### Esperado
```
O endpoint somente confirma o status code 200.
```
#### Verbo Get : http://localhost:3000/talker
##### Esperado
O endpoint traz todos os talkers existentes.
```json
[
{
"name": "Henrique Albuquerque",
"age": 62,
"id": 1,
"talk": {
"watchedAt": "23/10/2020",
"rate": 5
}
},
{
"name": "Heloísa Albuquerque",
"age": 67,
"id": 2,
"talk": {
"watchedAt": "23/10/2020",
"rate": 5
}
},
/* .... */
```
#### Verbo Post : http://localhost:3000/login
##### Esperado
- O endpoint espera receber um body com o formato como no exemplo abaixo.
```json
{
"email": "email@email.com",
"password": "123456"
}
```
- O endpoint deverá retornar um código de status 200 com o token gerado e o seguinte corpo.
```json
{
"token": "7mqaVRXJSp886CGr"
}
```
#### Verbo Post : http://localhost:3000/talker
##### Esperado
- O endpoint espera receber um body com o formato como no exemplo abaixo.
```json
{
"name": "Danielle Santos",
"age": 56,
"talk": {
"watchedAt": "22/10/2019",
"rate": 5
}
}
```
- A requisição deve ter o token de autenticação nos headers, no campo authorization, os metodos precisão ser utilizados usando softwares como insomia, postman, httpie entre outros
- Caso o token não seja encontrado será retornado um código de status 401, com o seguinte corpo:
```json
{
"message": "Token não encontrado"
}
```
- Caso o token seja inválido retorne um código de `status 401`, com o seguinte corpo:
```json
{
"message": "Token inválido"
}
```
#### Verbo Get : http://localhost:3000/talker/search?q=Helo
##### Esperado
- O endpoint espera receber uma palavra ou letras que relaciona com talkers cadastrados. exemplo abaixo:
```json
[
{
"name": "Heloísa Albuquerque",
"age": 67,
"id": 2,
"talk": {
"watchedAt": "23/10/2020",
"rate": 5
}
}
]
```
- Caso o token não seja encontrado será retornado um código de status 401, com o seguinte corpo:
```json
{
"message": "Token não encontrado"
}
```
- Caso o token seja inválido retorne um código de `status 401`, com o seguinte corpo:
```json
{
"message": "Token inválido"
}
```
- Caso searchTerm não seja informado ou esteja vazio, o endpoint deverá retornar um array com todos as pessoas palestrantes cadastradas, assim como no endpoint GET /talker, com um status 200.
- Caso nenhuma pessoa palestrante satisfaça a busca, o endpoint deve retornar o status 200 e um array vazio.
#### Verbo Get : http://localhost:3000/talker/:id
##### Esperado
- O endpoint espera receber um id que seja compatível com um id de um talker existente.
```json
{
"name": "Henrique Albuquerque",
"age": 62,
"id": 1,
"talk": {
"watchedAt": "23/10/2020",
"rate": 5
}
}
```
- Caso o token não seja encontrado será retornado um código de status 401, com o seguinte corpo:
```json
{
"message": "Token não encontrado"
}
```
- Caso o token seja inválido retorne um código de `status 401`, com o seguinte corpo:
```json
{
"message": "Token inválido"
}
```
#### Verbo Put : http://localhost:3000/talker/:id
##### Esperado
- O endpoint espera receber um body no formato especifico e um id de um talker existente para editar os dados do talker selecionado.
```json
{
"name": "Danielle Santos",
"age": 56,
"talk": {
"watchedAt": "22/10/2019",
"rate": 5
}
}
```
- Caso o token não seja encontrado será retornado um código de status 401, com o seguinte corpo:
```json
{
"message": "Token não encontrado"
}
```
- Caso o token seja inválido retorne um código de `status 401`, com o seguinte corpo:
```json
{
"message": "Token inválido"
}
```
#### Verbo Delete : http://localhost:3000/talker/:id
##### Esperado
- O endpoint espera receber um id de um talker cadastrado para ser deletado.
- Caso o token não seja encontrado será retornado um código de status 401, com o seguinte corpo:
```json
{
"message": "Token não encontrado"
}
```
- Caso o token seja inválido retorne um código de `status 401`, com o seguinte corpo:
```json
{
"message": "Token inválido"
}
```
## Técnologias usadas
> Desenvolvido em nodejs.
> Framework utilizado: Express.
> Libs: nodemon, eslint, nodemon, express-rescue, crypto-js, body-parser
## Instalando Dependências
> Node
```bash
cd Talker-Manager/
npm install
```
> Docker
```
cd Talker-Manager/
npm install
docker-compose up -d
```
## Rodando a aplicação
```
cd Talker-Manager/
npm run dev
```
## Aviso Importante
Caso queira roda a aplicação via docker deverá ter o docker instalado no dispositivo, caso não esteja instalado você pode encontra como instalar neste [link](https://docs.docker.com/engine/install/ubuntu/) site oficial