Não autenticado |
Arquivo README.md

Starter versão 2

Aplicação esqueleto para novos projetos utilizando Laravel 11.

Para utilizar Laravel 8, veja a versão 1.


Esta aplicação é um esqueleto que já tem as principais bibliotecas USPDev pré configuradas:

"uspdev/laravel-replicado": "^1.0"
"uspdev/laravel-tools": "^1.2"
"uspdev/laravel-usp-theme": "^2.7"
"uspdev/senhaunica-socialite": "^4.3"

Instalação

  • Inicio
    git clone git@github.com:uspdev/starter sua-aplicacao
    cd sua-aplicacao
    composer update
    cp .env.example .env
    php artisan key:generate
    php artisan migrate
  • Crie seu repositório remoto e faça as seguintes configurações
    git remote remove origin
    git remote add origin git@github.com:uspdev/sua-aplicacao
    git push -u origin main
  • ajuste o composer.json com os dados da sua aplicação
  • Utilize o readme.md como exemplo
  • Remova o que for desnecessário
  • Ajuste o .env.example

OBS.: Caso não vá utilizar alguma biblioteca instalada, além de remover do composer.json verifique a necessidade de ajustes no .env.example.

Testes

php artisan dusk

Testando envio de e-mails utilizando a plataforma Mailtrap

Utilizando a plataforma Mailtrap é possível capturar os e-mails enviados sem que estes cheguem à caixa de entrada dos destinatários, possibilitando assim testar e analisar o envio de e-mails antes de se colocar em produção.

Como Utilizar

Após criar e entrar com uma conta na plataforma, é possível gerar as credenciais para o envio de e-mail no sistema utilizado, no caso do Laravel as credenciais seriam semelhantes à figura a seguir:

image

Assim, basta substituir tais credenciais no .env do projeto e enviar os e-mails normalmente que estes serão capturados na caixa de entrada do Mailtrap, sem serem enviados aos seus destinatários.

Histórico

  • 9/08/2024

    • Versão 2, atualizado para laravel 11 e PHP 8.2.
  • 15/12/2022

    • instalado laravel/dusk: teste de navegador com testes basicos.
  • 16/11/2022

    • instalado ybr-nx/laravel-mariadb: permite utilizar json em mariadb de forma similar ao mysql
    • instalado spatie/commonmark-highlighter
    • helper md2html($markdown)

Minha Aplicação

Diga o que é sua aplicação.

Funcionalidades

  • Descreva suas funcionalidades aqui
  • Pode colocar prints de tela

Requisitos

O que é necessário para rodar esta aplicação

Atualização

[Se houver instruções específicas sobre atualizações, descreva aqui.]

Em produção

Para receber as últimas atualizações do sistema rode:

git pull
composer install --no-dev
php artisan migrate

Instalação

[Descreva como instalar a aplicação]

Básico

git clone git@github.com:uspdev/chamados
composer install
cp .env.example .env
php artisan key:generate

Configure o .env conforme a necessidade

Cache (opcional)

