Aplicação desenvolvida em Node.js para auxiliar o gerenciamento de pokémons em um Centro Pokémon.
Este projeto integra o desafio técnico do processo seletivo para Desenvolvedor Júnior da SIMINT.
A API da aplicação Pokémon Center foi documentada por utilizando Swagger e inclui alguns exemplos de dados e de respostas para cada requisição.
Ao executar o projeto localmente, pode-se acompanhar a documentação por meio deste endereço: http://localhost:3001/api.
- Node.js v20 ou superior
- PostgreSQL instalado e rodando
- Banco de dados
pokemon_centercriado no PostgreSQL
CREATE DATABASE pokemon_center;- Clone este repositório:
git clone https://github.com/sammid37/PokemonCenter.git
cd pokemon-center- Instale as dependências do backend:
cd backend
npm install- Crie o arquivo
backend/.envcom as seguintes variáveis:
DB_HOST=localhost
DB_PORT=5432
DB_USERNAME=<seu_username>
DB_PASSWORD=<seu_password>
DB_NAME=pokemon_center
JWT_SECRET=<seu_jwt_secret>
JWT_EXPIRES_IN=7dAltere a porta do banco se necessário.
- Inicie o backend:
# cd backend
npm run start:devA API estará disponível em
http://localhost:3001. As tabelas serão criadas automaticamente pelo TypeORM.
- Em outro terminal, instale as dependências do frontend:
cd frontend
npm install- Crie o arquivo
frontend/.env.localcom as seguintes variáveis:
NEXT_PUBLIC_API_URL=http://localhost:3001Altere a porta se necessário.
- Inicie o frontend:
# cd frontend
npm run dev- Acesse
http://localhost:3000no navegador.
Você pode se cadastrar como:
- 🎒 Treinador — cadastra e gerencia seus próprios pokémons e solicita cuidados no Centro Pokémon
- 🏥 Enfermeira Joy — visualiza todos os pokémons cadastrados e aprova ou recusa as solicitações de cuidado dos treinadores
O backend conta com testes unitários implementados com Jest e ts-jest, cobrindo as camadas de service e controller da aplicação.
| Arquivo | Camada |
|---|---|
src/auth/auth.controller.spec.ts |
Controller |
src/auth/auth.service.spec.ts |
Service |
src/pokemons/pokemons.controller.spec.ts |
Controller |
src/pokemons/pokemons.service.spec.ts |
Service |
src/pokemon-actions/pokemon-actions.controller.spec.ts |
Controller |
src/pokemon-actions/pokemon-actions.service.spec.ts |
Service |
src/users/users.service.spec.ts |
Service |
Execute os comandos a seguir dentro do diretório backend/:
# Rodar todos os testes
npm run test
# Rodar os testes em modo watch — re-executa ao salvar arquivos
npm run test:watch
# Rodar os testes e exibir o relatório de cobertura
npm run test:cov
# Rodar os testes e salvar o relatório de cobertura em uma pasta personalizada
npm test -- --coverage --coverageDirectory='my-coverage-report'Banco de Dados: Neon Backend: Render Frontend: Vercel
Visite: https://pokemon-center-green.vercel.app/
| Prévia Trainador | Prévia Enfermeira Joy |
|---|---|
As funcionalidades a seguir foram implementadas conforme especificado no desafio técnico:
- Cadastro de usuários com e-mail e senha
- Login com geração de token JWT
- Proteção de rotas — apenas usuários autenticados podem acessar o sistema
- Cadastro de pokémons com os campos obrigatórios: nome, tipo, nível, HP e número da Pokédex
- Edição de pokémons: apenas o treinador que cadastrou pode editar
- Exclusão de pokémons: apenas o treinador que cadastrou pode excluir
- Interface desenvolvida com React, Next.js e TypeScript
- Página de login e registro de treinadores
- Dashboard com listagem de pokémons em cards
- Formulário para adicionar e editar pokémons
- Modal de confirmação para exclusão
- API RESTful desenvolvida com NestJS e TypeScript
- Banco de dados PostgreSQL com TypeORM
- Endpoints protegidos por autenticação JWT
- Consumo da PokéAPI para melhorar a experiência de buscar por pokémons e obter o número oficial da pokédex, demais dados de cadastro ficam por conta do usuário;
- Solicitar cuidados para seus pokémons (ação aprovada ou recusada por uma enfermeira Joy)
- Implementação de testes unitários no backend da aplicação + GitHub Actions

