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.
- 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
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 -dsera executado em ambiente de desenvolvimento
npm run start:devObservaçã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 opensslgera a chave privada
openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048gera a chave publica
openssl rsa -pubout -in private_key.pem -out public_key.pemObservação, caso esteja no windows é necessário instalar a lib base64 pelo chocolatey, caso não tenha instalado rode o comando abaixo
choco install base64base64 -i private_key.pem -o private_key-base64.txtbase64 -i public_key.pem -o public_key-base64.txt# 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- Nestjs
- Prisma
- Zod
- dayjs
- vitest
- bcryptjs
- passport-jwt
- eslint
- supertest
- zod-validation-error
- express