Giter Site home page Giter Site logo

angola-api's Introduction

Angola API

Angola API Angola API License

Vamos transformar Angola em uma API?
Que tal pegarmos a ideia do Brasil API e levarmos em Angola?

Sobre o Projecto   |    Tecnologias   |    Endpoints   |    Como Contribuir   |    License   |    Colaboradores   |    Autores

💡 Sobre o projecto

Imagina um país com 1.246.700 km² com cerca de 30 milhões de habitantes distribuído em 18 províncias, mas não possui uma API pública para consulta de diversas informações sobre finanças, geografia ou validação de dados. Pois é, um grande problema.

Face a esse problema nos inspiramos na organização brasileira chamada Brasil Api e decidimos reunir o maior número de informações necessária sobre Angola e distribuir de forma gratuita.

Nós conseguimos distribuir algumas informações bancarias como :

  • Taxa de juro do BNA
  • Taxa de juro Luibor (Taxa Interbancária de Oferta de Fundos do Mercado de Luanda)
  • Taxa de inflação
  • Taxas de câmbio no BNA
  • Taxas de câmbio nos bancos comerciais
  • Taxas de juros de bancos comerciais
Todas as informações acima são extraídas diretamente do site https://www.bna.ao.

Também decidimos disponiblizar endpoints para validar as seguintes informações :
  • Bilhete de identidade
  • Passaporte
  • Número de telefone
Importante realçar que também conseguimos disponiblizar conteúdos como :
  • Lista de provincias de Angola
  • Lista de munícipios de uma província
  • Lista de distritos de um munícipio

🛠️ Tecnologias

Este projecto foi construído usando as seguintes tecnologias:

🔗 Endpoints

Embaixo segue a lista e descrição de endpoints implementados nesse projecto. OBS: SSL está desabilitado nos endpoints.

Geography

Províncias

Retorna a lista de províncias do território nacional ou apenas uma província se o ID for informado.

GET https://angolaapi.onrender.com/api/v1/geography/provinces

Exemplo da consulta
// GET https://angolaapi.onrender.com/api/v1/geography/provinces

[
  {
    "id": "6032c083c5686966bcc04202",
    "nome": "Bengo",
    "codigo": "BGO",
    "capital": "Caxito",
    "area": 15506,
    "populacao": 356641,
    "municipios": 6,
    "comunas": 23
  },
  {
    "id": "6032c083c5686966bcc04203",
    "nome": "Benguela",
    "codigo": "BGU",
    "capital": "Benguela",
    "area": 31788,
    "populacao": 2231385,
    "municipios": 10,
    "comunas": 38
  },
  {
    "id": "6032c083c5686966bcc04204",
    "nome": "Bié",
    "codigo": "BIE",
    "capital": "Cuíto",
    "area": 70314,
    "populacao": 1455255,
    "municipios": 9,
    "comunas": 39
  },
  ...
 ]

GET https://angolaapi.onrender.com/api/v1/geography/provinces/[id]

Exemplo da consulta
// GET https://angolaapi.onrender.com/api/v1/geography/provinces/6032c083c5686966bcc04210

{
  "id": "6032c083c5686966bcc04210",
  "nome": "Moxico",
  "codigo": "MOX",
  "capital": "Luena",
  "area": 223023,
  "populacao": 758568,
  "municipios": 9,
  "comunas": 27
}

Munícipios

Busca pelos munícipios de uma determinada província

GET https://angolaapi.onrender.com/api/v1/geography/county?provincia=[municipio]

Exemplo da consulta
// GET https://angolaapi.onrender.com/api/v1/geography/county?provincia=Luanda

