Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ffzanini/vaga-nave

Teste para vaga de estágio em backend na empresa nave.rs
https://github.com/ffzanini/vaga-nave

express insomnia javascript knex logic-programming nodejs sqlite3 typescript yarn

Last synced: 8 days ago
JSON representation

Teste para vaga de estágio em backend na empresa nave.rs

Awesome Lists containing this project

README

        


nave


Teste para a vaga de Estagiário Backend na nave.rs


⚒️ Tecnologias  |   
💻 Projetos   |   
🚀 Como Executar   |   
🤔 Como Testar   |   
🧾 Licença  


---

## ⚒️ Tecnologias

#### Tecnologias utilizadas no frontend:
- [JavaScript](https://developer.mozilla.org/pt-BR/docs/Web/JavaScript)
- [HTML5](https://developer.mozilla.org/pt-BR/docs/Web/Guide/HTML/HTML5)
- [CSS](https://developer.mozilla.org/pt-BR/docs/Web/CSS)
- [FetchAPI](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch)

#### Tecnologias utilizadas no backend:
- [Yarn](https://yarnpkg.com/)
- [Node.js](https://nodejs.org/en/)
- [Express](https://expressjs.com/pt-br/)
- [Knex](http://knexjs.org/)
- [TypeScript](https://www.typescriptlang.org/)
- [Sqlite3](https://www.sqlite.org/index.html)
- [Insomnia](https://insomnia.rest/download/)

---

## 💻 Sobre os Projetos

#### Lógica de programação

- [Link_para_o_teste_de_Lógica_Programação](https://codesandbox.io/s/9isjy)

#### Frontend

Desenvolvido um projeto bem simples e responsivo para apresentação de dados vindos de uma API externa via fetch.

#### Backend

Desenvolvida uma API para realizar o cadastro, alteração, exclusão de projetos, navers e seus relacionamentos além de requisições para visualização de projetos e navers presentes na base de dados.

---

## 🚀 Como Executar

#### Clonando o projeto
```sh
git clone https://github.com/ffzanini/vaga-nave.git
```
#### Iniciando a aplicação frontend
```sh
cd frontend

windowns: start .\index.html
linux: xdg-open index.html
```

Ou se prefirir, abrir a pasta frontend manualmente e executar o arquivo index.html a partir do duplo clique.

#### Instalação backend
No seu terminal, siga as instruções abaixo para instalar as dependências no projeto.
```sh
cd backend
yarn install
```
#### Antes de gerar um novo banco, execute o comando abaixo para ter certeza que o mesmo se encontra vazio
```sh
cd backend
yarn knex:migrate:rollback
```
#### Gerar o banco de dados
```sh
cd backend
yarn knex:migrate
```
#### Popular o banco de dados
```sh
cd backend
yarn knex:seed
```
#### Iniciando a aplicação backend
```sh
cd backend
yarn start
```
---
## 🤔 Como Testar

Com o servidor já inciado, abra o seu Insomnia ou Postman. Caso opte por utilizar o Insominia, na pasta utils contém um arquivo com todas as configurações para os testes. Basta exportar o arquivo para o seu Insominia.


Abaixo ficam detalhados as rotas disponíveis para os testes, assim como as querys que podem ser executadas.

Navers


POST: http://localhost:3333/navers -> Cria um novo Naver e abaixo um exemplo para ser incluido na base:

```sh
{
"name": "Rubens Corrêa",
"birthdate": "1995-12-12",
"admission_date": "2021-02-11",
"job_role": "Desenvolvedor Backend",
"projects": [1, 2]
}
```

GET: http://localhost:3333/navers -> Retorna todos os Navers cadastrados


GET: http://localhost:3333/navers?admission_date=asc -> Retorna todos os Navers cadastrados em ordem ascendente


GET: http://localhost:3333/navers?admission_date=desc -> Retorna todos os Navers cadastrados em ordem decrescente


GET: http://localhost:3333/navers/:id -> Retorna o Naver com o ID selecionado e os projetos que participa


PUT: http://localhost:3333/navers/:id -> Altera o Naver com o ID selecionado


DELETE: http://localhost:3333/navers/:id -> Deleta o Naver com o ID selecionado

Projetos

POST: http://localhost:3333/projects -> Cria um novo Projeto

```sh
{
"name": "Projeto Estoy Happy",
"navers": [1,2]
}
```

GET: http://localhost:3333/projects -> Retorna todos os Projetos cadastrados


GET: http://localhost:3333/projects?navers=all -> Retorna todos os Projetos cadastrados com seus respectivos Navers


GET: http://localhost:3333/projects?navers=count -> Retorna todos os Projetos cadastrados com sua quantidade de Navers


GET: http://localhost:3333/projects/:id -> Retorna o Projeto com o ID selecionado


PUT: http://localhost:3333/projects/:id -> Altera o Projeto com o ID selecionado


DELETE: http://localhost:3333/projects/:id -> Deleta o Projeto com o ID selecionado

Relacionamentos

POST: http://localhost:3333/relations -> Cria um novo relacionamento entre um Naver e um Projeto existentes na base

```sh
{
"naver_id": 1,
"project_id": 1
}
```

PUT: http://localhost:3333/relations/:id -> Altera o Relacionamento com o ID selecionado


DELETE: http://localhost:3333/relations/:id -> Deleta o Relacionamento com o ID selecionado

---

## 🧾 Licença


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



---

Feito com 💙 by Felipe Frantz Zanini