Portfólio desenvolvido com React + Vite, utilizando Bootstrap 5 para layout responsivo e integração com n8n para automação de envio de mensagens do formulário de contato.
O projeto apresenta informações profissionais, projetos e um formulário de contato funcional que envia dados para um webhook do n8n, responsável por persistir os dados em uma planilha do Google Sheets.
- React 19
- Vite
- TypeScript
- Bootstrap 5
- n8n (Webhook Automation)
- Google Sheets API
src
├── components
│ ├── Hero
│ ├── About
│ ├── Projects
│ └── Contact
│
├── styles
│
├── App.tsx
└── main.tsx
Hero
Apresentação inicial do portfólio.
About
Seção com informações profissionais e habilidades.
Projects
Apresentação de projetos desenvolvidos.
Contact
Formulário de contato integrado com automação via webhook.
O formulário envia dados para um webhook do n8n, que processa e salva os dados.
- Nome
- Telefone
- Mensagem
Fluxo configurado no n8n:
Frontend (React)
│
▼
Webhook (POST)
│
▼
Format Data
│
▼
Google Sheets (Append Row)
│
▼
Response → Frontend
Recebe a requisição POST enviada pelo formulário.
Endpoint:
/webhook/portfolio-contact
Normaliza os dados recebidos e adiciona timestamp.
Campos formatados:
name
email
phone
message
created_at
Insere uma nova linha na planilha Google Sheets.
Planilha utilizada:
Contatos - Portfólio
Campos persistidos:
| name | email | phone | message | created_at |
Retorna uma resposta JSON para o frontend.
{
"status": "success",
"message": "Contato recebido"
}Após o envio do formulário:
- Em caso de sucesso → SweetAlert2 exibe confirmação
- Em caso de erro → alerta de falha no envio
npm run devHenrique Ribeiro
Desenvolvedor focado em soluções web, automação e construção de produtos digitais.