Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
Translation pending
Sistema MES que controla, registra e rastreia as operações do chão de fábrica
Translation pending
AI summary · revised during review
BusinessTypeScript · PLpgSQLGitHub @RwTech-AutomacaoOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Sistema web modular de Shop Floor / MES para a indústria de manufatura eletrônica Enterplak. Digitaliza e centraliza processos antes feitos em planilhas Excel, Google Forms, Google Apps Script e Looker Studio. Em uso em produção, multi-setor, com arquitetura preparada para crescer. Produção: https://shopfloor.enterplak.com.br (AWS).Read the full README ↗
Sistema web modular de Shop Floor / MES para a indústria de manufatura eletrônica Enterplak. Digitaliza e centraliza processos antes feitos em planilhas Excel, Google Forms, Google Apps Script e Looker Studio. Em uso em produção, multi-setor, com arquitetura preparada para crescer.
Produção: https://shopfloor.enterplak.com.br (AWS).
lucide-react, toasts sonner, temas next-themes@xyflow/react) — canvas do Fluxo de Processosxlsx) — importação de planilhas no clientegoogleapis, @aws-sdk/client-s3) — fotos (configurável via FOTOS_STORAGE; produção usa Drive)qrcode — QR Code da folha da caixa · jose — token do SSO do Portal RwTechtools/repinmetro-conector/): Node.js + pg (node-postgres) + fetch nativoMonólito modular por feature. O domínio é TypeScript puro (sem dependência de Supabase/Next), o que o torna testável e portável.
src/
app/ # rotas Next (App Router) — entrega
modules/<feature>/
domain/ # regras de negócio (TS puro, testado)
application/ # casos de uso / Server Actions finas
infra/ # repositórios (Supabase)
shared/ # design system, clients Supabase, utilidades
supabase/migrations/ # schema versionado (SQL)
deploy/aws/ # deploy na AWS (script, nginx, bootstrap do RDS, checklists)
tools/ # utilitários fora da app (ex.: conector Repinmetro)
docs/ # specs, planos, operação e histórico
Autorização é decidida no banco (RLS) a partir de perfis com permissões granulares por módulo; a UI apenas reflete. Toda mutação relevante gera um log imutável (auditoria).
| Produção | Dev | Demo | |
|---|---|---|---|
| App | shopfloor.enterplak.com.br (AWS Lightsail, pm2 + nginx) | localhost:3000 e previews da Vercel por branch | Vercel (branch main) |
| Banco | Supabase self-hosted + Amazon RDS | Supabase cloud (projeto Dev) | Supabase cloud (projeto antigo, com cópia dos dados reais) |
As credenciais ficam em arquivos locais e fora do git (.env.local, .env.*.local). Nunca vão
pro repositório.
Pré-requisitos: Node.js 20+, um projeto Supabase.
npm install
cp .env.example .env.local # preencha com as chaves do seu projeto Supabase
npm run dev # http://localhost:3000
npm test # testes
npm run lint
npm run build # build de produção
.env.local)# Supabase
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
SUPABASE_SERVICE_ROLE_KEY=
# Armazenamento de fotos: supabase (default) | r2 | drive
FOTOS_STORAGE=supabase
# Google Drive (quando FOTOS_STORAGE=drive)
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GOOGLE_REFRESH_TOKEN=
GOOGLE_DRIVE_FOLDER_ID=
# Cloudflare R2 (quando FOTOS_STORAGE=r2) — API compatível com S3
R2_ACCOUNT_ID=
R2_ACCESS_KEY_ID=
R2_SECRET_ACCESS_KEY=
R2_BUCKET=
# SSO do Portal RwTech
RWTECH_SSO_SECRET=
RWTECH_SITE_ID=
Lista de referência em
.env.example. O conector Repinmetro tem o próprio.envemtools/repinmetro-conector/(não é o.env.localda app).
NEXT_PUBLIC_*é embutido no build: mudou a URL do Supabase, precisa buildar de novo.
main. O push gera um preview na Vercel apontando pro
banco Dev.main.psql (a senha é digitada, nunca colada em chat ou arquivo);docker compose restart rest na pasta do Supabase;cd ~/ShopFloor && ./deploy/aws/deploy.sh (pull → npm ci se as dependências
mudaram → build → pm2 restart; se o build falhar, o app antigo continua no ar).As migrations em supabase/migrations/ são a fonte da verdade do schema, numeradas em ordem.
No Dev podem ir pelo SQL Editor do Supabase ou pela CLI (supabase db push); na produção (RDS),
por psql. Depois de criar ou alterar tabela/função, recarregar o schema do PostgREST
(notify pgrst, 'reload schema' ou reiniciar o container rest).
O primeiro usuário nasce com perfil Consulta; promova-o a Administrador seguindo
docs/operacao/primeiro-admin.md.
docs/migracao-aws.md e deploy/aws/docs/regras-de-negocio-shopfloor.mddocs/visao-tecnica.md, docs/divida-tecnica.mddocs/estudo-escalabilidade.md, docs/plano-performance-2a-leva.mddocs/superpowers/specs/, docs/superpowers/plans/docs/operacao/docs/historico/tools/repinmetro-conector/: lê a origem com usuário read-only, sync
incremental por marca d'água, roda agendado na máquina do banco. Ver o README.md da pasta.