Skip to content

sammid37/PokemonCenter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Centro Pokémon

Prévia do Pokemon Center

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.


Tecnologias

NodeJS NestJS Jest Swagger

React Next JS TypeScript

TailwindCSS DaisyUI HTML5 CSS3

Postgres JWT

Documentação da API

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.

Pré-requisitos

  • Node.js v20 ou superior
  • PostgreSQL instalado e rodando
  • Banco de dados pokemon_center criado no PostgreSQL
CREATE DATABASE pokemon_center;

Instalação

  1. Clone este repositório:
git clone https://github.com/sammid37/PokemonCenter.git
cd pokemon-center
  1. Instale as dependências do backend:
cd backend
npm install
  1. Crie o arquivo backend/.env com 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=7d

Altere a porta do banco se necessário.

  1. Inicie o backend:
# cd backend
npm run start:dev

A API estará disponível em http://localhost:3001. As tabelas serão criadas automaticamente pelo TypeORM.

  1. Em outro terminal, instale as dependências do frontend:
cd frontend
npm install
  1. Crie o arquivo frontend/.env.local com as seguintes variáveis:
NEXT_PUBLIC_API_URL=http://localhost:3001

Altere a porta se necessário.

  1. Inicie o frontend:
# cd frontend
npm run dev
  1. Acesse http://localhost:3000 no 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

Testes unitários

O backend conta com testes unitários implementados com Jest e ts-jest, cobrindo as camadas de service e controller da aplicação.

Arquivos com cobertura de testes

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
Coverage

PokéCenter Backend Tests Coverage

Comandos

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'

Deploy

Banco de Dados: Neon Backend: Render Frontend: Vercel

Visite: https://pokemon-center-green.vercel.app/

Sobre o projeto

Prévia Trainador Prévia Enfermeira Joy
Prévia Treinador Prévia Enfermeira

As funcionalidades a seguir foram implementadas conforme especificado no desafio técnico:

Autenticação

  • 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

Gerenciamento de Pokémons (CRUD)

  • Cadastro de pokémons com os campos obrigatórios: nome, tipo, nível, HP e número da Pokédex

Listagem de pokémons

  • Edição de pokémons: apenas o treinador que cadastrou pode editar
  • Exclusão de pokémons: apenas o treinador que cadastrou pode excluir

Frontend

  • 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

Backend

  • API RESTful desenvolvida com NestJS e TypeScript
  • Banco de dados PostgreSQL com TypeORM
  • Endpoints protegidos por autenticação JWT

Extras

  • 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

About

Gerenciamento de pokémons em um centro Pokemon. (Desafio técnico)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors