Loading repository data…
Loading repository data…
ghost-pipe-org / repository
Uma API REST completa para sistema de inscrições de mesas de RPG, desenvolvida em Node.js com TypeScript.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Uma API REST completa para sistema de inscrições de mesas de RPG, desenvolvida em Node.js com TypeScript.
O RPG System Backend é uma API REST que gerencia um sistema completo de inscrições para mesas de RPG e Oficinas. Permite que mestres criem sessões, organizem oficinas, jogadores se inscrevam, e administradores gerenciem todo o sistema.
# Clone e execute tudo automaticamente
git clone https://github.com/ghost-pipe-org/rpg-system_backend.git
cd rpg-system_backend
# Configure ambiente
cp .env.example .env
npm intall
docker-compose up --build
# Acesse:
# API: http://localhost:3001
# Documentação: http://localhost:3001/api-docs
# 1. Clone e instale
git clone https://github.com/ghost-pipe-org/rpg-system_backend.git
cd rpg-system_backend
npm install
# 2. Configure ambiente
cp .env.example .env
# 3. Inicie banco e aplicação
docker-compose up postgres -d
npm run db:dev #(Migrations do BD)
npm run start:dev
# 4. Execute testes
npm run test:docker
A API possui documentação Swagger interativa completa:
http://localhost:3001/api-docshttp://localhost:3001/api-docs.json/users/authenticate| Grupo | Endpoint | Descrição | Auth |
|---|---|---|---|
| Auth | POST /users | Registrar usuário | ❌ |
POST /users/authenticate | Login | ❌ | |
| Sessions | GET /sessions/approved | Sessões aprovadas | ❌ |
GET /sessions | Todas as sessões | 🔒 Admin | |
POST /sessions | Criar sessão | 🔒 Master | |
POST /sessions/:id/subscribe | Inscrever-se em sessão | 🔒 Player/Master | |
PATCH /sessions/:id/approve | Aprovar sessão | 🔒 Admin | |
PATCH /sessions/:id/reject | Rejeitar sessão | 🔒 Admin | |
DELETE /sessions/:id | Cancelar sessão pendente | 🔒 Master | |
| Workshops | GET /workshops/approved | Oficinas aprovadas | ❌ |
GET /workshops | Todas as oficinas | 🔒 Admin | |
POST /workshops | Emitir oficina | 🔒 Master | |
POST /workshops/:id/subscribe | Inscrever-se em oficina | 🔒 Player/Master | |
| Profile | GET /my-emmitted-sessions | Minhas sessões criadas | 🔒 |
GET /my-enrolled-sessions | Minhas inscrições | 🔒 | |
GET /users/profile | Meu perfil completo | 🔒 | |
PATCH /users/profile | Atualizar perfil | 🔒 |
📖 Documentação Completa: Todas as rotas, schemas e exemplos estão disponíveis na interface Swagger.
git clone https://github.com/ghost-pipe-org/rpg-system_backend.git
cd rpg-system_backend
npm install
cp .env.example .env
# .env
DATABASE_URL="postgres://postgres:1234@postgres:5432/rpg-system-backend"
JWT_SECRET="seu-jwt-secret-super-seguro"
PORT=3001
NODE_ENV=development
# Com Docker
docker-compose up postgres -d
# Execute migrations
npm run db:dev
# (Opcional) Execute seed (Popula o banco com Admin)
npm run db:seed
# Desenvolvimento (hot-reload)
npm run start:dev
# Produção
npm run build
npm start
# Ambiente completo
docker-compose up --build
# Apenas banco de dados
docker-compose up postgres -d
# Ver logs
docker-compose logs -f
# Parar e limpar
docker-compose down -v
O projeto possui 123 testes automatizados cobrindo todos os cenários:
# Execução automática completa (recomendado)
npm run test:docker
# Apenas iniciar banco de testes
npm run test:db:start
# Testes locais (com banco já rodando)
npm test
# Parar banco de testes
npm run test:db:stop
npm run test:docker # Completo: banco + migrations + testes + cleanup
npm run test:docker:watch # Modo watch com Docker
npm run test:docker:coverage # Com relatório de cobertura
npm run test:db:start # Apenas inicia banco de testes
npm run test:db:stop # Para banco de testes
src/
├── controllers/ # Endpoints da API
│ ├── middlewares/ # Validações e autenticação
│ ├── sessions/ # Gestão de sessões de RPG
│ └── users/ # Autenticação e perfil
├── services/ # Lógica de negócio
├── repositories/ # Camada de dados (Prisma + In-Memory)
├── swagger/ # Documentação OpenAPI
├── lib/ # Utilitários (Prisma client, etc.)
├── env/ # Configuração de environment
└── test/ # Testes automatizados
prisma/
├── schema.prisma # Schema do banco
├── migrations/ # Migrations do Prisma
└── seed.ts # Dados iniciais
docs/
├── GIT_FLOW_TUTORIAL.md # Tutorial de desenvolvimento
Este projeto segue Git Flow para organização e desenvolvimento:
# 1. Iniciar nova feature
git checkout develop
git pull origin develop
git checkout -b feature/<SeuNome>/issue#<numero>
# 2. Desenvolver seguindo os padrões
# - TypeScript obrigatório
# - Testes para novas funcionalidades
# - Documentação Swagger atualizada
# - Linting com Biome
# 3. Testar localmente
npm run test:docker
# 4. Criar Pull Request para develop
Branches:
main - Produçãodevelop - Integraçãofeature/<name>/issue#<num> - Novas funcionalidadeshotfix/<name>/issue#<num> - Correções urgentesCommits:
feat: Nova funcionalidadefix: Correção de bugdocs: Documentaçãotest: Testesrefactor: RefatoraçãoEste projeto está sob a licença ISC. Veja o arquivo LICENSE para mais detalhes.