Desenvolver uma extensão para Google Chrome capaz de gravar simultaneamente o áudio da aba ativa e o áudio do microfone do usuário.
📥 Ao finalizar a gravação, a extensão deverá gerar e baixar automaticamente o arquivo de áudio mesclado.
- 🔊 Capturar áudio da aba ativa.
- 🎙️ Capturar áudio do microfone.
- 🔗 Mesclar os dois fluxos de áudio.
- 💾 Realizar o download automático do arquivo final gravado (
.wavou.mp3).
- Tela de Login
- Campos: email + senha (funcionalidade mockada).
- Tela Principal
- ✅ Botão Iniciar Gravação.
- ⏹️ Botão Parar Gravação.
- 🔄 Status da gravação.
- ✅ JavaScript ou TypeScript (Diferencial: React + TypeScript).
- ✅ Uso das APIs nativas do Chrome.
- ✅ Processamento e mesclagem dos áudios usando
WebAudioAPIouAudioContext. - ✅ Download automático do áudio gerado.
- ✅ Interface limpa, responsiva e funcional.
- ✅ Compatível com Manifest V3.
chrome-extension/
├── manifest.json
├── public/
│ └── icons/
├── popup/ (React app)
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── App.tsx
│ │ ├── index.tsx
│ │ └── styles/
│ └── dist/ (build)
├── background/
│ ├── background.ts
├── scripts/
│ ├── recorder.ts
├── README.md
- ✅ React + TypeScript no popup.
- ✅ Organização modular de componentes.
- ✅ Build otimizado com Vite, CRA ou Next.js (modo export).
- ✅ Layout com TailwindCSS, Shadcn/UI, ou ChakraUI.
- ✅ Controle de estados com Zustand, Redux ou Context API.
1. Abrir popup da extensão
⬇️
2. Tela de Login (simulada, sem autenticação real)
⬇️
3. Tela principal com botão de Gravar/Parar
⬇️
4. Ao iniciar: Captura simultânea de áudio da aba + microfone
⬇️
5. Ao parar: Mescla dos dois áudios
⬇️
6. Geração do arquivo de áudio (.wav ou .mp3)
⬇️
7. Download automático no navegador
- ✅ Código-fonte.
- ✅ README com:
- Instruções de build (
yarn buildounpm run build). - Como carregar a extensão no Chrome (
chrome://extensions→ Load unpacked).
- Instruções de build (
- ✅ Print ou GIF de demonstração (opcional, valorizado).
| Critério | Peso |
|---|---|
| Funcionalidade completa | ⭐⭐⭐⭐ |
| Uso correto das APIs | ⭐⭐⭐⭐ |
| Código organizado | ⭐⭐⭐ |
| Uso de React + TS | ⭐⭐⭐⭐ (Diferencial) |
| UX/UI popup | ⭐⭐ |
| Tratamento de erros | ⭐⭐ |
| Documentação | ⭐⭐⭐ |
- 🚫 Não é permitido usar bibliotecas prontas para gravação de abas (como extensions externas ou APIs pagas).
- ✅ A mesclagem dos dois fluxos de áudio (aba + microfone) deve ser feita manualmente usando as APIs do browser.
- ✔️ O áudio final deve ser entregue em formato
.wavou.mp3via download automático.