anúncios

terça-feira, 25 de julho de 2023

Configurando o MailHog no Laravel

MailHog é uma ferramenta de desenvolvimento que permite capturar e visualizar e-mails enviados por uma aplicação. Neste tutorial, explicarei como utilizar o MailHog em conjunto com uma aplicação Laravel para testar o envio de e-mails durante o desenvolvimento.

Com o Docker instalado, execute:

docker container run -d --name mailhog -p 8025:8025 -p 1025:1025 mailhog/mailhog

O MailHog será iniciado e começará a escutar na porta 1025 para SMTP e a porta 8025 para HTTP

Configurando o MailHog no projeto Laravel

Adicionar o MailHog no projeto Laravel

Abre o terminal e acesse o diretório raiz do projeto

composer require --dev mailhog/mailhog

Edite o arquivo .env e configure as variáveis

MAIL_MAILER=smtp
MAIL_HOST=localhost
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=seu-email@app.exemplo.com
MAIL_FROM_NAME="${APP_NAME}"

Essas configurações informam ao Laravel para usar o MailHog como servidor SMTP e enviar e-mails para o endereço especificado em MAIL_FROM_ADDRESS.

Testando o envio de e-mails

Estando com o MailHog em execução no ambiente Docker e configurado corretamente na sua aplicação Laravel, segue o exemplo básico de implementação para testar o envio de e-mails com o MailHog

php artisan make:mail WelcomeEmail

Abra o arquivo WelcomeEmail.php localizado em app/Mail e implemente o conteúdo do e-mail. O método build é onde você pode definir a estrutura do e-mail, o assunto e outras informações relevantes.

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class WelcomeEmail extends Mailable
{
use Queueable, SerializesModels;

public $user;

/**
* Create a new message instance.
*
* @param User $user
* @return void
*/
public function __construct($user)
{
$this->user = $user;
}

/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->view('emails.welcome')
->subject('Bem-vindo ao sistema')
->with([
'userName' => $this->user->name,
]);
}
}

Agora, você precisa criar a view para o e-mail de boas-vindas. O Laravel segue uma convenção para a localização das views de e-mails. Crie um novo arquivo chamado welcome.blade.php no diretório resources/views/emails. A estrutura da view pode ser semelhante a esta:

<!DOCTYPE html>
<html>
<head>
<title>Bem-vindo(a) ao Nosso Site</title>
</head>
<body>
<h2>Olá, {{ $userName }}!</h2>
<p>Bem-vindo(a) ao nosso site! Esperamos que você aproveite sua experiência conosco.</p>
</body>
</html>

Com a classe WelcomeEmail e a view criadas, você pode testar o envio do e-mail de boas-vindas em seu controlador de registro de usuários

use Illuminate\Support\Facades\Mail;
use App\Mail\WelcomeEmail;

// ...

public function register(Request $request)
{
// Lógica de registro do usuário...

// Enviar e-mail de boas-vindas
Mail::to($user->email)->send(new WelcomeEmail($user));
}

Agora no presente exemplo a cada novo usuário registrado, o e-mail de boas-vindas será encaminhado ao endereço de e-mail do usuário, os e-mails estão sendo capturados pelo MailHog, você pode visualizá-los em um navegador. Abra seu navegador da web e acesse http://localhost:8025. Você verá a interface do MailHog, onde poderá visualizar todos os e-mails encaminhados pela sua aplicação.

Lembre-se de que o MailHog é uma ferramenta de desenvolvimento, portanto, os e-mails capturados não serão enviados para os destinatários reais. Eles ficam disponíveis apenas para visualização na interface do MailHog.

Com isso, você configurou e utilizou o MailHog para capturar e visualizar e-mails enviados por sua aplicação Laravel durante o desenvolvimento. Isso pode ser especialmente útil para depuração e testes de envio de e-mails sem a necessidade de enviar mensagens reais para os destinatários durante a fase de desenvolvimento.

Feito!

terça-feira, 18 de julho de 2023

Conhecendo o gerador No-Code de CRUD

Refine é uma estrutura baseada em React que permite o desenvolvimento rápido de aplicativos da web. Ele elimina as tarefas repetitivas exigidas pelas operações CRUD e fornece soluções padrão do setor para partes críticas de um projeto, como autenticação, controle de acesso, roteamento, rede, gerenciamento de estado e i18n.

O Refine é headless por design, oferecendo opções ilimitadas de estilo e personalização. Fora isso você pode escolher o seu framework de Interface de usuário favorito para trabalhar em seus aplicativos, como Material UI, Ant Design, Chakra UI, Mantine e o padrão Headless.

Outra escolha que você pode fazer é a plataforma React que deseja trabalhar. Entre as disponíveis estão Vite, Remix e Next.js. Estas escolhes abrem um leque enorme para te ajudar a criar e desenvolver suas próprias aplicações CRUD de um jeito muito mais rápido e dinâmico.

O Refine é Open Source, de código aberto, e você pode criar o seu ambiente de desenvolvimento local em poucos passos. A documentação é muito completa e repleta de tutoriais para ajuda-lo.

Criando o CRUD com Refine

É possível utilizar a plataforma refine.new ou local no seu computador.

Com a plataforma refine.new as partes segue:

Parte 1: Seleciona entre Vie, Remix, Next.js

