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
Gerenciador de campanhas de RPG de mesa: campanhas, fichas, sessões e segredos do mestre num só grimório.
Translation pending
GamesTypeScript · PLpgSQLGitHub @GbrielHOnlineOwner 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
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Plataforma de gerenciamento de RPG de mesa: campanhas, convites, fichas digitais, sessões com roteiro por blocos, biblioteca de NPCs e monstros e mesa do mestre com combate e segredos protegidos no banco de dados.
O projeto começa com D&D 5e (SRD 5.2.1) e foi projetado para receber outros sistemas sem exigir uma reescrita da aplicação.
| O quê | Link |
|---|---|
| Site (produção) | https://codexveil.vercel.app |
| APK Android com atualização automática (recomendado) | https://expo.dev/artifacts/eas/HT_E1N3i2gMdSePb2XoWnGa6NXtUdJelBqxC5S6480Y.apk (build ba2a5e0d, 2026-10-26, ícone do Tomo, gerado pelo workflow APK; recebe as atualizações por OTA) |
| Todos os builds do app (EAS) | https://expo.dev/accounts/gabriel.xxtth/projects/codexveil/builds |
| Repositório | https://github.com/GbrielH/CODEXVEIL |
Para instalar o APK, abra o link no celular Android, baixe o arquivo e permita a instalação de fontes desconhecidas. APKs anteriores a este (inclusive o 420f6c37) não recebem as atualizações novas: instale este por cima. Cada push em main publica o site (Vercel) e envia uma atualização OTA ao app (GitHub Actions, .github/workflows/ci.yml); um APK novo só é gerado à mão, quando o código nativo muda. A cada novo build, atualize esta tabela e docs/PROXIMOS_PASSOS.md.
O estado atual do projeto está documentado em docs/PROGRESS.md, os próximos passos em docs/PROXIMOS_PASSOS.md e o que ainda falta em relação ao escopo inicial em docs/PENDENCIAS.md.
apps/
web/ Next.js 16 (App Router), React 19, Tailwind CSS 4
mobile/ Expo SDK 57, React Native 0.86, Expo Router
packages/
domain/ Regras de negócio puras (permissões, convites, recursos, iniciativa, blocos)
rpg-systems/ Contrato de sistemas de RPG + módulo D&D 5e (SRD 5.2)
validation/ Esquemas zod compartilhados (formulários, blocos, uploads)
database/ Tipos do banco, consultas, autosave, Realtime e testes de RLS (PGlite)
ui/ Design system: tokens, emblema e glifos (web e mobile)
config/ TypeScript e ESLint compartilhados
supabase/
migrations/ Esquema versionado, policies RLS, funções e buckets
seed.sql Dados de DEMONSTRAÇÃO (somente ambiente local)
templates/ E-mails de autenticação em português
docs/ Arquitetura, banco, segurança, licenças, deploy, progresso e pendências
| Área | Versão |
|---|---|
| Node.js | 24 (.node-version) |
| pnpm / Turborepo | 12.14 / 2.11 |
| TypeScript | 6.0 (modo estrito) |
| Next.js / React (web) | 16.4 / 19.3 |
| Tailwind CSS | 4.3 |
| Expo / React Native / React (mobile) | SDK 57 / 0.86.3 / 19.2.3 |
| Supabase JS / SSR / CLI | 2.118 / 0.12 / 2.121 |
| Zod | 4.6 |
| Vitest / PGlite (Postgres 17 em WASM) | 5.0 / 0.5 |
corepack enable habilita o Corepack para gerenciar a versão do gerenciador de pacotes definida no projeto.npx, e não é necessário instalar o Android Studio na máquina.Na raiz do projeto, execute:
pnpm install
Escolha uma das opções abaixo.
Requer Docker instalado e em execução.
pnpm exec supabase start
pnpm exec supabase db reset
pnpm exec supabase status
Os comandos iniciam os serviços locais, aplicam as migrações e os dados de demonstração e exibem as URLs e chaves de acesso.
O seed cria duas contas de demonstração com a senha Codexveil123:
Os e-mails locais podem ser consultados no Inbucket/Mailpit em http://127.0.0.1:54324.
Importante: essas credenciais são apenas para demonstração local. Não as utilize em produção.
Crie um projeto exclusivo em supabase.com.
Vincule o projeto à CLI:
pnpm exec supabase link --project-ref <ref-do-projeto>
Aplique as migrações:
pnpm exec supabase db push
O comando db push não aplica o seed de demonstração.
Configure também no painel do Supabase a URL do site, as URLs de redirecionamento, os modelos de e-mail e o SMTP. Consulte docs/DEPLOY.md para obter mais detalhes.
Copie os arquivos de exemplo e preencha os valores necessários:
cp apps/web/.env.example apps/web/.env.local
cp apps/mobile/.env.example apps/mobile/.env.local
No Windows PowerShell, se o comando cp não funcionar no seu ambiente, você pode usar Copy-Item.
| Variável | Aplicação | Descrição |
|---|---|---|
NEXT_PUBLIC_SUPABASE_URL | Web | URL do projeto Supabase |
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY | Web | Chave pública sb_publishable_... ou chave anon compatível |
NEXT_PUBLIC_SITE_URL | Web | URL pública do site, usada nos links de e-mail |
EXPO_PUBLIC_SUPABASE_URL | Mobile | URL do Supabase; no emulador Android local, use http://10.0.2.2:54321 |
EXPO_PUBLIC_SUPABASE_PUBLISHABLE_KEY | Mobile | Chave pública do Supabase |
EXPO_PUBLIC_SITE_URL | Mobile | URL do site usada em convites e redefinições de senha |
Para o ambiente local, a URL da API do Supabase normalmente é http://127.0.0.1:54321.
Os aplicativos validam a configuração ao iniciar e rejeitam chaves secretas, como service_role e sb_secret_.... Sem a configuração necessária, o site informa quais recursos dependem do backend.
Nunca coloque chaves secretas em variáveis públicas ou no repositório.
Execute os comandos na raiz do projeto.
| Comando | Descrição |
|---|---|
pnpm dev:web | Inicia o site em http://localhost:3000 |
pnpm dev:mobile | Inicia o Expo para abrir o aplicativo no Expo Go ou em um development build |
pnpm check | Executa lint, verificação de tipos e testes dos pacotes |
pnpm test | Executa os testes de domínio, regras de D&D, validação, RLS e web |
pnpm build | Executa o build de produção da web e exporta o bundle Android do app |
pnpm format | Formata os arquivos com Prettier |
pnpm db:types | Regenera os tipos do banco a partir das migrações, sem Docker |
pnpm brand:assets | Regenera ícones e splash a partir do emblema vetorial |
pnpm --filter @codexveil/mobile build:apk | Gera um APK de teste usando EAS Build |
Consulte docs/DEPLOY.md para obter instruções de build, publicação e backups.
Os testes do pacote packages/database aplicam as migrações em um Postgres 17 executado em WebAssembly por meio do PGlite, com um shim mínimo do Supabase.
As consultas são executadas com o papel e o JWT do usuário para testar as políticas RLS, incluindo cenários como tentativas de acessar notas privadas, trocar UUIDs e editar a ficha de outro jogador, sem depender de um banco externo.