# Angola Core Data API
API REST para centralizar e disponibilizar dados de referência sobre Angola. O projecto expõe a divisão administrativa do país — **províncias, municípios e comunas** — e informação de **bancos angolanos**, incluindo as respetivas siglas e prefixos bancários.
Foi construída com Laravel e foi pensada para servir aplicações web, móveis e outros serviços que precisem de uma fonte única para estes dados.
## Índice
- Funcionalidades
- Tecnologias
- Requisitos
- Instalação local
- Execução com Docker
- Base de dados e dados iniciais
- Utilização da API
- Endpoints
- Validações e exemplos
- Testes e qualidade
- Documentação OpenAPI
- Comandos úteis
- Estrutura do projecto
- Segurança
- Licença
## Funcionalidades
- Consulta paginada e filtrável de províncias, municípios, comunas e bancos.
- Relação geográfica `província → município → comuna`.
- Dados iniciais de províncias e bancos através de *seeders*.
- Criação, actualização, remoção lógica e restauro de registos.
- Lixeira específica para bancos, com opção de remoção permanente.
- Identificadores UUID para os recursos de domínio.
- Documentação OpenAPI e colecção Postman geradas com Scribe.
- Testes de funcionalidade para os endpoints da API.
## Tecnologias
- PHP `^8.3`
- Laravel `^13.8`
- SQLite por padrão (também há configuração para MySQL, MariaDB, PostgreSQL e SQL Server)
- Laravel Sanctum
- PHPUnit 12
- Laravel Pint
- Scribe 5 (documentação de API)
- Docker e Docker Compose
- Vite, Tailwind CSS e Node.js para os recursos de interface incluídos no Laravel
## Requisitos
Para executar localmente, instale:
- PHP 8.3 ou superior, com as extensões `pdo_sqlite`, `mbstring`, `xml`, `zip` e `intl`;
- Composer 2;
- SQLite 3;
- Node.js 20+ e npm (opcional para consumir a API, necessário para os recursos Vite);
- Git.
Como alternativa, use Docker Desktop e Docker Compose.
## Instalação local
Clone o repositório e entre na pasta do projecto:
```bash
git clone
cd Angola-Core-Data
```
Instale …