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
Campanhas, fichas dinâmicas e regras com IA para qualquer sistema de RPG.
Translation pending
GamesTypeScript · JavaGitHub @EduardoMartins-DevOnlineOwner 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.
Portal web para mestres e jogadores de RPG de mesa: campanhas, fichas dinâmicas e uma IA contextualizada por sistema (RAG) que responde com base no material daquele sistema. Documentação: portal-rpg-arquitetura.md (arquitetura) · prompt.md (spec + matriz E2E) · E2E-REPORT.md (status dos cenários) · DEPLOY.md (produção).Read the full README ↗
Portal web para mestres e jogadores de RPG de mesa: campanhas, fichas dinâmicas e uma IA contextualizada por sistema (RAG) que responde com base no material daquele sistema.
Documentação: portal-rpg-arquitetura.md (arquitetura) · prompt.md (spec + matriz E2E) ·
E2E-REPORT.md (status dos cenários) · DEPLOY.md (produção).
Migração em andamento: o backend original era Java/Spring Boot (
backend/), hoje substituído por Route Handlers dentro do próprio Next.js (frontend/src/app/api/**).backend/fica no repositório só como referência histórica até o cutover de produção ser concluído (verDEPLOY.md) — não use para desenvolvimento novo.
frontend/pgvector, acessado via Drizzle ORMpgvector); geração mockada nos testes (AI_PROVIDER=echo) e LLM real (Groq ou Gemini)
em produção via env varOs documentos-fonte de regras (PDF/DOCX) não fazem parte do repositório — ficam fora do
controle de versão (.gitignore). Para usar a IA, o material é enviado pela própria aplicação
(o admin faz upload; a app extrai o texto, indexa em pgvector e responde escopado por sistema).
As fixtures de teste usam textos curtos próprios — nenhum conteúdo externo é versionado.
docker compose up -d # sobe pgvector/pgvector:pg16 em localhost:5432
Na primeira vez, crie as extensões e o schema:
docker exec portalrpg-db psql -U portalrpg -d portalrpg \
-c "CREATE EXTENSION IF NOT EXISTS vector; CREATE EXTENSION IF NOT EXISTS pgcrypto;"
cd frontend
npm run db:migrate # aplica o schema (drizzle-kit)
docker exec -i portalrpg-db psql -U portalrpg -d portalrpg < drizzle/manual/ivfflat_index.sql
npm run db:seed # 5 contas fixas (admin@test / Sup3rSenha!, etc.)
cd frontend
cp .env.example .env.local # ajuste se necessário
npm install
npm run dev # http://localhost:3000
cd frontend
npm test # Vitest (unit — inclui paridade do embedding com o Java antigo)
npm run test:e2e # Playwright (banco local rodando + seed aplicado)
Config 100% por variáveis de ambiente — ver frontend/.env.example para a lista completa
(DATABASE_URL, JWT_SECRET, AI_PROVIDER, EMBEDDINGS_PROVIDER, SUPABASE_*, etc.).
Secrets nunca são commitados. Em banco gerenciado, garanta CREATE EXTENSION vector;.
Passo a passo de produção em DEPLOY.md.