https://github.com/regis-amaral/desafiobeepay
Esta Api foi desenvolvida para o desafio de programação criado pela empresa Beepay. O objetivo do desafio consiste em desenvolver um cadastro de paciente, do qual possa ser testada a capacidade de criação de arquitetura, qualidade de código, validações e usabilidade.
https://github.com/regis-amaral/desafiobeepay
api laravel9 php8 rest
Last synced: 4 months ago
JSON representation
Esta Api foi desenvolvida para o desafio de programação criado pela empresa Beepay. O objetivo do desafio consiste em desenvolver um cadastro de paciente, do qual possa ser testada a capacidade de criação de arquitetura, qualidade de código, validações e usabilidade.
- Host: GitHub
- URL: https://github.com/regis-amaral/desafiobeepay
- Owner: regis-amaral
- Created: 2024-03-06T18:39:51.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-03-11T22:46:21.000Z (over 1 year ago)
- Last Synced: 2024-10-12T11:22:23.531Z (8 months ago)
- Topics: api, laravel9, php8, rest
- Language: HTML
- Homepage:
- Size: 944 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Desafio Beepay
Esta Api foi desenvolvida para o desafio de programação criado pela empresa Beepay. O objetivo do desafio consiste em desenvolver um cadastro de paciente, do qual possa ser testada a capacidade de criação de arquitetura, qualidade de código, validações e usabilidade.
Acesse a documentação de utilização no seguinte link:
https://documenter.getpostman.com/view/4127772/2sA2xh4DsU
## Requisitos
Para instalar o projeto é necessário ter os seguintes aplicativos instalados e atualizados:
- Docker ^25.0.3
- Docker-compose ^2.24.6
- Composer ^2.7.1## Instalando o projeto
Execute os seguintes passos:
1º Instalação de dependências
```
composer install
```2 º Crie o arquivo .env com uma cópia do .env.example
```
cp .env.example .env
```3º Construção da imagem dos containers
Use o seguinte comando para construir as imagem dos containers necessários para rodar o projeto:
```
./vendor/bin/sail build --no-cache
```
## Primeira execuçãoA primeira execução do projeto requer que sejam executados os seguintes passos:
1º - Subir os containers
```
./vendor/bin/sail up -d
```
2º - Gerar app key
```
./vendor/bin/sail artisan key:generate
```
3º - Rodar as migrations
```
./vendor/bin/sail artisan migrate
```
4º - Criar registros falsos no banco de dados
```
./vendor/bin/sail artisan db:seed --class=PatientTableSeeder
```Tendo executado com sucesso os passos acima, abra o navegador e acesse o endereço http://localhost para verificar se a API está online.
Utilize a documentação do link abaixo para realizar as chamadas pré-configuradas com o Postman:
https://documenter.getpostman.com/view/4127772/2sA2xh4DsU
## Executar a aplicação
Para executar a aplicação use o comando:
```
./vendor/bin/sail up -d
```## Importação de arquivo .csv com dados de Pacientes
Para a importação do arquivo csv com dados de pacientes o sistema obedece a regra de importar todos os dados com sucesso ou nenhum.
- Utilize como modelo o arquivo .csv localizado na pasta ``./docs/patients.csv``
- Para gerar CNS válido utilize https://geradornv.com.br/gerador-cns
- Para gerar CPF válido utilize https://www.geradordecpf.orgCaso algum registro não passe na validação de dados a importação será abortada.
No Horizon é possível ver o status das tarefas de importação.Mensagens indicando os erros individuais de cada registro serão gravadas em um arquivo de log localizado em ``./storage/logs/import.log``.
## Laravel Horizon
A aplicação conta com o Laravel Horizon para visualizar as tarefas.
Rode o comando abaixo para ativá-lo:
```
./vendor/bin/sail artisan horizon
```
Acesse em http://localhost/horizon## Testes de Unidade e Funcionalidade
### Rodando Tests
```
./vendor/bin/sail artisan test
```### Rodando Tests Coverage
```
./vendor/bin/sail artisan test --coverage
```Resultado esperado:

### Gerar relatório de Test Coverage
```
./vendor/bin/sail phpunit --coverage-html coverage-report
```Abra o arquivo ```./coverage-report/index.html``` com um navegador para visualizar o relatório.
## Comandos úteis:
#### Parar containers:
```
./vendor/bin/sail stop
```
#### Acessar linha de comando:
```
./vendor/bin/sail sheel
```
ou como root
```
./vendor/bin/sail root-shell
```
#### Logs em tempo real
```
./vendor/bin/sail root-shell -f
```