Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/rogerinn/mon_prospecteur


https://github.com/rogerinn/mon_prospecteur

Last synced: 13 days ago
JSON representation

Awesome Lists containing this project

README

        


logo










## :rocket: Tecnologias

- [TypeScript](https://www.typescriptlang.org/docs/)
- [Node.JS](https://nodejs.org/en/)
- [MongoDb](https://docs.mongodb.com/)


## 🏭 Arquitetura


## 💾 Fluxo das branchs


## 🔧 Instalação e uso

Para rodar a aplicação, você precisa ter o [Node](https://nodejs.org/en/), [Docker](https://docs.docker.com/get-docker/), [Docker-compose](https://docs.docker.com/compose/install/) e [Yarn](https://classic.yarnpkg.com/en/docs/install/) instalados em sua máquina e seguir os passos abaixo:

1) Abra um terminal e copie este repositório com o comando
```bash
git clone https://github.com/rogerinn/mon_prospecteur.git
```
ou use a opção de download.

2) Entre na pasta com
```bash
cd mon_prospecteur
```

3) Rode a aplicação, docker irá instalar dependencias e configurações externas.
```bash
docker-compose up --build -d
```
Ou
```bash
docker-compose up --build
```
para manter interatividade no terminal.

4) Acesse ```http://localhost:3000``` no seu cliente http de preferência (Postman, Insomnia, etc).


## ☣️ Testes

Para rodar os testes, você precisa ter executar o passo anterior e depois seguir os passos abaixo.

1) Testes unitários
```bash
yarn test:unit
```
2) Testes e integração
```bash
yarn test:integration
```

3) Cobertura de testes
```bash
yarn test:ci
```


# 📑 API
Documentação de uso.

## Controle de versão de API
A primeira parte do caminho URI especifica a versão da API que você deseja acessar no formato `v{version_number}`.

Por exemplo, a versão 1 da API (mais atual) pode ser acessada por meio de:

```no-highlight
https://localhost/v1/
```

## Solicitações HTTP
Todas as solicitações de API são feitas enviando uma solicitação HTTPS segura usando um dos seguintes métodos, dependendo da ação que está sendo realizada:

* `POST` Crie um recurso
* `PUT` Atualizar um recurso
* `GET` Obtenha um recurso ou lista de recursos
* `DELETE` Excluir um recurso

Para solicitações PUT e POST, o corpo de sua solicitação pode incluir uma carga útil JSON, e o URI solicitado pode incluir uma string de consulta especificando filtros ou comandos adicionais, todos descritos nas seções a seguir.

## Códigos de resposta HTTP
Cada resposta será retornada com um dos seguintes códigos de status HTTP:

* `200` `OK` O pedido foi bem sucedido
* `400` `Bad Request` Houve um problema com a solicitação (segurança, malformado, validação de dados, etc.)
* `401` `Unauthorized` As credenciais de API fornecidas são inválidas
* `403` `Forbidden` As credenciais fornecidas não têm permissão para acessar o recurso solicitado
* `404` `Not found` Foi feita uma tentativa de acessar um recurso que não existe na API
* `500` `Server Error` Ocorreu um erro no servidor

## Endpoints
SignUp




  • Method: POST Path: /v1/sign-up


    Request

    ```JSON
    Content-Type:application/json,
    Accept:application/json,
    body:
    {
    "email": "[email protected]",
    "password": "12345",
    "confirmationPassword": "12345"
    }
    ```

    - email: Obrigatório String Min: 10 Max: 50


    - password: Obrigatório String Min: 10 Max: 50


    - confirmationPassword: Obrigatório String Min: 10 Max: 50

    Response



    • 200

      ```JSON
      statusCode: 200
      {
      "id": 1,
      "email": "[email protected]",
      "token": "any_token"
      }
      ```

      - id: Number


      - email: String


      - token: String



    • 400

      ```JSON
      statusCode: 400
      {
      "name": "Missing param",
      "message": "Missing param: {field}"
      }
      ```

      - name: String


      - message: String


      - field: email, password ou confirmationPassword









SignIn




  • Method: POST Path: /v1/sign-in


    Request

    ```JSON
    Content-Type:application/json,
    Accept:application/json,
    body:
    {
    "email": "[email protected]",
    "password": "12345"
    }
    ```

    - email: Obrigatório String Min: 10 Max: 50


    - password: Obrigatório String Min: 10 Max: 50



    Response

    ```JSON
    {
    "token": "any_token"
    }
    ```

    - token: String






Search




  • Method: GET Path: /v1/search


    Request

    ```JSON
    Content-Type:application/json,
    Accept:application/json,
    params:
    {
    "address": "any_address"
    }
    ```

    - address: Obrigatório String Min: 10 Max: 50



    Response

    ```JSON
    {
    "data": [ { "address": "any_address" } ]
    }
    ```

    - data: Array







## 🏗️ Roadmap

Melhorias e features:

- **CD/CI:** Teraform, Ansible and Azure cloud (Pipeline).
- **Front:** Angular.
- **Banco de dados:** Modelagem.
- **Documentação**: Adicionar lista com tipos de erros. Ex: "Missing param".


## :memo: Licença

Esse projeto está sob a licença MIT. Veja o arquivo [LICENSE](/LICENSE) para mais detalhes.