[
  {
    "id": "6032c086c5686966bcc04270",
    "descricao": "",
    "nome": "Belas",
    "provincia": "Luanda"
  },
  {
    "id": "6032c086c5686966bcc04271",
    "descricao": "",
    "nome": "Cacuaco",
    "provincia": "Luanda"
  },
  {
    "id": "6032c086c5686966bcc04272",
    "descricao": "",
    "nome": "Cazenga",
    "provincia": "Luanda"
  },
  {
    "id": "6032c086c5686966bcc04273",
    "descricao": "",
    "nome": "Ícolo e Bengo",
    "provincia": "Luanda"
  },
  {
    "id": "6032c086c5686966bcc04274",
    "descricao": "",
    "nome": "Luanda",
    "provincia": "Luanda"
  },
  {
    "id": "6032c086c5686966bcc04275",
    "descricao": "",
    "nome": "Quilamba Quiaxi",
    "provincia": "Luanda"
  },
  {
    "id": "6032c086c5686966bcc04276",
    "descricao": "",
    "nome": "Quissama",
    "provincia": "Luanda"
  },
  {
    "id": "6032c086c5686966bcc04277",
    "descricao": "",
    "nome": "Talatona",
    "provincia": "Luanda"
  },
  {
    "id": "6032c086c5686966bcc04278",
    "descricao": "",
    "nome": "Viana",
    "provincia": "Luanda"
  }
]

Validate

Bilhete de identidade

Verifica se número informado é um bilhete de identidade nacional.

GET https://angolaapi.onrender.com/api/v1/validate/bi/[bi]

Consulta com sucesso
// GET https://angolaapi.onrender.com/api/v1/validate/bi/006151112LA041
// Status: 200
{
  "success": true,
  "message": "This is an Angola valid bi number"
}
Consulta com erro
// GET https://angolaapi.onrender.com/api/v1/validate/bi/006151112LA04A
// Status: 400
{
  "success": false,
  "message": "Invalid bi number"
}

Passaporte

Retorna se o registo informado é aceitavél como identificador de um passaporte angolano.

GET https://angolaapi.onrender.com/api/v1/validate/passport/[passport]

Consulta com sucesso
// GET https://angolaapi.onrender.com/api/v1/validate/passport/n1234566
// Status: 200
{
  "message": "This is an Angola valid passport number"
}
Consulta com erro
// GET https://angolaapi.onrender.com/api/v1/validate/passport/n12345667
// Status: 400
{
  "message": "Invalid passport number"
}

Telefone

Verifica se o número informado é de Angola e a qual operadora pertence.

GET https://angolaapi.onrender.com/api/v1/validate/phone/[phone]

Consulta com sucesso
// GET https://angolaapi.onrender.com/api/v1/validate/phone/+244923445618
// Status: 200
{
  "message": "This is an Angola valid phone number",
  "operator": "Unitel"
}
Consulta com erro
// GET https://angolaapi.onrender.com/api/v1/validate/phone/+8599562562
// Status: 400
{
  "message": "Invalid phone number"
}

👐 Como contribuir

