Releases: kascat/sample-project
Release list
3.0
Atualizações
Principais atualizações na "infrastructure"
- Nova estrutura do projeto:
- Diretório
dockercom arquivos relacionados aos contêiners - Diretório
scriptscom os scripts shell do projeto - Diretório
srcdestinado para armazenar os projetos backend, frontend, banco de dados e demais dados da aplicação
- Diretório
- Atualizações de scripts e setup do projeto:
- Atualização de todos os scripts para permitir que sejam executados estando em qualquer diretório no terminal, não é necessário estão no mesmo diretório do script.
- Melhorias no processo de setup: Automatizado todos os passos necessários para ser executado com o script de
setup-dev.shesetup-homolog.sh, basta seguir as instruções no processo. - Atualização das variáveis .env, com nomes padronizados.
- Atualização do script
create-system-user.shpara pedir Nome, Email e Senha ao ser executado.
- Atualização do README.md.
- Adição de template de PR para Git.
Principais atualizações no "backend"
- Atualização do módulo
Users:- nova coluna para salvamento de telefone/WhatsApp.
- Utilização de Enum nativo para os status do usuário.
- Nova funcionalidade de cadastro, permitindo o usuário se auto cadastrar.
- Atualização geral do Service para utilizar contantes das propriedades
Usere tratamentos de erros. - Atualização das regras de validação no Request.
- Atualização do e-mail de definição de senha, e movido a classe do e-mail para dentro do módulo.
- Nova rota API para mudança de status do usuário.
- Validação de tempo de acesso do usuário:
- Modificação na forma de verificar se um usuário pode acessar a plataforma pela definição de "tempo de acesso".
- As colunas
expires_inelogin_time, agora passam a serem validadas em cada requisição no Middlewareapp/Http/Middleware/UserChecker.php, não sendo mais necessário umcommand schedulepara mudar o status do usuário.
- Utilização de tradução para as respostas da API.
- Atualizações gerais no módulo de
Permissions. - Adição de nova logo.
- Reestruturação dos arquivos
bladepara uso em e-mails.
Principais atualizações no "frontend"
- Adição de nova logo.
- Atualização das traduções (i18n).
- Atualização da dashboard.
- Criação de constantes para Status do usuário.
- Novo menu dinâmico do usuário, para logout e exibir informações do usuário.
- Reestruturação de Pages e Componentes:
- Recebimento do ID da URL no Formulário por
propspassado pela Page. - Nova estrutura visual do cabeçalho da página.
- Recebimento do ID da URL no Formulário por
- Atualização geral da estrutura do Main Layout.
- Atualização dos componentes que compõe o layout, e no diretório
layout_componentspara alocá-los. - Atualização nos nomes de alguns arquivos vue para seguir um padrão com os demais.
- Nova página para cadastro do usuário.
- Atualização e melhorias gerais nos componentes de listagem e formulário de usuário e permissões.
- Atualização da tela de definição de senha:
- Permitido salvar senha sem os requisitos obrigatórios, exceto a regra de ter mais que 4 dígitos.
- Atualização na forma de verificação do nível de segurança da senha com barra colorida informativa.
What's Changed
Full Changelog: 2.0...3.0
2.0
Atualizações
Principais atualizações na "infrastructure"
- Portas default dos containers atualizadas (arquivo
.env.example).- Backend: 81;
- Frontend: 8181;
- Banco de dados: 3307;
- Container backend atualizado com PHP v8.2.
- Desativado a configuração do cron no setup do container:
Dockerfile-backend. - Container frontend atualizado com Node v20.
- Adição do arquivo
clear-backend.shpara limpeza do container backend (Cache do Laravel, rotas, views, sessions, logs). - Atualização dos comandos
docker-composeparadocker composetirando a necessidade de instalação do docker-compose.
Principais atualizações no "backend"
- Atualização do Laravel para versão 11.0
- Atualizações gerais dos arquivos default do Laravel v11.
- Atualização do Sanctum permitindo definição de tempo de expiração do token de forma individual.
- Atualizações das demais dependencias do projeto (Veja
composer.json). - Remoção do arquivo de configuração
webpack.mix.jse adição dovite.config.js. - Tratamento de CORS migrado da bibliotéca
Fruitcakepara o tratamento nativo do Laravel. - Adição de Rules de CPF e CNPJ frequentemente usadas (
app/Rules/CpfRule.phpeapp/Rules/CnpjRule.php). - Adição de classes úteis para uso geral:
app/Utils/Formatter.php: Formatação gerais com números;app/Utils/Parse.php: Parse de valores booleanos;app/Utils/Server.php: Captura do IP do cliente HPPT;app/Utils/Str.php: Formatação de título e captura do primeiro nome;
- Remoção do módulo
Media. - Atualizações e melhorias nos módulos
UsersePermissions.- Uso de Enums para controle de valores de
AbilitieseRoles; - Uso de constantes para definição de propriedades das models;
- Uso de guarded no lugar de fillable;
- Mapeamento das Propriedades das models na definição da classe;
- Remoção de Dockblocks;
- Definição de return types nas funções e tipagem de atributos;
- Verificação de "Habilidades" necessárias para acesso às rotas;
- Uso de Enums para controle de valores de
- Remoção de arquivos não utilizados.
- Adição de logo.
Principais atualizações no "frontend"
- Nome da variável de ambiente
NODE_ENVatualizado paraENVIRONMENT, pois conflita com a variávelNODE_ENVreservada do Quasar. - Atualização de dependência
"chart.js": "^4.4.2". - Instalação de dependência
vue-chartjs. - Adição de logo.
- Configuração de plugins do Quasar:
DialogeLoading. - Remoção de componentes e arquivos de exemplos inutilizados.
- Aplicação de ponto e vírgula no JavaScript.
- Aplicação de tradução (i18n) para as páginas Vue.
- Adição de componentes genéricos para uso geral (Gráficos e Cards de valores).
- Criação de componente para controle da dashboard.
- Criação de constantes para controle dos valores de Habilidades (Permissões) e Roles (Papéis do usuário).
- Nova definição de cores default;
- Controle personalisado das cores do menu para cada ambiente (desenvolvimento, homolog e produção).
- Aplicação de filtros para listagem de usuários.
- Funções para controle das habilidades (permissões) do usuário em
src/boot/user.js.
What's Changed
Full Changelog: 1.0...2.0
First version
Projeto base
O projeto base possui a estrutura inicial para inicialização de um projeto.
Setup e automações
Abaixo se encontram os passos para SETUP e demais comandos disponíveis.
Ambiente de desenvolvimento
OBS: É necessário que já estejam previamente instalados Docker e Docker compose
A estrutura do projeto após o setup está demonstrada abaixo:
>
| > backend
| > frontend
| > database (caso possua)
O comando abaixo realiza o setup no ambiente local:
./setup-local.shO comando abaixo é utilizado para iniciar o projeto:
./start-local.shO comando abaixo é utilizado para parar a execução do projeto:
./stop-local.shPara executar comandos dentro dos containers backend e frontend execute os respectivos scripts
abaixo seguido do comando desejado, como no exemplo: ./container-backend php artisan migrate:status
./container-backend [comando]./container-frontend [comando]O comando abaixo pode ser utilizado para atualizar o backend e frontend com a branch dev.
./git-pull-local.shAmbiente de Homolog
Para realizar o setup no ambiente de homolog os itens abaixo precisam ser seguidos:
- Instalação de Docker e Docker compose
- Criação de chaves SSH para operações de cada repositório Git
- Adição no Git das chaves SSH criadas
- Mapeamento dos repositórios para as respectivas chaves SSH em ~/.ssh/config
- Clone dos repositórios backend e frontend (Caso seja repositório individual) dentro do diretório principal
O comando abaixo realiza a configuração dos containers no ambiente de homolog:
./setup-homolog.shApós a execução do script setup-homolog.sh é necessário realizar mais alguns passos para concluir a configuração:
- Configurar NGINX do servidor para as portas dos containers backend e frontend
- Configurar .env backend para as credenciais do BD (Caso necessário)
- Configurar .env frontend para a URL da API
- Restartar containers
O comando abaixo pode ser utilizado para execução do deploy em homolog,
podendo passar as flags --all, --backend ou --frontend realizando o deploy do respectivo ambiente:
deploy.sh --allOBS: O arquivo .env contém as credenciais para criação da base de dados, as mesmas credenciais definidas
nesse arquivo devem ser usadas no .env do backend para conexão com a base. Além de variáveis gerais dos containers.
Criando primeiro usuário
Para criar o primeiro usuário da base pode ser executado o script abaixo:
./first-user.shOu execute manualmente os 3 comandos a seguir:
./container-backend php artisan ti
$permission = Permission::create(["name" => "Administrador"])
User::create(["name"=>"The first","email"=>"email@mail.com","password"=>bcrypt("projeto"),"permission_id"=>$permission->id])Informações gerais
Arquivo pipe
O arquivo pipe na pasta backend é um arquivo pipe/FIFO utilizado no projeto para execução de shell script
a partir do php que utiliza o usuário 'nginx', diretamente no container como usuário 'root'.
Para isso o arquivo exec-pipe.sh deve ser executado (terminal ou cron) para começar ouvir
os scripts que forem chamados.
Para entender melhor esse processo vide exec-pipe.sh e pesquise por "Arquivos FIFO".