Bops
AI 봇 팀이 업무 운영을 담당, 메일·파이프라인·청구·보고서 관리, 각각 컴퓨터·이메일·전화번호 보유, 모든 정보를 기억
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Conectando a indústria ao fornecedor certo. Marketplace industrial que liga indústrias que precisam de serviços a prestadores especializados. Região inicial: Sorocaba e interior de São Paulo. Next.js 15 (App Router) · TypeScript · Tailwind CSS 4 · shadcn/ui · Supabase (Postgres, Auth, Storage, RLS) · Zod · Vercel. Requisitos: Node 20+ e Docker (para o Supabase local). O build gera a home estaticamente, então precisa do banco acessível.README 전문 보기 ↗
Conectando a indústria ao fornecedor certo.
Marketplace industrial que liga indústrias que precisam de serviços a prestadores especializados. Região inicial: Sorocaba e interior de São Paulo.
Next.js 15 (App Router) · TypeScript · Tailwind CSS 4 · shadcn/ui · Supabase (Postgres, Auth, Storage, RLS) · Zod · Vercel.
Requisitos: Node 20+ e Docker (para o Supabase local).
npm install
npx supabase start # sobe Postgres, Auth, Storage e API locais
npm run db:reset # aplica migrations e seed
cp .env.example .env.local # preencha com a saída de `npx supabase status`
npm run dev # http://localhost:3000
| Variável | Onde encontrar |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | API URL em npx supabase status, ou Project Settings > API |
NEXT_PUBLIC_SUPABASE_ANON_KEY | anon key (ou publishable key) na mesma saída |
NEXT_PUBLIC_SITE_URL | URL pública do site. Local: http://localhost:3000 |
O build gera a home estaticamente, então precisa do banco acessível.
| Script | O que faz |
|---|---|
npm run dev | Servidor de desenvolvimento |
npm run build | Build de produção |
npm run lint / npm run typecheck | ESLint e TypeScript |
npm run db:reset | Recria o banco local com migrations e seed |
npm run db:test | Testes pgTAP de RLS e regras de negócio |
npm run db:types | Regenera src/types/database.ts a partir do banco local |
npm run test:e2e | Fluxo completo no navegador (Playwright). Precisa do banco local com seed e de npm run build |
npx supabase link e npx supabase db push.https://<seu-dominio>/**.| Rota | Estado |
|---|---|
/ | Home com busca, categorias e destaques |
/buscar | Resultados com filtros, ordenação e paginação |
/prestador/[slug] | Perfil público completo |
/login, /login/recuperar, /login/nova-senha | Entrar e recuperar senha |
/cadastro | Escolha entre contratar ou oferecer serviços |
/cadastro/empresa, /cadastro/prestador | Cadastro em etapas com barra de progresso e rascunho salvo |
/painel | Métricas de 30 dias, gráfico, checklist do perfil, pedidos recentes |
/painel/perfil | Dados, área de atuação, logo e fotos, equipamentos, certificações, clientes |
/painel/orcamentos | Pedidos recebidos pelo prestador (novos, respondidos) |
/orcamentos | Pedidos do solicitante |
/orcamentos/novo | Novo pedido com anexos e prévia de quantos fornecedores recebem |
/orcamentos/[id] | Solicitante compara propostas, escolhe e avalia. Prestador responde |
src/
app/ rotas (Server Components por padrão)
components/ui/ componentes base (padrão shadcn)
components/layout/ header, footer, container
features/<domínio>/ queries, schemas e componentes por domínio
lib/ env, cliente Supabase, validação (CNPJ, telefone), formatação
types/database.ts tipos gerados do banco
supabase/ migrations, seed e testes
docs/adr/ decisões de arquitetura
Regra de camadas: componentes não acessam o banco. Páginas chamam features/*/queries.ts, que devolvem tipos de domínio.
Studio local: http://127.0.0.1:54323
Todo usuário do seed usa o e-mail <slug>@induxhub.test e a senha induxhub123.
| Perfil | |
|---|---|
| Prestador premium | [email protected] |
| Prestador sem avaliações | [email protected] |
| Contratante com pedidos | [email protected] |
company_members) edita só o próprio perfil. premium não é editável pelo cliente.create_quote_request, reply_to_quote, close_quote).set_company_buyer (único jeito de mudar tipo).track_event(), agregadas por dia.search_companies(query, cidade, categoria, ordenação, limite, offset). Premium sempre primeiro.Fotos do seed apontam para /seed/fotos/*.svg (placeholders em public/). Caminhos sem / inicial ficam no bucket company-media.