An open API service indexing awesome lists of open source software.

https://github.com/mathrb22/let-me-ask-web

Frontend React + TypeScript para sistema inteligente de Q&A com respostas automáticas por IA, transcrição de áudio em tempo real e busca semântica para automação de transmissões ao vivo.
https://github.com/mathrb22/let-me-ask-web

ai audio-processing audio-transcription frontend gemini-api let-me-ask nlw nlw-agents qa-system react-query reactjs rocketseat rocketseat-nlw semantic-search semantic-vector-evaluation shadcn-ui tailwindcss typescript vite webapp

Last synced: 3 months ago
JSON representation

Frontend React + TypeScript para sistema inteligente de Q&A com respostas automáticas por IA, transcrição de áudio em tempo real e busca semântica para automação de transmissões ao vivo.

Awesome Lists containing this project

README

          

Let me ask - Logo







Made by mathrb22


GitHub Last Commit


GitHub Issues


Pull Requests Welcome


GitHub License

[**Sobre**](#-sobre)   **|**  
[**Objetivo**](#-objetivo)   **|**  
[**Tecnologias e ferramentas**](#-tecnologias-e-ferramentas)   **|**  
[**Features**](#-features)   **|**  
[**Instalação e execução**](#-instalação-e-execução)   **|**  
[**Integração com o Backend**](#-integração-com-o-backend)   **|**  
[**Como contribuir**](#-como-contribuir)   **|**  
[**Licença**](#-licença)

## 📃 Sobre

Let me ask - Home

Este repositório contém o código-fonte do **frontend** do projeto **Let me ask**, desenvolvido durante a **NLW Agents (Next Level Week)** da [**Rocketseat**](https://github.com/Rocketseat).

Este projeto integra a **API do Google Gemini**, **busca semântica** e **processamento de dados vetoriais** para fornecer respostas automáticas às perguntas dos participantes durante transmissões ao vivo. O sistema funciona da seguinte forma: com base na transcrição em tempo real da apresentação, a IA processa e armazena vetores semânticos dos assuntos abordados. Quando um usuário faz uma pergunta na sala, o sistema utiliza busca semântica para verificar se essa questão já foi respondida pelo apresentador na transcrição e, caso positivo, fornece automaticamente a resposta contextualizada.

Let me ask - Room page

## 🎯 Objetivo

O objetivo principal do **Let me ask** é de criar uma solução inteligente para transmissões ao vivo, onde perguntas dos participantes serão respondidas automaticamente através de inteligência artificial. O sistema utiliza:

- **Transcrição em tempo real** de transmissões ao vivo
- **Processamento de dados vetoriais** para armazenar contexto semântico
- **Busca semântica** para identificar se perguntas já foram respondidas

A aplicação foi desenvolvida com o intuito de aprimorar os conhecimentos em React, Vite, TypeScript, Tailwind CSS, React Query e React Router, além de integrar tecnologias modernas de IA e processamento de linguagem natural.

## 🚀 Tecnologias e ferramentas




React




Vite




TypeScript




Tailwind CSS




React Query




React Router




Lucide React




shadcn/ui




React
Vite
TypeScript
Tailwind CSS
React Query
React Router
Lucide React
shadcn/ui

## ✨ Features

https://github.com/user-attachments/assets/ae41d2c9-62df-4606-875d-d86f6366ce3b

### 🏠 **Sistema de Salas**

✅ **Criação e listagem de salas:** interface para criação, navegação e listagem de salas disponíveis via API.

### ❓ **Sistema de Perguntas**

✅ **Formulário intuitivo:** interface para envio de perguntas com validação avançada e contador de caracteres.

✅ **Perguntas e respostas:** exibição organizada de perguntas com respostas geradas por IA em tempo real.

✅ **Feedback visual:** indicadores de status durante a geração de respostas pela IA.

### 🎙️ **Gravação de Áudio Inteligente**

✅ **Modal de gravação:** interface simplificada em modal para gravação de áudio, substituindo a página dedicada.

✅ **Controles avançados:** botões para iniciar, pausar, retomar e finalizar gravação com feedback visual.

✅ **Gravação em segundo plano:** possibilidade de gravar áudio enquanto visualiza as perguntas e respostas.

✅ **Timer em tempo real:** cronômetro exibindo o tempo de gravação no formato _HH:MM:SS_.

✅ **Upload automático:** captura e upload de áudio em tempo real com divisão em chunks de 10 segundos.

Record audio

Recording audio

### 🤖 **Integração com IA**

✅ **Respostas automáticas:** respostas contextualmente relevantes via **Google Gemini API**.

✅ **Transcrição em tempo real:** processamento de áudio para texto via backend.

✅ **Processamento vetorial:** armazenamento de vetores semânticos _(embeddings)_ para busca eficiente.

✅ **Busca semântica:** identificação inteligente de respostas já fornecidas anteriormente.

### 🎨 **Interface e Experiência do Usuário**

A aplicação conta com uma **interface moderna e responsiva**, incluindo:

✅ **Design responsivo:** interface adaptável para diferentes tamanhos de tela.

✅ **Estados de carregamento:** exibição de skeleton loading durante o carregamento das salas para melhor experiência do usuário.

✅ **Estados vazios:** componentes de No-content quando não há salas ou perguntas cadastradas

✅ **Gravação de áudio simplificada** através de modal integrado à página da sala com exibição de tempo de gravação e botões de controle de pausa, retomada e finalização

✅ **Tema claro/escuro** com alternância suave e persistência de preferência

✅ **Navegação otimizada** com header fixo e botão de rolagem automática para o topo da página

### 📱 **Melhorias Mobile e Responsividade**

✅ **Diálogos adaptáveis:** modais que se transformam em _bottom sheets_ no mobile para melhor usabilidade

✅ **FABs (Floating Action Buttons):** botões flutuantes para ações principais no mobile (criação de salas e perguntas)

✅ **Barra de status de gravação:** indicador fixo no mobile mostrando status da gravação em tempo real

✅ **Busca de salas:** campo de pesquisa com _debounce_ para filtrar salas

https://github.com/user-attachments/assets/bf38a187-6d79-4e6b-9db1-75c598ddd57e

## 🔧 Instalação e execução

Para baixar o código-fonte do projeto em sua máquina, primeiramente terá que ter instalado o [**Git**](https://git-scm.com/).
Com o Git instalado, em seu terminal execute o seguinte comando:

```bash
git clone https://github.com/mathrb22/let-me-ask-web.git
```

Para instalar as dependências e executar o projeto terá que ter instalado em sua máquina o [**node.js**](https://nodejs.org/en/), que vem acompanhado do npm. Instale as dependências usando o comando abaixo:

```bash
npm install
```

Executar o projeto:

```bash
npm run dev
```

A aplicação estará disponível em http://localhost:5173. Você poderá acessá-la a partir do seu navegador.

## 🔗 Integração com o Backend

Esta aplicação frontend requer uma API backend para funcionar completamente. O servidor está configurado para rodar em `http://localhost:3333` e é **essencial** para o funcionamento das principais funcionalidades.

### 📦 Repositório do backend

O código-fonte do backend está disponível em um repositório separado:

🔗 **[Let me ask - Server (API)](https://github.com/mathrb22/let-me-ask-server)**

### ⚙️ Funcionalidades do backend

O backend é responsável por:

- 🏠 **Gerenciamento de salas**: criação, listagem e gerenciamento de salas de Q&A
- ❓ **Sistema de perguntas**: armazenamento e processamento de perguntas dos usuários
- 🎙️ **Processamento de áudio**: captura, processamento e transcrição de áudio em tempo real
- 🤖 **Integração com IA**: conexão com _Google Gemini API_ para geração de respostas
- 🔍 **Busca semântica**: algoritmo de busca vetorial para identificar contexto
- 📊 **Processamento vetorial**: geração e armazenamento de vetores semânticos _(embeddings)_

### 🚀 Como executar o backend

Para ter acesso completo às funcionalidades do sistema, é necessário configurar e executar o servidor backend.

📋 **Siga o guia completo de instalação e configuração:**

🔗 **[Instalação e execução da API](https://github.com/mathrb22/let-me-ask-server?tab=readme-ov-file#-instala%C3%A7%C3%A3o-e-execu%C3%A7%C3%A3o)**

## 💡 Como contribuir

- Faça um **_fork_** desse repositório;
- Crie um **branch** para a sua feature: `git checkout -b minha-feature`;
- Faça um **commit** com suas alterações: `git commit -m 'feat: Minha nova feature'`;
- Faça um **push** para o seu branch: `git push origin minha-feature`;
- Faça um **pull request** com sua feature;

Pull requests são sempre bem-vindos. Em caso de dúvidas ou sugestões, crie uma _**issue**_ ou entre em contato comigo.

## 📝 Licença


GitHub License

Esse projeto está sob a licença **MIT**. Veja o arquivo _**LICENSE**_ para mais detalhes.

---

Desenvolvido com 💚 por mathrb22



Gmail