Skip to content

pkratosp/nest-clean-ddd

Repository files navigation

Descrição do projeto

Projeto feito com nestjs usando DDD, este projeto é uma aplicação de forum, onde os usuários podem realizar perguntas com anexos e as responder com anexos, o projeto também inclui notificações, para notificar um usuário quando ocorrer uma resposta na sua pergunta.

Funcionalidades do projeto

  • Deve ser possivel cadastrar uma pergunta
  • Deve ser possivel cadastrar uma resposta
  • Deve ser possivel escolher a melhor resposta de uma pergunta
  • Deve ser possivel comentar em uma resposta
  • Deve ser possivel comentar em uma pergunta
  • Deve ser possivel deletar o comentario de uma pergunta
  • Deve ser possivel deletar o comentario de uma resposta
  • Deve ser possivel deletar uma resposta
  • Deve ser possivel deletar uma pergunta
  • Deve ser possivel editar uma pergunta
  • Deve ser possivel editar uma resposta
  • Deve ser possivel visualizar resposta de uma questão
  • Deve ser possivel buscar perguntas recentes
  • Deve ser possivel receber uma notificação de uma resposta
  • Deve ser possivel ler uma notificação
  • Deve ser possivel anexar arquivos na resposta
  • Deve ser possivel anexar arquivos na pergunta

Iniciar a aplicação

Para inciar a aplicação é necessário possuir o docker instalado, caso já possua o docker execute os comandos abaixo

Rode o comando para executar o banco de dados

docker compose up -d

sera executado em ambiente de desenvolvimento

npm run start:dev

Para criar chaves publicas e privadas

Observação, caso esteja no windows é necessário instalar a lib openssl pelo chocolatey, caso não tenha instalado rode o comando abaixo para instalar a lib

choco install openssl

gera a chave privada

openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048

gera a chave publica

openssl rsa -pubout -in private_key.pem -out public_key.pem

Para gerar um base64 das chaves publicas e privadas

Observação, caso esteja no windows é necessário instalar a lib base64 pelo chocolatey, caso não tenha instalado rode o comando abaixo

choco install base64
base64 -i private_key.pem -o private_key-base64.txt
base64 -i public_key.pem -o public_key-base64.txt

Diagrama de Entidade Relacionamento do projeto

ERD prisma

Outros comandos

# formata o projeto
npm run format
# formata o projeto e verifca regras do lint
npm run lint
# executa testes unitarios
npm run test
# executa testes end two end
npm run test:e2e
# executa um relatorio de testes
npm run test:cov
# executa os testes unitarios em modo watch
npm run test:watch
# builda o projeto para produção
npm run build
# executa o projeto em produção após o projeto buildado
npm run start:prod

Ferramentas utilizadas

  • Nestjs
  • Prisma
  • Zod
  • dayjs
  • vitest
  • bcryptjs
  • passport-jwt
  • eslint
  • supertest
  • zod-validation-error
  • express

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published