Chega de Português rsrsrs, abaixo os passos para contribuir no Angola Api

  1. Faça um Fork no projecto (https://github.com/Angola-Api/Angola-Api)
  2. Cria uma branch com a tua feature (git checkout -b angolaapi/new-feature)
  3. Faça um Commit com as tuas mudanças (git commit -am 'Add new feature')
  4. Faça um Push para a Branch (git push origin feature/new-feature)
  5. Cria uma Pull Request

📝 License

Este projeto está sob a licença do MIT. Acessa: (https://opensource.org/licenses/MIT) para mais detalhes.

👥 Colaboradores


@carlcr

@alexxfreitag

@ViniciusCarvalhoDev

@Nurul-GC

👤 Autores


@luteroelavoco

@adilsonfuxe

angola-api's People

Contributors

adilsonfuxe avatar alexxfreitag avatar carlcr avatar dumijdev avatar edhotz avatar elisiomualumene avatar kiteque avatar lourencosalvador avatar luiscaputo avatar luteroelavoco avatar marcioquimbundo avatar nurul-gc avatar paulo-lopes-estevao avatar viniciuscarvalhodev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

angola-api's Issues

Buscar e autocomplete

Deveria também ter a opção de usuários pesquisar munícipios e retornar a localização completa.
Ex: fazer uma pesquisa com a palavra cazenga. E retornar:
-Angola, Luanda, Cazenga
-Angola, Kwanza norte, Cazenga

Problema a executar as routas

Parece que o vosso servidor está em baixo e é impossível fazer consulta na vossa api.
Aconselho a verificarem o log do heroku, ou caso vocês não ficaram a saber o heroku mudou os planos, e já não existe serviços free por parte deles.
Aconselho a migrarem a api para https://render.com/
Pode haver lentidão quando o servidor fica muito tempo inativo, mas depois restabelece.
Comecei a dar uma olhada na vossa iniciatica, e pretendo contribuir também, após o serviço estiver no ar eu vou submeter uma nova feature para consultas de NIF.

Screenshot 2023-01-10 at 22 56 49

Validação de Número de Telefone

A API para validação de número de telefone, não está afinada, por exemplo, em minha aplicação consumo a vossa API e quando é passado o seguinte como parâmetro: https://angolaapi.herokuapp.com/api/v1/validate/phone/+244975323281 a api simplesmente retorna duzento, nota que 97 não está registrado na rede de Angola, sugestão validar os números registrados na rede daqui, são eles:

  • 91...
  • 92...
  • 93...
  • 94...
  • 95...
  • 99...

Atenciosamente,
Luís Afonso Caputo

Sugestão: Alteração do nome Operator para MobilePhoneOperators

Sugiro alteração do nome Operator para MobilePhoneOperators por ser mais especifico e descritivo com significado do que realmente se retrata.

Nome Operator é ligada a varias palavras que dão significados especificos no contexto arithmetic Operator ou logical Operator utlizando apenas o termos Operator não mostrara no contexto que queremos retratar.

Essa sugestão esta dentro das boas praticas clean code Regras de nomes regras-de-nomes .

getOperator(phone: string): string;

export enum Operator {

https://github.com/Angola-Api/Angola-Api/blob/ff35a81951698f2d9633ae5d3fb415bb4c4d129c/src/lib/IgetOperator.ts

Validação do Número do BI e Passaporte..

Olá Companheiros..
é bastante gratificante saber que ainda temos muito bons especialistas na area no nosso pais..
mas indo direito ao assunto acho que deviamos validar de uma forma mais eficaz os dados pessoais
e não apenas a sua organização ordinária!
o regex para validação de um dado muito importante quanto esses não é suficiente
por isso eu apelo a algum colega que tenha conhecimento e possa ter acesso a uma base ou organização governamental
que possa ajudar nessa secção do projecto ou apenas garantir acesso (limitado e específico) aos desenvolvedores deste projecto..
OBRIGADO!

Api consulta de bilhete de identidade com erro.

Boa tarde,

Podem por favor validar o que se passa com a API de consulta de BI?

Quando tento correr aparece-me o erro que o documento não foi encontrado, apesar do documento ser válido.

Api consulta bi

Adicionalmente existe uma outra API com esta mesma funcionalidade?

Obrigado!

Problema com o Cors

Juliana Soba, e aproveito parabenizar o projecto. Estou usando a vossa API para o meu projecto final, e estou tendo problemas de CORS no consumo. A mensagem retorna dizendo que: Acess to fetch at "link da api" from "meu localhost" has been blocked by CORS. Pode dar uma olhadela no UseCors e ver como está a definição de acesso? Por favor.

Super precisando da vossa ajuda.

Por enquanto a API está a validar apenas o formato do número do bilhete

Saudações,

Quanto ao recurso de validação a API está com um pequeno erro. As letras do número de bilhete representam as siglas das províncias., logo isto devia dar bilhete inválido:

image

Tendo em conta que não temos uma provincia YO. Por enquanto a API está a validar apenas o formato do número do bilhete

Problemas ao testar a API

Olá, desde estou bastante feliz e orgulhoso pelo projecto, será que neste momento estão fazendo correções?

É que alguns endpoints não estão a funcionar (o recurso bank), outros algumas vezes funcionam (o recurso geography). Se precisaram de alguma ajuda, estou disponível para contribuir com o meu pouco.

bug: Validar número de telefone sem o DD

Atualmente o endpoint de validação de número de telefone, não valida corretamente o número de telefone, mesmo que o número seja existente e correto.

Steps to Reproduce:

https://angolaapi.onrender.com/api/v1/validate/phone/936956559

Retorno:
{
"message": "Invalid phone number"
}

Expected Behavior:

https://angolaapi.onrender.com/api/v1/validate/phone/936956559

{
"message": "This is an Angola valid phone number",
"operator": "Unitel"
}

Actual Behavior:

Atualmente ele retorna como um número inválido.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.