Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Sistema interno da ASP (Advanced Services Provider / ASP Serviços Industriais) para gestão de inspeção robótica e execução de serviços em tanques e tubulações. Um Projeto (um pedido de compra) reúne várias Inspeções (tanques/ pontos), e cada inspeção percorre um fluxo de fases simétrico — Inspeção e Execução — com coleta de dados de campo, relatórios versionados, aprovação da gerência, agendamento com notificações e histórico auditável.
Stack: Next.js 14 (App Router · TypeScript · React 18) · Supabase (Postgres + Auth + Storage, com RLS) · Vercel · Resend (e-mail, opcional) · medidor de sedimento embutido (HTML/JS standalone).
Produção:
asp-plataform.vercel.app· Repo:github.com/douglaskengit-dev/ASP-PLATAFORM
Projetos & Inspeções
Fluxo de fases (por inspeção)
Avançar registra data de autenticação e autor. Aprovação (fases 5/9) avança; reprovação volta uma fase com a tag "Ajustar", exigindo motivo e preservando o histórico de versões.
Coleta — Medidor de Sedimento
postMessage com o app. Anexo de PDF também suportado. Outras
ferramentas (ultrassom, drone, MFL) marcadas como "em desenvolvimento".Relatórios
Agendamento
Dashboard
Clientes (reutiliza gp_orgaos) — cadastro/edição, busca e filtros, e
lixeira. Histórico — projetos em aberto. Arquivos — coletas e relatórios
agrupados por projeto/inspeção, com busca e filtros.
Notificações — sino no header com avisos persistidos (ex.: inspeção agendada) e as inspeções paradas numa fase sob responsabilidade do perfil do usuário.
Administração de usuários — criar usuários; Área/Acesso (Comercial, Operações, Gerência, Admin), Função (Coordenador, Engenheiro, Técnico), editar nome, redefinir senha e ativar/inativar.
Identidade visual — paleta ASP (azul #0f5cad / amarelo #e8c51f), fonte
Montserrat, badge + wordmark no header, mascote nos títulos.
| Área (perfil) | Atua nas fases | Observações |
|---|---|---|
| Comercial | 1, 2, 6 | abre projetos e agenda |
| Operações | 3, 4, 7, 8 | coleta e relatórios |
| Gerência | 5, 9 (+ todas) | aprova/reprova |
| Admin | tudo | + administração de usuários |
editor/visualizador) ainda são aceitos durante a migração.gp_projetos 1 projeto = 1 pedido de compra (cliente → gp_orgaos)
└── gp_inspecoes N por projeto; carregam as fases 2..10
├── gp_coletas medição (jsonb) + PDF do medidor
├── gp_relatorios inspeção/execução, versionados
├── gp_agendamentos data/hora, execução, equipe, checklist (jsonb)
└── gp_fase_historico auditoria de fases (ação, autor, data)
gp_notificacoes avisos in-app por usuário
gp_profiles perfil (área) + funcao
Soft-delete (excluido_em / excluido_por) em gp_projetos, gp_inspecoes e
gp_orgaos — a exclusão vira lixeira, recuperável por 30 dias, com
limpeza automática (preguiçosa) depois disso. Storage no bucket privado
gp-arquivos (coletas e relatórios).
O fluxo antigo (Processos/TR/Proposta/Ofício, tabelas
gp_processosetc.) permanece no repositório para reaproveitamento, mas fora da navegação.
Pré-requisitos: Node 18+, um projeto Supabase.
npm install
cp .env.example .env.local # preencha os valores
npm run dev # http://localhost:3000
Variáveis de ambiente (.env.local e Vercel):
| Variável | Uso |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | URL do projeto Supabase |
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY | chave publicável (client) |
SUPABASE_SECRET_KEY | chave secreta / service_role (só servidor) |
NEXT_PUBLIC_APP_URL | URL pública do app (links de e-mail) — opcional |
SMTP_HOST | servidor SMTP, ex.: smtp.gmail.com — definido, o e-mail sai por SMTP |
SMTP_PORT | 465 (TLS direto, padrão) ou 587 (STARTTLS) |
SMTP_USER | conta que envia, ex.: [email protected] |
SMTP_PASS | senha de app do Google (16 letras; espaços são ignorados) |
RESEND_API_KEY | envio pelo Resend (usado quando não há SMTP_HOST) |
EMAIL_PROVEDOR | smtp ou resend para forçar um provedor (opcional) |
EMAIL_REMETENTE | remetente, ex.: ASP <[email protected]> (opcional) |
EMAIL_RESPONDER_PARA | endereço de resposta (Reply-To) (opcional) |
Sem nenhum provedor configurado o e-mail é no-op (as notificações in-app seguem funcionando).
Migrations: aplique os arquivos de supabase/migrations/ no banco (SQL
Editor do Supabase ou supabase db push). Os relevantes ao fluxo ASP:
20260725120000_asp_novo_fluxo_v1.sql schema + RLS + perfis
20260727100000_asp_usuario_funcao.sql coluna funcao
20260728100000_asp_agendamento_notificacoes.sql hora + gp_notificacoes
20260729100000_asp_agendamento_data_execucao.sql data de execução
20260730100000_asp_projeto_soft_delete.sql lixeira de projeto
20260731100000_asp_soft_delete_inspecao_cliente.sql lixeira de inspeção/cliente
Envia convites, redefinição de senha e agendamentos (com o .ics) por uma
conta Gmail, sem precisar de domínio próprio:
SMTP_HOST=smtp.gmail.com
SMTP_PORT=465
SMTP_USER=<conta>@gmail.com
SMTP_PASS=<senha de app, 16 caracteres>
EMAIL_REMETENTE="ASP <[email protected]>"
EMAIL_RESPONDER_PARA=<opcional: endereço para respostas>
/api/diag (deve mostrar "provedor": "smtp",
SMTP_PASS_presente: true) e depois /api/[email protected] para
enviar um teste; o erro, se houver, vem em português.Observações:
EMAIL_REMETENTE
for outro, o sistema usa o SMTP_USER e mantém o nome (o /api/diag avisa).RESEND_API_KEY pode continuar definida: com SMTP_HOST o SMTP tem
precedência. EMAIL_PROVEDOR=resend volta para o Resend sem apagar nada.E-mail (Resend, alternativa): crie a conta, verifique um domínio em
Domains (registros SPF/DKIM) e defina RESEND_API_KEY/EMAIL_REMETENTE.
app/
page.tsx landing pública
login/ autenticação (Supabase)
dashboard/ KPIs, gráficos e calendário
projetos/ lista, detalhe, edição e lixeira
inspecoes/[id]/ fases, coleta, agendamento, relatórios, histórico
arquivos/ documentos por projeto/inspeção
orgaos/ clientes (cadastro, edição, lixeira)
admin/usuarios/ administração de usuários
api/ route handlers (projetos, inspecoes, coletas,
relatorios, agendamentos, notificacoes, usuarios…)
components/ BarraUsuario, Modal, TituloPagina, CalendarioAgenda,
NotificacoesBotao, FormularioOrgao, DashboardCharts…
lib/
asp/fases.ts modelo de fases e ações
asp/permissoes.ts regras de exclusão
supabase/ clients (browser, route, admin/server)
email.ts, ics.ts, email-templates.ts
public/ferramentas/ medidor de sedimento (HTML standalone)
supabase/migrations/ migrations SQL
npx tsc --noEmit (type-check) e, quando possível, npm run build
antes do push.SUPABASE_SECRET_KEY),
nunca no navegador.