Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rogerinn/mon_prospecteur
https://github.com/rogerinn/mon_prospecteur
Last synced: 13 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/rogerinn/mon_prospecteur
- Owner: rogerinn
- Created: 2021-04-03T03:48:54.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-04-22T02:09:04.000Z (over 3 years ago)
- Last Synced: 2024-10-11T19:54:21.696Z (27 days ago)
- Language: TypeScript
- Size: 13 MB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## :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 recursoPara 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.