Uma plataforma moderna e completa para explorar o universo Digimon
🚀 Demonstração • ✨ Características • 📦 Instalação • 📚 Documentação
- Sobre o Projeto
- Demonstração
- Arquitetura
- Começando
- Docker Deploy
- Documentação
- Scripts Disponíveis
- Contribuindo
- Licença
O DigiVerse é um monorepo que fornece uma experiência completa para explorar o universo Digimon:
- API REST completa para dados de Digimon (209+ Digimons, evoluções, tipos, atributos)
- Aplicação Web moderna com design glassmorphism e filtros inline compactos
- Sistema de Autenticação com JWT e refresh tokens
- Infraestrutura Docker pronta para produção
- 🚀 Performance: Cache Redis, otimizações de query com Prisma
- 🔒 Segurança: JWT com refresh tokens, rate limiting (100 req/min), validação Zod
- 📊 Observabilidade: Logs estruturados com Pino, health checks
- 🎨 Documentação: Swagger/OpenAPI 3.0 completo em
/docs - 🐳 DevOps: Docker multi-stage builds, docker-compose
- 🧪 Qualidade: Testes unitários e de integração (12 tests), ESLint, Prettier
- 🎭 Design System: Glassmorphism com efeitos de vidro e neon
- 📱 Responsivo: Otimizado para mobile, tablet e desktop
- 🔍 Busca e Filtros: Sistema de filtros inline compactos com expand/collapse
- ⚡ Performance: TanStack Query para cache e estado do servidor
- 🎨 UI/UX: TailwindCSS com design tokens customizados
- 🌐 SEO: Meta tags dinâmicas com React Helmet Async
- 🔐 Auth Flow: Login/Register com proteção de rotas
digiverse/
├── packages/
│ ├── backend/ # API REST (Fastify + Prisma + PostgreSQL)
│ ├── web/ # App Web (React + Vite + TailwindCSS)
│ └── mobile/ # Apps Mobile (React Native - em breve)
├── docs/ # Documentação adicional
├── CODE_OF_CONDUCT.md # Código de conduta
└── README.md # Este arquivo
- Runtime: Node.js 18+
- Framework: Fastify 5.6
- ORM: Prisma 6.17
- Database: PostgreSQL 15
- Cache: Redis 7
- Validação: Zod
- Testes: Jest
- Logs: Pino
- Framework: React 19
- Build: Vite 7
- Linguagem: TypeScript 5.6
- Styling: TailwindCSS 3.4
- State: TanStack Query (React Query)
- Routing: React Router v7
- Forms: React Hook Form + Zod
- HTTP: Axios com interceptors
- Filtros Inline Compactos: Sistema de filtros que ocupa 75% menos espaço quando colapsado
- Dropdowns com Portal API: Z-index absoluto (z-9999) para renderização sem conflitos
- Glassmorphism: Efeitos de vidro com backdrop-blur e gradientes sutis
- Busca em Tempo Real: Pesquisa instantânea com debounce
- Responsivo: Layout adaptável para qualquer tamanho de tela
- Clone o repositório:
git clone https://github.com/CAFernandes/API-REST-Digimon.git
cd API-REST-Digimon- Instale as dependências:
pnpm install- Configure as variáveis de ambiente:
# Backend
cp packages/backend/.env.example packages/backend/.env
# Edite packages/backend/.env com suas configurações- Inicie os serviços de infraestrutura (PostgreSQL + Redis):
pnpm docker:backend:up- Execute as migrações do banco de dados:
cd packages/backend
pnpm prisma:migrate
pnpm db:seed # Popula o banco com dados de exemplo- Inicie o servidor de desenvolvimento:
# Backend
pnpm backend:dev
# Web (em outro terminal)
pnpm web:dev🎉 Pronto! A API estará rodando em http://localhost:3000 e o frontend em http://localhost:5173
O DigiVerse oferece suporte completo ao Docker, permitindo executar frontend e backend de forma independente.
# 1. Configurar variáveis de ambiente
cp .env.example .env
# Edite .env com suas configurações
# 2. Build e iniciar todos os serviços
pnpm docker:build
pnpm docker:up
# 3. Acessar aplicação
# Frontend: http://localhost:80
# Backend: http://localhost:3000
# Swagger: http://localhost:3000/docs┌────────────────────────────────────────────┐
│ digiverse_network (bridge) │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ web │ │ backend │ │ postgres │ │
│ │ :80 │←→│ :3000 │←→│ :5432 │ │
│ │ (Nginx) │ │(Fastify) │ │ │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ ↓ │
│ ┌──────────┐ │
│ │ redis │ │
│ │ :6379 │ │
│ └──────────┘ │
└────────────────────────────────────────────┘
- ✅ Frontend Independente: Pode rodar mesmo com backend em manutenção
- ✅ Multi-stage Builds: Imagens otimizadas (~150MB para web, ~200MB para backend)
- ✅ Health Checks: Monitoramento automático de saúde dos serviços
- ✅ Volumes Persistentes: Dados preservados entre reinicializações
- ✅ Auto-restart: Recuperação automática de falhas
📚 Documentação Completa: docs/DOCKER_DEPLOY.md ⚡ Quick Start: docs/DOCKER_QUICKSTART.md
-
Backend Documentation - Guia completo da API
- Endpoints disponíveis
- Autenticação e segurança
- Schemas e validações
- Deploy e Docker
-
Web Documentation - Guia do frontend web
- Estrutura de componentes
- Gerenciamento de estado
- Build e deploy
-
Mobile Documentation - Em desenvolvimento
- Swagger/OpenAPI - Documentação interativa da API (após iniciar o backend)
- DOCKER_DEPLOY.md - Guia completo de deploy com Docker
- DOCKER_QUICKSTART.md - Quick start Docker em 3 passos
- CONTRIBUTING.md - Guia para contribuidores (250+ linhas)
- CHANGELOG.md - Histórico de mudanças do projeto
- CODE_OF_CONDUCT.md - Código de conduta da comunidade
- Z_INDEX_GUIDE.md - Guia de hierarquia z-index
- ProjectPlan.md - Roadmap e planejamento do projeto
pnpm backend:dev # Inicia servidor em modo desenvolvimento
pnpm backend:build # Build para produção
pnpm backend:start # Inicia servidor de produção
pnpm backend:test # Executa testes
pnpm backend:lint # Verifica código com ESLint
pnpm backend:format # Formata código com Prettierpnpm web:dev # Inicia dev server
pnpm web:build # Build para produção
pnpm web:preview # Preview do build de produçãopnpm docker:build # Build de todas as imagens (web + backend)
pnpm docker:up # Inicia todos os serviços
pnpm docker:down # Para todos os serviços
pnpm docker:logs # Visualiza logs de todos os serviços
pnpm docker:rebuild # Rebuild completo e reinicialização
pnpm docker:clean # Remove containers e volumes (⚠️ apaga dados)pnpm docker:web:build # Build apenas do frontend
pnpm docker:web:up # Inicia apenas o frontend (Nginx)
pnpm docker:web:down # Para o frontend
pnpm docker:web:logs # Logs do frontendpnpm docker:backend:build # Build da imagem Docker do backend
pnpm docker:backend:up # Inicia containers (PostgreSQL + Redis)
pnpm docker:backend:down # Para containers do backend
pnpm docker:backend:logs # Visualiza logs do backend📚 Guia Completo: Veja docs/DOCKER_DEPLOY.md para instruções detalhadas de deploy
pnpm lint:all # Lint em todos os pacotes
pnpm format:all # Formata todos os pacotes
pnpm test:all # Testes em todos os pacotes
pnpm clean # Limpa node_modules e buildsContribuições são sempre bem-vindas! Por favor, leia nosso Guia de Contribuição e o Código de Conduta antes de enviar um Pull Request.
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'feat: Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Caio Alberto Fernandes
- Email: [email protected]
- GitHub: @CAFernandes
- Comunidade Digimon
- Todos os contribuidores
- Fastify Team
- Prisma Team
Feito com ❤️ e ☕ por Caio Fernandes



