Idiomas / Languages / Idiomas: 🇧🇷 Português | 🇺🇸 English | 🇪🇸 Español
Não sabe como puxar papo? Eu te ajudo!
Uma aplicação web inteligente que gera mensagens personalizadas para iniciar conversas com base em interesses, horários e tom de comunicação.
- Sobre o Projeto
- Funcionalidades
- Tecnologias
- Começando
- Estrutura do Projeto
- Scripts Disponíveis
- Internacionalização
- API
- Contribuindo
- Licença
- Contato
PuxaPapo Web é uma aplicação moderna e intuitiva que ajuda usuários a gerar mensagens personalizadas para iniciar conversas. Seja para convidar amigos para um churrasco, marcar um happy hour ou simplesmente quebrar o gelo, a aplicação utiliza inteligência artificial para criar mensagens adequadas ao contexto.
- 🎨 Personalização Total: Escolha interesses, horários e o tom da mensagem
- 🌍 Multilíngue: Suporte para Português, Inglês e Espanhol
- 🚀 Interface Moderna: Design responsivo e intuitivo com Material-UI e Tailwind
- ⚡ Rápido e Eficiente: Geração instantânea de mensagens via API
- 📱 Responsivo: Funciona perfeitamente em desktop, tablet e mobile
Escolha múltiplos interesses para personalizar sua mensagem:
- ⚽ Futebol
- 🍖 Churrasco
- 🍺 Cerveja
- 🏖️ Praia
- 🎬 Cinema
- 🎵 Música
- 🎮 Jogos
- ☕ Café
Defina quando você quer se encontrar:
- 📅 Qualquer dia da semana
- 💼 Segunda a Sexta
- 🎉 Fim de Semana
- 🌙 À Noite
- 🏖️ Na Folga
Escolha o estilo da sua mensagem:
- 😄 Engraçado e Descontraído
- 🤣 Engraçado
- 👔 Formal
- 📻 Anúncio de Rádio
- 🇧🇷 Português (Brasil)
- 🇺🇸 Inglês (EUA)
- 🇪🇸 Espanhol (Espanha)
- ✅ Monitoramento de status da API em tempo real
- 📝 Preview da mensagem gerada em Markdown
- 🎨 Tema claro otimizado para leitura
⚠️ Validações e feedbacks visuais- 🔄 Atualização automática do status da API
Este projeto foi construído com as seguintes tecnologias:
- React 19.1.1 - Biblioteca JavaScript para interfaces
- TypeScript 5.9.3 - Superset tipado do JavaScript
- Vite 7.1.14 - Build tool ultrarrápido
- Material-UI 7.3.4 - Componentes React com Material Design
- TailwindCSS 3.4.18 - Framework CSS utility-first
- React Icons 5.5.0 - Biblioteca de ícones
- i18next 25.6.2 - Framework de internacionalização
- react-i18next 16.3.3 - Integração do i18next com React
- flag-icons 7.5.0 - Ícones de bandeiras SVG
- @uiw/react-markdown-preview 5.1.5 - Preview de Markdown com tema
- React Router DOM 7.9.5 - Roteamento para React
- ESLint 9.36.0 - Linter para JavaScript/TypeScript
- Prettier 3.6.2 - Formatador de código
- PostCSS 8.5.6 - Ferramenta para transformar CSS
- Autoprefixer 10.4.21 - Plugin PostCSS para adicionar prefixos vendor
Antes de começar, você precisará ter instalado em sua máquina:
- Node.js (versão 18.x ou superior)
- npm ou yarn
- Git
# Verifique as versões instaladas
node --version
npm --version
git --version- Clone o repositório
git clone https://github.com/BrunoRafaSilva/PuxaPapoWeb.git- Acesse a pasta do projeto
cd PuxaPapoWeb- Instale as dependências
npm installnpm run devA aplicação estará disponível em http://localhost:5173
npm run buildOs arquivos otimizados serão gerados na pasta dist/
npm run previewVisualize a build de produção localmente
PuxaPapoWeb/
├── public/
│ └── robots.txt # Configuração para crawlers
├── src/
│ ├── assets/ # Imagens e recursos estáticos
│ ├── Components/ # Componentes reutilizáveis
│ │ ├── ApiStatus.tsx # Indicador de status da API
│ │ ├── ChipSelect.tsx # Seletor de chips customizado
│ │ ├── Header.tsx # Cabeçalho da aplicação
│ │ ├── LabelOption.tsx # Label para opções
│ │ ├── ResultModal.tsx # Modal de resultado
│ │ └── Footer.tsx # Rodapé com links sociais
│ ├── Constants/ # Constantes e configurações
│ │ ├── ConstantLabelsOptions.tsx
│ │ ├── ConstantLanguageOptions.tsx
│ │ └── ConstantValidationErrors.tsx
│ ├── i18n/ # Internacionalização
│ │ ├── config.ts # Configuração do i18next
│ │ └── locales/ # Arquivos de tradução
│ │ ├── en-US.json
│ │ ├── es-ES.json
│ │ └── pt-BR.json
│ ├── pages/ # Páginas da aplicação
│ │ ├── Index.tsx # Página principal
│ │ └── NotFound.tsx # Página 404
│ ├── Services/ # Serviços e integrações
│ │ └── ApiConnectionService.tsx
│ ├── App.tsx # Componente raiz
│ ├── App.css # Estilos globais do app
│ ├── index.css # Estilos globais base
│ └── main.tsx # Ponto de entrada
├── eslint.config.js # Configuração do ESLint
├── index.html # Template HTML
├── package.json # Dependências e scripts
├── postcss.config.js # Configuração PostCSS
├── tailwind.config.js # Configuração Tailwind
├── tsconfig.json # Configuração TypeScript
├── tsconfig.app.json # Config TypeScript (app)
├── tsconfig.node.json # Config TypeScript (node)
└── vite.config.ts # Configuração Vite
| Script | Descrição |
|---|---|
npm run dev |
Inicia o servidor de desenvolvimento |
npm run build |
Gera build de produção otimizado |
npm run preview |
Preview da build de produção |
npm run lint |
Executa o linter no código |
A aplicação suporta três idiomas:
{
"header": {
"title": "PuxaPapo",
"subtitle1": "Não sabe como puxar papo? Eu te ajudo!",
"subtitle2": "Só preencher os campos abaixo!"
},
"form": {
"interests": { ... },
"period": { ... },
"tone": { ... }
},
"modal": {
"title": "Mensagem Gerada",
"closeButton": "Fechar"
}
}- Crie um novo arquivo JSON em
src/i18n/locales/ - Adicione o idioma em
src/i18n/config.ts - Adicione a bandeira em
src/Constants/ConstantLanguageOptions.tsx
A aplicação se conecta a uma API para gerar as mensagens. O serviço está implementado em src/Services/ApiConnectionService.tsx.
GET / health;
Response: {
status: "online" | "offline";
}POST /generate
Body: {
interest: string[],
period: string,
tone: string,
language: string
}
Response: string (Markdown)Edite o arquivo src/Services/ApiConnectionService.tsx:
const API_BASE_URL = "https://sua-api.com";Contribuições são sempre bem-vindas! Se você quer contribuir com o projeto:
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
- Use TypeScript para type safety
- Siga os padrões do ESLint configurados
- Documente componentes complexos
- Escreva mensagens de commit descritivas
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Bruno Silva
- 💼 LinkedIn: brunorlsilva
- 🐙 GitHub: BrunoRafaSilva
Feito com ❤️ por Bruno Silva