Parte 2: Seleciona UI Framework entre Material UI, Ant Design, Chakra UI, Mantine Headless

Parte 3: Seleciona o Backend entre REST API, Supabase, Strapi, NestJS, Appwrite, Airtable, Hasura

Parte 4: Seleciona o provedor de autenticação entre Google Auth, Keycloak, AuthO, Subabase, Appwrite, Strapi, Custom Auth, No Auth

Aparecerá um resumo das etapas que escolheu, confirme e irá redirecionar no projeto gerado com Refine.

No ambiente local no seu computador

Premissas: Ter o Node.js instalado

npm create refine-app@latest

npm run dev

No browser http://localhost:3000 você irá ver uma tabela com dados fictícios de posts de blog e categorias com paginação.

Mas o Refine não se limita apenas a isso, pode criar partes de componentes do formulário que for desenvolver.

Veja alguns exemplos de componentes que pode criar campos de formulário.

Custom Input

npm create refine-app@latest -- --example input-custom

useSelect

npm create refine-app@latest -- --example field-antd-use-select-basic

useSelect com lista infinita

npm create refine-app@latest -- --example field-antd-use-select-infinite

useAutocomplete

npm create refine-app@latest -- --example field-material-ui-use-autocomplete

useCheckboxGroup

npm create refine-app@latest -- --example field-antd-use-checkbox-group

useRadioGroup

npm create refine-app@latest -- --example field-antd-use-radio-group

Base64 Upload

npm create refine-app@latest -- --example upload-material-ui-base64

Multipart Upload

npm create refine-app@latest -- --example upload-antd-multipart

Date Picker

npm create refine-app@latest -- --example input-date-picker

Search

npm create refine-app@latest -- --example search

Google Auth

npm create refine-app@latest -- --example auth-google-login

Login

npm create refine-app@latest -- --example customization-login

Referências

https://refine.dev/docs/

Feito!

segunda-feira, 17 de julho de 2023

Conhecendo o Urban VPN

Navegação ilimitada e segura com a extensão grátis para Chrome, Edge e Firefox

A extensão Urban VPN para navegador lhe oferece uma ativação rápida com largura de banca ilimitada, permitindo transmitir e baixar conteúdo com facilidade e velocidade. Oculte seu IP e escolha a partir de um número crescente de locais internacionais ao redor do mundo.

Com a Urban VPN você pode navegar por sites restritos geograficamente com uma conexão criptografada e contornar firewalls com segurança, sem se preocupar com roubo de informações pessoais – e manter seu dispositivo seguro de malware quando usar conexões Wi-Fi públicas.

Quando você escolhe a Urban VPN, você escolhe qualidade, segurança e proteção!

Não é necessário fazer download de programas adicionais, basta clicar para fazer o download da extensão e você está pronto para navegar.

Extensões do Urban VPN para os navegadores: Chrome, Edge e Firefox

Urban VPN para Chrome

Urban VPN para Edge

Urban VPN para Firefox

Após instalar a extensão de algum dos links acima, conforme o navegador que você estiver utilizando entre Chrome, Edge ou Firefox, segue os screenshots ilustrativo.

Screenshots

Termo de aceite dos termos

Escolha uma lista de servidores disponíveis que deseja conectar na VPN

Feito!

sábado, 15 de julho de 2023

Conhecendo uma ferramenta alternativa ao Canva

Aktivisda é uma aplicação web para facilitar a criação visual através de vetores, é uma alternativa open source ao Canva atualmente.

Com o Aktivisda pode criar, editar posters, convites, miniaturas de vídeos e etc. Após de pronto, exportar para PNG, JPG ou PDF.

Instalando e Configurando o Aktivisda

Requisitos:

Node.js

NPM < 16

Utilize o NVM (gerenciador de versões do Node.js / NPM)

Instalação do NVM (Gerenciador de versão do Node.js)

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.39.3/install.sh | bash

source ~./bashrc

Lista as versões

nvm ls-remote

nvm install v16.18.0

nvm use v16.18.0

git clone git@framagit.org:aktivisda/extinction-rebellion.git

cd extinction-rebellion

git clone git@framagit.org:aktivisda/aktivisda.git aktivisda-core

No diretório extinction-rebellion, execute:

npm install

No diretório aktivisda-core, execute:

npm run serve

No browser acesse http://IPSERVIDOR:8080

Feito!

segunda-feira, 3 de julho de 2023

Descobrindo a velocidade de sua placa de rede via CLI

A ferramenta ethtool é uma poderosa e amplamente utilizada ferramenta de linha de comando em sistemas Linux para configuração e diagnóstico de placas de rede Ethernet. Ela fornece uma maneira simples e eficiente de verificar a velocidade da placa de rede, entre outras informações relacionadas à interface de rede.

No GNU/Linux Debian e derivados, segue:

$ sudo apt install ethtool

$ sudo ethtool <interface> | grep Speed

Substitua <interface> pelo nome da sua interface de rede. Por exemplo, "eth0" ou "enp0s3" são nomes comuns para interfaces Ethernet.

Após executar o comando acima com filtro Speed, exibirá a informação da velocidade da interface de rede. Por exemplo, se a velocidade for exibida como "100Mb/s", significa que a placa de rede está operando a 100 Megabit por segundo.

Se a velocidade for exibida como "1000Mb/s", significa que a placa de rede está operando a 1 Gigabit por segundo.

Feito!