GitXplorerGitXplorer
S

digital-maps

public
1 stars
0 forks
0 issues

Commits

List of commits on branch main.
Unverified
fba5cb0d841a2e2b32606ccb532002ae03b768cd

fix documentation

committed 3 years ago
Unverified
345e4a70ac19e420b6f9fefb607405b6a97fc064

Mesclado com feature/documentation (solicitação pull #3)

SSOSTheBlack committed 3 years ago
Unverified
a227229dbb3ca901b6f83ec82cedcd89093acd4d

fix insights

committed 3 years ago
Unverified
2e7feb94088a5c23f60089356af97b955ce58efd

check e fix style

SSOSTheBlack committed 3 years ago
Unverified
1a017d30ec1f6036f54dc268ea5c536c149bb800

documentação PHPStan

SSOSTheBlack committed 3 years ago
Unverified
191c057d5aee38a25f23fe61bcc98753949b00fb

instalação

committed 3 years ago

README

The README file for this repository.

LuizaLabs

Sumário

Introdução

A DigitalMaps é uma empresa especializada na produção de receptores GPS.

Esse aplicativo é um dos microserviços da DigitalMaps, sua responsabilidades são:

  • Armazenar pontos de referência segundo sua latitude, longitude e horário de funcionamento.
  • Disponibilizar os pontos de referência(previamente cadastrados) em funcionamento próximos ao usuário.

Arquitetura

O microserviço foi desenvolvido na linguagem de programação PHP com framework Laravel 9.x. Para armazenamento dos dados está sendo utilizado MySql com Eloquent(Laravel) implementado Repository Partner.

Hoje o microseviço funciona sobre três pilares, usuário, pontos de interesse e proximidades que reúne o local do usuário e interesse ao seu redor.

Helpers

Por ser um projeto pequeno não houve a necessidade da criação de um helper.php file. Porém criei a trait \App\Helpers\AuthUser utilizado apenas no observer \App\Observers\PointInterestObserver

Observers

Os observers são utilizados para ouvirem eventos de um determinado modelo

\App\Observers\PointInterestObserver: Responsável por definir o usuário logado como criador do ponto de interesse recém registrado.

\App\Observers\UserObserver: Responsável por criptografar a senha do usuário recém-criado.

Todos os observers são carregados automaticamente através do provider \App\Providers\ObserverServiceProvider.

Repositório

Repositório é um serviço que utilizo para armazenar lógica do meu modelo de dados.

Para cada modelo eu tenho um Serviço de repositório que ficam armazenados na pasta app/Repositorios.

Todos os repositórios são carregados automaticamente através do provider \App\Providers\RepositoryServiceProvider possibilitando a dependency injection.

Instalação

Pré-requisitos

  • MacOS, Linux ou Windows (via WSL2)
  • Git

Baixando microserviço

Nosso primeiro passo será clonar o projeto para sua maquina.

git clone https://github.com/SOSTheBlack/digital-maps

cd digital-maps

Faça uma cópia do arquivo .env.example e o nomei de .env com o comando abaixo:

cp .env.example .env

Instalando dependências

Este comando usa um pequeno container Docker contendo PHP e Composer para instalar as dependências do aplicativo:

docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v $(pwd):/var/www/html \
    -w /var/www/html \
    laravelsail/php81-composer:latest \
    composer install --ignore-platform-reqs

Iniciando microserviço

No projeto é utilizado Laravel Sail, uma interface de linha de comando leve para interagir com o ambiente de desenvolvimento Docker.

Antes de iniciar o microserviço, você deve garantir que nenhum outro servidor web ou banco de dados esteja rodando em seu computador local.

Para iniciar todos os containers Docker definidos, você deve executar o comando up:

./vendor/bin/sail up

DigitalMaps

Uma vez iniciados os containers da aplicação, você pode acessar o projeto em seu navegador web em: http://localhost

Interagindo com o banco de dados

Para se conectar ao banco de dados MySQL a partir de sua máquina local, você pode usar um aplicativo gráfico de gerenciamento de banco de dados, como o TablePlus.

Por padrão, o banco de dados MySQL está acessível na localhostporta 3306.

HOST=localhost
USERNAME=root
PASSWORD=password
DATABASE=digital-maps

Configurando alias

Por padrão, os comandos Sail são invocados usando o vendor/bin/sail.

No entanto, em vez de digitar repetidamente vendor/bin/sail para executar os comandos do Sail, você pode configurar um alias do Bash que permita executar os comandos do Sail com mais facilidade:

alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'

Uma vez que o alias Bash tenha sido configurado, você pode executar comandos Sail simplesmente digitando sail.

sail up -d

Todos os próximos exemplos de comando será levado em consideração esse alias.

Parando o microserviço

Para parar todos os containers do microserviço, você pode simplesmente pressionar Control + C para parar a execução do container. Ou, se os containers estiverem rodando em segundo plano, você pode usar o stop comando:

sail stop

Qualidade do Código

Testes automatizados

O Aplicativo DigitalMaps foi construído com tests em mente.

Para executar os tests que ficam no diretório /tests basta executar o comando abaixo:

sail test

Digital Maps Test

PHP-CS-Fixer

O PHP-CS-Fixer é um fixador de padrões de codificação PHP, ele corrige todo o estilo do seu código, quebras, espaços, estilo de declarações, dentre outros.

A configuração do estilo do código seguido é PSR-12, detalhes e configurações do estilo do código pode ser obtido através do arquivo .php-cs-fixer.php na raiz desse projeto.

Para verificar se estilo do código está seguindo os padrões de desenvolvimento definido execute o comando abaixo:

sail composer check-style

Check Style

PHPStan

O PHPStan se concentra em encontrar erros em seu código sem realmente executá-lo. Ele captura classes inteiras de bugs antes mesmo de você escrever testes para o código. Ele aproxima o PHP das linguagens compiladas no sentido de que a correção de cada linha do código pode ser verificada antes de você executar a linha atual.

Resumidamente ele é um analisador estático que varre o código da sua aplicação procurando por erros e incongruências sem que haja a necessidade de executá-lo, a análise é toda estática. É uma ferramenta essencial para te apontar bugs ou erros que certamente aparecerão em algum momento do uso da aplicação.

O PHPStan está analisando o código no nível mais estrito(9) possível. Para executar esse analisador de código, basta executar o comando abaixo:

sail composer phpstan

LaravelStan

PHPInsights

O PHPInsights analisa a qualidade do código. Ele divide a análise em quatro categorias: código, complexidade (complexidade ciclomática etc), arquitetura (tamanho de métodos e classes, entre outras análises) e estilo de código (formatação, padronização).

Para executar esse analisador de código, basta executar o comando abaixo:

sail composer phpinsights

PHPInsights

Documentação

A documentação do aplicativo pode ser importado para o seu Postman através do botão abaixo:

Run in Postman

Documentação