Plataforma em produção: gragro.com.br
GR.Agro é uma plataforma híbrida (web, mobile web, mobile e desktop) voltado a agrônomos para o gerenciamento completo de clientes, talhões, safras e safrinhas, incluindo caderno de campo, registro fotográfico e compartilhamento de documentos. Atuei de forma independente no desenvolvimento Fullstack, sendo responsável por toda a arquitetura e implementação, do frontend ao backend.
- Resumo de todas tecnologias utilizadas
- Stack e Arquitetura do Backend
- ⚡ PHP com Laravel (Octane + Swoole)
- 📬 Filas (Queues) e Jobs com Redis
- 🧠 Query Caching e Data Caching
- ⏰ Agendamentos Automatizados (Schedules)
- 🗄️ Banco de Dados MySQL
- 🔐 Autenticação com Laravel Passport (JWT)
- 🧩 Middlewares Personalizados
- 🤖 Integração com Python (Automação com IA)
- 🚀 Destaques Adicionais
- Stack e Arquitetura do Frontend
- Stack e Estratégia de Testes
- Autor - Gercil Junio
- PHP e Laravel persistido com Octane e Swoole
- Banco de dados principal com MySQL, além Query Caching, Data Caching e Queues (Filas) com Redis
- Armazenamento de arquivos e envio de e-mails transacionais via AWS S3 e AWS SES
- Gerenciamento de variáveis de ambiente e segredos com AWS SSM Parameter Store
- Schedules gerenciados com Redis e Crontab (Linux)
- Integração com inteligência artificial (IA), extração (web scraping) e análise de dados, além de microsserviços de apoio desenvolvidos em Python
- Provisionamento e gerenciamento de servidores com Laravel Forge
- Ambientes dev, staging e production com pipelines GitHub Actions e deploy automatizado via Laravel Forge com zero-downtime
- Monitoramento com Sentry
- CDN, WAF, Tunnels (ambiente de desenvolvimento) e Load Balancer com Cloudflare
- Testes manuais e automatizados da API com Postman e Pest - CI com Github Actions
- VPS principal e VPS de banco de dados hospedadas na Hetzner Cloud, configuradas em rede interna
- Frontend único em Vue.js, Nuxt.js e Vuetify, compilado para web e mobile com Capacitor.js, garantindo experiência consistente e responsiva em todas as plataformas
- Rate Limiting com Middlewars e Redis, Autenticação JWT Passwordless
- Bloqueio de crawlers e bots em 3 camadas: Cloudflare (1ª camada), NGINX (2ª camada, no servidor) e Middlewares (3ª camada, no backend)
O backend do GR.Agro foi desenvolvido inteiramente com Laravel (PHP), priorizando alta performance, escalabilidade e integração entre serviços. A seguir, estão as principais tecnologias e decisões arquiteturais adotadas no projeto.
A API é executada com Laravel Octane, utilizando Swoole como motor de execução.
O Swoole é uma extensão de alta performance para PHP baseada em corrotinas e I/O assíncrono, que mantém a aplicação carregada em memória entre as requisições.
Isso reduz drasticamente o tempo de resposta e o consumo de recursos, além de permitir execução simultânea de tarefas e conexões persistentes com o banco de dados.
O resultado é uma API extremamente rápida, com desempenho comparável a soluções em Node.js ou Go.
O sistema utiliza Redis como driver de filas para o processamento assíncrono de tarefas, como:
- Envio de e-mails
- Processamento de cadastros
- Integração e sincronização entre serviços externos
Essa abordagem evita sobrecarga nas requisições principais, garantindo uma API mais leve e ágil, mesmo durante picos de uso.
O Redis também é utilizado para armazenar consultas e dados em cache. O cache reduz o número de acessos ao banco de dados e melhora o tempo de resposta em endpoints muito acessados. Essa prática é essencial em projetos de API, pois melhora a escalabilidade, diminui o uso de recursos e mantém a experiência do usuário mais fluida.
O backend conta com rotinas agendadas automaticamente, responsáveis por:
- Buscar e processar dados externos
- Executar análises e relatórios
- Sincronizar informações entre sistemas
Esses agendamentos são configurados no Laravel Scheduler, com execução automatizada via cron, garantindo processos contínuos e autônomos.
O banco de dados principal é o MySQL, com:
- Validações internas (chaves, integridade e relacionamentos)
- Validações externas (regras de negócio implementadas em Laravel)
- Uso do Eloquent ORM, que proporciona uma camada de acesso a dados expressiva e organizada
Essa estrutura garante consistência, segurança e manutenção simplificada do sistema.
A autenticação é feita com Laravel Passport no modelo Passwordless (Sem Senha), utilizando Personal Tokens (JWT). Essa implementação garante autenticação segura, com controle de permissões e possibilidade de comunicação entre serviços.
O projeto inclui diversos middlewares personalizados, responsáveis por:
- Autenticação e autorização de usuários
- Monitoramento e bloqueio de crawlers
- Controle de Rate Limit para limitar requisições abusivas
- Registro e análise de métricas de uso da API
Esses middlewares asseguram segurança, estabilidade e observabilidade em todo o ecossistema da aplicação.
O projeto possui um módulo em Python responsável por integrações com ChatGPT (OpenAI API) e Azure AI Speech.
Esse módulo atua de forma autônoma realizandoem quatro etapas:
- Coleta de notícias do setor agro em múltiplas fontes
- Geração de resumos automáticos via ChatGPT
- Conversão de texto em áudio com o Azure AI Speech
- Distribuição automática de boletins diários em formato de áudio para os assinantes
Ao final, ele também gera vídeos no formato de story para o Instagram, utilizando a biblioteca MoviePy junto com o áudio gerado na etapa 3 e o título da notícia gerado na etapa 2, deixando-os prontos para postagem. A última etapa ainda não foi concluída, mas será desenvolvida posteriormente, permitindo que cada story seja postado automaticamente no Instagram, sem intervenção humana.
O resultado é um robô inteligente que garante informações rápidas, automatizadas e acessíveis. Todo o processo é executado duas vezes ao dia, utilizando agendamentos simples por meio do crontab.
Somente para referência e conhecimento.
.
├── config
│ ├── database.py
│ ├── dates.py
│ ├── neural.py
│ └── storage.py
├── constants.py
├── controller
│ ├── audio.py
│ └── story.py
├── daily.py
├── requirements.txt
├── robot.py
├── sync.sh
└── utils
├── helpers.py
└── replaces.py
- Validação de Requisições: uso de Form Requests e regras personalizadas de validação
- Ambientes Isolados: configuração por ambiente (.env) com separação entre dev, staging e production
Eerros centralizados com logs contextuais via Sentry
Infraestrutura com atualizações contínuas e zero-downtime utilizando o serviço de gerenciamento e provisionamento Laravel Forge e Github Actions
Painel de gerenciamento completo de todos os processos, com relatórios, monitoramentos e ações para casos críticos.
Deploy com zero-downtime completo do frontend.
O frontend do GR.Agro foi desenvolvido com foco em performance, escalabilidade e experiência do usuário, utilizando um ecossistema moderno baseado em Vue.js e tecnologias complementares que permitem uma aplicação única funcionar tanto na web quanto no mobile.
O núcleo do frontend foi construído com Vue.js, sua arquitetura baseada em componentes facilitou o reuso de elementos em diferentes módulos da aplicação, garantindo padronização visual e consistência de comportamento.
Para a camada visual, foi utilizado o Vuetify, um framework de componentes, ele oferece uma experiência de interface moderna, responsiva e intuitiva, permitindo o desenvolvimento rápido de telas sem comprometer a qualidade estética e a usabilidade.
O uso do Vuetify também garantiu acessibilidade nativa e responsividade total para diferentes dispositivos.
O projeto adota Nuxt.js para Server-Side Rendering (SSR) e Static Site Generation (SSG), melhorando o desempenho inicial da aplicação.
O Capacitor.js foi utilizado para empacotar a aplicação web e convertê-la em aplicativo mobile híbrido, disponível para Android e iOS. Essa abordagem permitiu unificar o código-fonte, reduzindo custos e tempo de manutenção, além de garantir funcionalidades nativas, como notificações push e acesso a recursos do dispositivo.
O GR.Agro foi desenvolvido com foco em qualidade, estabilidade e previsibilidade, adotando uma stack de testes moderna e prática, que garante o bom funcionamento da API e das integrações externas.
O Postman foi utilizado para testes manuais e validação de endpoints REST durante o desenvolvimento e integração entre serviços.
Os testes automatizados foram implementados com o Pest, framework moderno de testes para PHP, totalmente integrado ao Laravel.
Em breve criarei repositórios públicos com exemplos de testes utilizando a API real em produção.
Utilizado para testes automatizados de interface.
Em breve serão criados repositórios públicos com exemplos de testes utilizando a API real do projeto em produção, desenvolvidos tanto com Playwright quanto com Cypress. O objetivo é demonstrar as habilidades técnicas do desenvolvedor em ambas as tecnologias.














