Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Jogo para aprender a Bíblia: quizzes com tempo, álbum de figurinhas dos personagens, loja de bônus e ranking. Funciona como app instalável (PWA), inclusive offline. Front e back ficam no mesmo repositório e são publicados juntos em um único projeto na Vercel, no mesmo formato do projeto Louvor. Na Vercel, /api/* vai para a função serverless e todo o resto é o app estático (frontend/dist), então front e API ficam no mesmo domínio (sem CORS). Requisitos: Node 20+ e Docker (para o Postgres).README 전문 보기 ↗
Jogo para aprender a Bíblia: quizzes com tempo, álbum de figurinhas dos personagens, loja de bônus e ranking. Funciona como app instalável (PWA), inclusive offline.
Front e back ficam no mesmo repositório e são publicados juntos em um único projeto na Vercel, no mesmo formato do projeto Louvor.
| Parte | Tecnologia |
|---|---|
frontend/ | React 19 + Vite + Tailwind 4, PWA com service worker próprio (Workbox) |
backend/ | Node + Express + Prisma (PostgreSQL), autenticação JWT |
api/index.ts | Função serverless da Vercel que roda o Express do backend |
| Banco | PostgreSQL (Neon em produção, Docker no desenvolvimento) |
| Imagens | Vercel Blob em produção; no desenvolvimento ficam no próprio banco |
Na Vercel, /api/* vai para a função serverless e todo o resto é o app estático
(frontend/dist), então front e API ficam no mesmo domínio (sem CORS).
Requisitos: Node 20+ e Docker (para o Postgres).
npm install # instala tudo (workspaces backend e frontend)
cp backend/.env.example backend/.env
npm run db:up # sobe o Postgres do docker-compose
npm run prisma:migrate # cria as tabelas
npm run seed # regras, recompensas, loja e dados de demonstração
npm run dev # API em :3333 e app em http://localhost:5173
Contas de demonstração (criadas com SEED_DEMO_DATA="true"): [email protected] e
[email protected], senha 123456.
Outros comandos:
npm run create-user — cria/atualiza uma conta pelo terminal (ex.: um admin).npm test — testes do backend. Os de integração da API só rodam com um banco
descartável: TEST_DATABASE_URL="postgresql://.../colecao_biblica_test" npm test.npm run build — compila backend e frontend.npm run icons -w frontend — regenera os ícones do PWA a partir de frontend/src/assets/logo.png.frontend nem backend).vercel.json.| Variável | Obrigatória | Valor |
|---|---|---|
JWT_SECRET | sim | Texto aleatório com 32+ caracteres: openssl rand -base64 48 |
ADMIN_EMAIL | recomendado | Seu e-mail; o deploy cria esse admin se ainda não existir |
ADMIN_PASSWORD | recomendado | Senha do admin (mínimo 8 caracteres) |
ADMIN_NAME | não | Nome exibido do admin (padrão: Administrador) |
BLOB_READ_WRITE_TOKEN | recomendado | Token do Blob store (passo 3). Se o store foi ligado pelo botão Connect, a Vercel pode criar BLOB_STORE_ID no lugar: também funciona |
BLOB_ACCESS | não | public ou private para forçar o modo do store (sem ela o app descobre sozinho) |
APP_TIMEZONE | não | Fuso do limite diário de prêmios (padrão America/Sao_Paulo) |
SEED_DEMO_DATA | não | Não cadastre em produção (só true cria as contas de teste) |
DATABASE_URL — conexão com pooler (usada pelo app);DATABASE_URL_UNPOOLED — conexão direta (usada só pelas migrações).
Ela cria outras (PGHOST, POSTGRES_URL...) que o app ignora.Storage → Create Database → Blob (store público ou privado, os dois funcionam). Clique em
Connect para a Vercel cadastrar as variáveis, ou copie o BLOB_READ_WRITE_TOKEN (começa com
vercel_blob_rw_) e salve como variável do projeto. Depois, Redeploy.
Como o upload funciona: o painel reduz a imagem no navegador (WebP de até 1200–1600 px) e envia para
POST /api/uploads; o servidor confere o formato pelos bytes e grava no Blob. Em store público a URL
do Blob é salva direto; em store privado a imagem é servida por /api/uploads/file/.... Sem Blob, a
imagem (já reduzida) fica no banco. A Visão geral do painel mostra qual modo está ativo.
npm run vercel-build:
prisma migrate deploy — aplica migrações novas no Neon (usa DATABASE_URL_UNPOOLED);prisma generate;npm run seed — garante configurações, recompensas, itens da loja e o admin de
ADMIN_EMAIL (não duplica nada nem desfaz ajustes feitos no painel);frontend/dist.Depois do primeiro deploy, entre com o ADMIN_EMAIL/ADMIN_PASSWORD e cadastre
personagens e perguntas pelo painel.
CLAUDE.md: regras de interface (paginação em toda lista, componentes do app no lugar dos do
navegador, ícone de carregamento) e de backend.docs/levantamento.md: auditoria do admin e da lógica do jogo, economia e próximos passos.api/index.ts função serverless (chama createApp do backend)
backend/
prisma/ schema e migrações
src/app.ts monta o Express com todas as rotas em /api
src/routes/ auth, users, characters, questions, rewards, shop, settings,
quiz, collection, comments, ranking, uploads, daily, achievements, admin
src/services/ regras do jogo, quiz, recompensas, conquistas, uploads, configurações, seed
src/scripts/ seed e create-user
frontend/
src/pages/ início (login), painel e detalhe da figurinha
src/components/ telas do jogador (user/), do admin (admin/), do jogo (game/) e kit de UI (ui/)
src/sw.ts service worker (cache offline e atualização)
vite.config.ts build, manifest do PWA e proxy /api no desenvolvimento
vercel.json build, rotas e cabeçalhos na Vercel