Algumas partes podem usar cache (https://github.com/uspdev/cache). Para utilizá-lo você precisa instalar e configurar o memcached no mesmo servidor da aplicação.

apt install memcached
vim /etc/memcached.conf
    I = 5M
    -m 128

/etc/init.d/memcached restart

Email

O gmail utiliza senhas de app (https://support.google.com/accounts/answer/185833?hl=pt-BR) desde maio/2022. Siga os passos para gerar uma senha de app para sua aplicação.

Apache ou nginx

Deve apontar para a /public, assim como qualquer projeto laravel.

No Apache é possivel utilizar a extensão MPM-ITK (http://mpm-itk.sesse.net/) que permite rodar seu Servidor Virtual com usuário próprio. Isso facilita rodar o sistema como um usuário comum e não precisa ajustar as permissões da pasta storage/.

sudo apt install libapache2-mpm-itk
sudo a2enmod mpm_itk
sudo service apache2 restart

Dentro do seu virtualhost coloque

<IfModule mpm_itk_module>
AssignUserId nome_do_usuario nome_do_grupo
</IfModule>

Senha única

Cadastre uma nova URL no configurador de senha única utilizando o caminho https://seu_app/callback. Guarde o callback_id para colocar no arquivo .env.

Banco de dados

  • DEV

    php artisan migrate:fresh --seed

  • Produção

    php artisan migrate

Supervisor (opcional)

Para as filas de envio de email o sistema precisa de um gerenciador que mantenha rodando o processo que monitora as filas. O recomendado é o Supervisor. No Ubuntu ou Debian instale com:

sudo apt install supervisor

Modelo de arquivo de configuração. Como root, crie o arquivo /etc/supervisor/conf.d/chamados_queue_worker_default.conf com o conteúdo abaixo:

[program:chamados_queue_worker_default]
command=/usr/bin/php /home/sistemas/chamados/artisan queue:listen --queue=default --tries=3 --timeout=60
process_num=1
username=www-data
numprocs=1
process_name=%(process_num)s
priority=999
autostart=true
autorestart=unexpected
startretries=3
stopsignal=QUIT
stderr_logfile=/var/log/supervisor/chamados_queue_worker_default.log

Ajustes necessários:

command=<ajuste o caminho da aplicação>
username=<nome do usuário do processo do chamados>
stderr_logfile = <aplicacao>/storage/logs/<seu arquivo de log>

Reinicie o Supervisor

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl restart all

Problemas e soluções

Alguma dica de como resolver problemas comuns?

Histórico

Registre o log das principais alterações

Conteúdo do laravel-usp-theme (@parent)

Lorem Ipsum

O Lorem Ipsum é um texto modelo da indústria tipográfica e de impressão. O Lorem Ipsum tem vindo a ser o texto padrão usado por estas indústrias desde o ano de 1500, quando uma misturou os caracteres de um texto para criar um espécime de livro. Este texto não só sobreviveu 5 séculos, mas também o salto para a tipografia electrónica, mantendo-se essencialmente inalterada. Foi popularizada nos anos 60 com a disponibilização das folhas de Letraset, que continham passagens com Lorem Ipsum, e mais recentemente com os programas de publicação como o Aldus PageMaker que incluem versões do Lorem Ipsum. Porque é que o usamos? É um facto estabelecido de que um leitor é distraído pelo conteúdo legível de uma página quando analisa a sua mancha gráfica. Logo, o uso de Lorem Ipsum leva a uma distribuição mais ou menos normal de letras, ao contrário do uso de "Conteúdo aqui, conteúdo aqui", tornando-o texto legível. Muitas ferramentas de publicação electrónica e editores de páginas web usam actualmente o Lorem Ipsum como o modelo de texto usado por omissão, e uma pesquisa por "lorem ipsum" irá encontrar muitos websites ainda na sua infância.

Bloco datatables-simples

Formata o datatables apresentando os botões de Excel/Csv, pesquisa à esquerda, contagem de registros no topo, paginação com 10 por página, com ordenação, responsivo.
A ativação de fixed header, botões e paginação é por meio de classes adicionadas à tabela, assim como responsive.
Nome Idade Tipo Ordem Bla Ble Blo
John Wick 25 User 1 Bla Bla Bla Bla Bla Bla Ble Ble Ble Ble Ble Ble Ble Ble Ble Ble Ble Ble
Keanu Reeves 25 User 2 Bla Bla Bla Bla Bla Bla Ble Ble Ble Ble Ble Ble Ble Ble Ble Ble Ble Ble
Jane Doe 32 User 3 Bla 2 Ble 2 Ble 2
Alice in Wonderland 60 Manager 4 Bla 1 Ble 1 Ble 1
Maria 48 Admin 5 Bla 1 Ble 1 Ble 1
José 22 Poweruser 6 Bla 1 Ble 1 Ble 1
João 58 Admin 7 Bla 1 Ble 1 Ble 1
Adriana 15 Manager 8 Bla 1 Ble 1 Ble 1
Thiago 33 Admin 9 Bla 1 Ble 1 Ble 1
Andrea 44 Admin 10 Bla 1 Ble 1 Ble 1
John Doe 33 Poweruser 11 Bla 2 Ble 2 Ble 2

Datatables

Além do datatables propriamente, estão disponíveis os plugins:
- responsive
- excel/csv
- tradução para pt-br
- fixed header

JqueryUI/Datepicker


Select2

Mask

Bloco Spinner

Clique para ver, recarregue a página ou clique para restaurar.
Link com spinner

Bloco Sticky
Fixa o header de um card no topo
Usa a cor padrão
Role para cima para ver em funcionamento
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla
bla