Windows-GPU-UNLOCK
Windows GPU UNLOCK: RTX3090 UEFI port, Korean no-reset Windows boot guide, verified source and benchmark evidence
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
App de apoio para trabalho de reconditionnement (recondicionamento) de impressoras e copiadoras: referência de peças, acompanhamento diário de serviço, análise de indicadores e uma visão geral para administradores. Interface em francês (idioma de trabalho), com nomes/legendas em PT/EN nas peças. Roda direto no navegador, sem instalação — é um site estático (HTML + CSS + JS puro) com banco de dados na nuvem (Supabase).查看完整 README ↗
App de apoio para trabalho de reconditionnement (recondicionamento) de impressoras e copiadoras: referência de peças, acompanhamento diário de serviço, análise de indicadores e uma visão geral para administradores.
Interface em francês (idioma de trabalho), com nomes/legendas em PT/EN nas peças. Roda direto no navegador, sem instalação — é um site estático (HTML + CSS + JS puro) com banco de dados na nuvem (Supabase).
Catálogo de referência de componentes de impressora/copiadora, com nome em francês, português e inglês, categoria (Nettoyage / Montage / Électrique), descrição técnica e busca. Inclui um "Top 10" com a ordem oficial de desmontagem e um guia rápido de segurança/boas práticas.
1. Nouveau Service (com cronômetro) — para trabalho numa impressora específica:
2. Enregistrement rapide (sem cronômetro) — para o que não é trabalho numa máquina específica: basta escolher a data, a Étape (qualquer uma da lista, incluindo Réunion/Formation/Congés/5S), uma quantidade (opcional) e uma nota, e salvar. Aparece na hora no histórico, sem precisar rodar cronômetro nenhum — é o equivalente digital de preencher uma célula QTE da planilha de papel.
Todo o histórico mostra as duas coisas juntas, e cada técnico só vê os próprios registros (ver seção RGPD/Segurança abaixo).
Ma semaine — além de "Aujourd'hui", o técnico vê a semana inteira (segunda → domingo, com ‹ › para semanas anteriores), agrupada por dia, com total por dia, total da semana e barra de progresso até 35h. Cada entrada pode ser corrigida (étape, quantidade, nota, duração de um registro rápido) num formulário próprio, e um dia esquecido pode ser preenchido pelo botão "+ Ajouter". Exporta a semana em CSV (abre direto no Excel).
Visível só para os e-mails cadastrados na função is_admin() do banco
(SQL, ver seção abaixo) — o app pergunta ao Supabase "sou admin?" em vez de
guardar essa lista no código. Mostra um resumo geral (serviços, horas,
número de técnicos) direto ao abrir; a lista detalhada com os serviços de
cada técnico (fotos incluídas) só aparece depois de clicar em "Voir tous
les services de l'équipe" — ninguém fica exposto por padrão.
A tabela da semana (navegável com ‹ ›) lista todos os técnicos, inclusive quem não registrou nada; tocar num nome abre a Analyse só daquela pessoa. A lista de serviços tem filtro por técnico e export CSV.
Também tem dois painéis de gestão:
SUPABASE_SERVICE_ROLE_KEY na Vercel (ver seção "Configuração
do servidor" abaixo) — sem ela, o botão mostra um erro em vez de travar
silenciosamente.O projeto usa Supabase (Postgres + Auth + Storage).
As credenciais públicas (URL + chave "publishable") já estão no script.js
— isso é normal e esperado, a segurança de verdade vem das políticas RLS,
não do sigilo dessa chave.
Passo único: abra o SQL Editor do seu projeto Supabase e rode o
conteúdo de supabase/setup-complete.sql. Ele:
jobs (etape, quantite,
photo_url_final) — seguro rodar de novo, não duplica nadajobs, job_pauses e settings por Row Level Security: cada
técnico só vê/edita os próprios registrosis_admin() do próprio script⚠️ Importante: a lista de e-mails admin vive só dentro da função
is_admin(), no SQL (setup-complete.sql). O script.js não guarda mais
nenhum e-mail — ele só chama is_admin() pelo Supabase e mostra ou esconde
a aba Admin conforme a resposta. Pra adicionar ou trocar um admin, edite a
função is_admin() direto no SQL Editor do Supabase e rode de novo; não há
nada para sincronizar no código do site.
Os arquivos rls-admin-vs-own.sql e schema-additions.sql ficam na pasta
só como histórico — não precisa rodá-los, o setup-complete.sql já inclui
tudo o que eles faziam.
Depois de rodar o setup-complete.sql, rode também supabase/printer-models.sql
— ele cria a tabela printer_models (modelos de impressora por marca, hoje
gerenciável pelo Admin) e já vem populada com os modelos que estavam fixos
no código antes. Depende da função is_admin() criada pelo script anterior.
Rode também supabase/presence.sql — cria a tabela presence (primeira e
última atividade de cada técnico por dia, com a hora do servidor, não
do navegador). O técnico vê o próprio tempo no botão ⏱ do topo; o admin vê
a equipe inteira em Admin → "Présence aujourd'hui". Sem esse script o
botão ⏱ simplesmente não aparece.
Por último, rode supabase/harden-admin-check.sql — ele restringe quem
pode até perguntar "sou admin?" ao banco (só usuários logados, nunca
visitantes anônimos).
Feito em código/SQL:
ADMIN_EMAILS removido do script.js — o e-mail do admin nunca mais
trafega no HTML/JS que qualquer visitante pode abrir em "Ver código-fonte"vercel.json adiciona cabeçalhos de segurança HTTP em toda resposta do
site (X-Content-Type-Options, X-Frame-Options, Referrer-Policy)supabase/harden-admin-check.sql tranca a função is_admin() para só
usuários autenticados poderem chamá-la<script> do Supabase no index.html usa versão fixa + Subresource
Integrity (integrity="sha384-..."), então o navegador recusa rodar o
arquivo se o CDN algum dia servir um conteúdo diferente do esperadoSó dá pra fazer no painel do Supabase (nenhum código resolve isso):
O botão "Adicionar um técnico" do Admin precisa de uma chave secreta do
Supabase que nunca pode entrar no repositório nem no script.js — ela
dá acesso total ao banco, ao contrário da chave pública já usada no app.
Passo a passo:
script.js e é pública). Copie o valor.SUPABASE_SERVICE_ROLE_KEY com o valor
copiado, marcada para o ambiente Production (e Preview, se quiser
testar em branches).Sem essa variável configurada, o botão continua visível mas mostra uma mensagem de erro ao tentar criar a conta — não falha silenciosamente.
A função que faz isso vive em api/create-technician.js (roda só no
servidor da Vercel, nunca no navegador) e confere com o próprio Supabase se
quem está chamando é mesmo admin antes de criar qualquer conta.
O que ainda depende de decisão/ação humana (não é código): definir prazo de retenção dos dados, verificar a região de hospedagem do projeto Supabase, e formalizar um aviso de privacidade caso o app seja usado comercialmente ou vendido para terceiros.
index.html estrutura da página (todas as telas)
style.css visual (paleta petróleo + cobre, mobile-first)
script.js toda a lógica (dados, telas, gráficos, Supabase)
favicon.svg ícone do site
vercel.json cabeçalhos de segurança HTTP (deploy na Vercel)
package.json dependência da função serverless (api/)
api/
create-technician.js ⚠️ roda só no servidor — cria login de técnico
supabase/
setup-complete.sql ⭐ rodar 1º (colunas + segurança)
printer-models.sql ⭐ rodar 2º (tabela de modelos + admin)
harden-admin-check.sql ⭐ rodar 3º (tranca quem pode chamar is_admin())
presence.sql ⭐ tempo de conexão por técnico (botão ⏱ + Admin)
rls-admin-vs-own.sql histórico, não precisa rodar
schema-additions.sql histórico, não precisa rodar
Basta abrir index.html num navegador, ou publicar a pasta em qualquer
hospedagem estática (o projeto já está publicado via Vercel).