Copyright (c) 2026 Rebeca Morais Cruz (Rebs Tech Studio). Licenciado sob a GNU GPLv3.
Um aplicativo web para criação e gestão de fichas de personagens de RPG de mesa, focado inicialmente no sistema Dungeons & Dragons 5ª Edição. Projetado para ser rápido, acessível e expansível.
🔗 Acesse o projeto online: rpgworldapp.com
- Framework: Next.js 16 (React 19)
- Linguagem: TypeScript
- Estilização: Tailwind CSS
- APIs Externas: D&D 5e API (Magias e recursos adicionais)
- Banco de Dados/Auth: Supabase (Planejado / Em andamento), versão inicial com persistência em JSON estrito.
O projeto está atualmente focado em fechar sua base funcional com as seguintes metas:
- Gestão e Escopo de Contas: Controle de personagens amarrado à usuários cadastrados (via banco de dados).
- Limite de 10 Personagens: Restrição inicial por usuário para manter o escopo seguro e focado.
- Múltiplos Sistemas (Arquitetura): Código modular para permitir adicionar mais sistemas além do D&D 5e facilmente no futuro.
- Ficha Completa em uma Single Page: Todos os atributos, perícias, salvaguardas, PV, CA e Iniciativa numa tela compacta com suporte para foto de perfil do personagem.
- Automação das Regras (D&D 5e): Cálculo automático e estrito de Modificadores, Bônus de Proficiência e Percepção Passiva a partir de Atributos Base.
- Grimório / Magias Integradas: Um Drawer para consultar, aprender e gerenciar listas de Magias utilizando a API
dnd5eapi.co, construído de forma que traduza perfeitamente via Google Tradutor (Inglês -> PT-BR).
npm installCopie o arquivo de exemplo:
cp .example.env.local .env.localO Docker precisa estar rodando antes deste passo.
npm run infra upEste comando irá subir os containers do Supabase (Dev e Test), configurar os symlinks necessários e gerar as tipagens do banco de dados automaticamente.
Ao finalizar, o terminal exibirá as chaves geradas para o ambiente de Dev. Copie os valores para o .env.local:
API URL → NEXT_PUBLIC_SUPABASE_URL
Anon key → NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY
Service role → SUPABASE_SECRET_KEY
Dica: O ambiente de testes roda na porta 54421 de forma isolada.
npm run devAcesse http://localhost:3000 no navegador.
Você pode usar o usuário player@email.com e senha player123 para fazer login localmente.
| Serviço | URL |
|---|---|
| Aplicação | http://localhost:3000 |
| Supabase Studio (UI) | http://localhost:54323 |
| Inbucket (emails) | http://localhost:54324 |
| Supabase API (Dev) | http://localhost:54321 |
| Supabase API (Test) | http://localhost:54421 |
O Inbucket intercepta os emails enviados pelo auth (Magic Link, OTP) localmente — não é necessário um email real para testar.
Para detalhes técnicos mais profundos, consulte nossos guias:
- 🗺️ Mapa e Estrutura do Projeto - Guia de navegação por diretórios e arquitetura.
- 🏆 Regras de Ouro & Princípios - Padrões de código, banco de dados e testes.
- 🤝 Guia de Contribuição - Como configurar o ambiente e padrões de desenvolvimento.
| Comando | Descrição |
|---|---|
npm run dev |
Inicia o servidor de desenvolvimento |
npm run infra up |
Sobe Docker, sincroniza pastas e gera tipos |
npm run infra down |
Para todos os containers da infraestrutura |
npm run clean |
Reset total: apaga volumes, recria o banco e limpa o docker |
npm run db:ui |
Abre o Supabase Studio e o Inbucket no navegador |
npm run test |
Executa a pipeline completa (Unitários + Infra + Integração) |
npm run test:unit |
Executa apenas os testes unitários |
npm run test:ui |
Abre a interface visual do Vitest |
npm run lint |
Verifica erros de linting |
npm run format |
Formata o código usando Prettier |
Desenvolvido com 💜 por Rebeca.
Este projeto está licenciado sob a GNU GPLv3. Consulte o arquivo LICENSE para obter mais detalhes.
Copyright (c) 2026 Rebeca Morais Cruz (Rebs Tech Studio).