Uma aplicação full-stack que permite construir consultas SQL SELECT visualmente, sem escrever código. Selecione tabelas, adicione filtros com operadores sensíveis ao tipo da coluna e veja a query gerada em tempo real.
- Seleção de tabelas — navegue entre tabelas do esquema e visualize colunas, tipos e chaves estrangeiras
- Filtros dinâmicos — adicione quantos filtros quiser, cada um com operadores e inputs apropriados ao tipo da coluna:
VARCHAR/TEXT:=,LIKE,ILIKEINTEGER/NUMERIC:=,>,<,>=,<=,BETWEENBOOLEAN: toggle liga/desligaTIMESTAMP:=,>,<,BETWEENcom seletor de data
- SQL em tempo real — a query é gerada e exibida instantaneamente a cada alteração
- Copiar query — botão "Copiar" que salva a SQL gerada na área de transferência
- Relações entre tabelas — exibição de chaves estrangeiras que conectam as tabelas
| Camada | Tecnologia |
|---|---|
| Frontend | React 19 + TypeScript 6 + Vite 8 + Tailwind CSS 4 |
| Backend | Spring Boot 3.2 + Java 21 + Maven |
| Database | PostgreSQL 14+ (esquema mockado — não necessário para execução) |
# Terminal 1 — Backend
cd backend && mvn spring-boot:run # http://localhost:8080
# Terminal 2 — Frontend
cd frontend && npm run dev # http://localhost:5173cd frontend && npx tsc --noEmit # typecheck
cd frontend && npx vite build # build de produção
cd backend && mvn compile # compilação Javavisual-query-builder/
├── backend/
│ └── src/main/java/com/querybuilder/
│ ├── controller/QueryController.java # REST API (/api/tables)
│ ├── model/ # TableInfo, ColumnInfo, ForeignKeyInfo
│ └── service/SchemaService.java # Dados mockados do esquema
├── frontend/
│ └── src/
│ ├── App.tsx # Componente principal
│ ├── types.ts # Tipos TypeScript
│ ├── data/schema.ts # Esquema mockado (frontend)
│ └── components/
│ ├── TableSelector.tsx # Dropdown de tabelas + FKs
│ ├── FilterBuilder.tsx # Construção dinâmica de filtros
│ └── QueryPreview.tsx # Geração e exibição da SQL
└── AGENTS.md # Instruções para agentes de IA
- Abra
http://localhost:5173 - Selecione uma tabela no dropdown (usuarios, pedidos ou comentarios)
- Clique em "Adicionar filtro" para criar condições WHERE
- Escolha a coluna, o operador e o valor — o input se adapta ao tipo
- A query SQL é gerada automaticamente no painel escuro
- Clique em "Copiar" para levar a SQL para a área de transferência
- O backend usa dados mockados — não é necessário ter PostgreSQL rodando
- Tailwind CSS v4 é configurado via plugin
@tailwindcss/vite(semtailwind.config.js) - O frontend atualmente consome os dados mockados localmente, sem chamar a API REST
- TypeScript com
verbatimModuleSyntaxativado — useimport typepara importações de tipo - CORS configurado apenas para
http://localhost:5173
MIT