Documentação

Introdução

Esse projeto visa desenvolver uma aplicação que simula a requisição de chamados, onde o usuário abre um chamado e esse tem um status. O usuário consegue consultar e criar novos chamados. O administrador, após logar no sistema, consegue visualizar os chamados abertos e alterar seus respectivos estados.

Observação: Este é um projeto de aprendizado, se algo não parece correto na documentação, sinta-se livre para sugerir correções.

Segurança da Informação

É utilizado as ferramentas do laravel como middelware e auth para garantir mais segurança, de modo que algumas partes do sistema serão acessíveis exclusivamente para usuários autenticados no sistema. Na pasta de rotas podemos encontrar os arquivos de rotas e respectivamente utilizam trechos de código como Route::middleware('auth')->group(function () {...} ou, caso a página deva ser acessada por qualquer usuário, mesmo sem estar logado, utilizar 'guest' no lugar de 'auth' . Como no exemplo abaixo:

image.png

Integridade dos Dados

É utilizado o método validate() para validação de dados enviados em uma requisição HTTP. O que me permite validar que um dado seja de um tipo específico, com tamanho específico, se é obrigatório ou não, etc. Pro exemplo no trecho de código abaixo:

image.png

Onde 'status' é um campo obrigatório e necessita ser uma string.

Padrão MVC

Para garantir a separação entre Modelo, Visão e Controlador, faz-se necessário a aplicação de algumas estratégias.

Fluxo

O fluxo da aplicação funciona de modo que o primeiro contato do usuário é na visão, que é a interface, as páginas que o sistema apresenta. A visão permite realizar solicitações para o Modelo, como cadastrar um chamado ou registrar um usuário, isso é registrado no seu de banco de dados, mas essas informações precisam ser intermediadas por algo, e esse é o papel do Controlador, que processa a sua requisição, proporciona uma validação e segurança para o sistema e seus dados processados, estabelecendo a ponte entre visão e modelo do sistema.

Modelo

O laravel organiza os arquivos de modelo no diretório app/model onde temos oProtocolo.php e User.php atualmente que garantem a representação correta dessas entidades no banco de dados.

Visão

Os arquivos de interface com o usuário tipicamente estão nomeados como .blade.php e estão nos diretórios resources/layouts .

Outros arquivos podem existir nesses diretórios e são arquivos gerados automaticamente por alguma ferramenta ou comando utilizado. Mas se estão presentes nesse diretório então esses arquivos estão relacionados a interface do usuário.

Controlador

O diretório app/Http/Controllers vai lidar com a comunicação entre modelo e visão, controlando o fluxo de informação que flui entre esses dois pontos do sistema. Com o comando composer require laravel/breeze --dev e php artisan breeze:install foi possível instalar arquivos e pacotes necessários para o sistema de login, que gera arquivos referentes a autenticação automaticamente nos diretórios respeitando o padrão MVC.