Skip to content

Releases: kascat/sample-project

3.0

Choose a tag to compare

@kascat kascat released this 17 Dec 18:50
704f3f6

Atualizações

Principais atualizações na "infrastructure"

  • Nova estrutura do projeto:
    • Diretório docker com arquivos relacionados aos contêiners
    • Diretório scripts com os scripts shell do projeto
    • Diretório src destinado para armazenar os projetos backend, frontend, banco de dados e demais dados da aplicação
  • 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.sh e setup-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.sh para 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 User e 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_in e login_time, agora passam a serem validadas em cada requisição no Middleware app/Http/Middleware/UserChecker.php, não sendo mais necessário um command schedule para 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 blade para 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 props passado pela Page.
    • Nova estrutura visual do cabeçalho da página.
  • Atualização geral da estrutura do Main Layout.
  • Atualização dos componentes que compõe o layout, e no diretório layout_components para 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

2.0

Choose a tag to compare

@kascat kascat released this 12 Aug 20:27
c83ebc9

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.sh para limpeza do container backend (Cache do Laravel, rotas, views, sessions, logs).
  • Atualização dos comandos docker-compose para docker compose tirando 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.js e adição do vite.config.js.
  • Tratamento de CORS migrado da bibliotéca Fruitcake para o tratamento nativo do Laravel.
  • Adição de Rules de CPF e CNPJ frequentemente usadas (app/Rules/CpfRule.php e app/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 Users e Permissions.
    • Uso de Enums para controle de valores de Abilities e Roles;
    • 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;
  • Remoção de arquivos não utilizados.
  • Adição de logo.

Principais atualizações no "frontend"

  • Nome da variável de ambiente NODE_ENV atualizado para ENVIRONMENT, pois conflita com a variável NODE_ENV reservada 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: Dialog e Loading.
  • 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

Choose a tag to compare

@kascat kascat released this 08 Aug 19:16

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.sh

O comando abaixo é utilizado para iniciar o projeto:

./start-local.sh

O comando abaixo é utilizado para parar a execução do projeto:

./stop-local.sh

Para 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.sh

Ambiente 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.sh

Apó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 --all

OBS: 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.sh

Ou 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".