Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/luc-ribeiro/forum-clean-ddd-nest

Forum API developed to apply fundamentals of Domain-Driven Design, Clean Architecture and SOLID. The architecture was designed using DDD concepts, applying controllers, use cases, unit and E2E tests, domain events, relationships, uploads, cache and other concepts. Built with Nest.js.
https://github.com/luc-ribeiro/forum-clean-ddd-nest

clean-architecture cloudflare ddd nestjs prisma redis vitest zod

Last synced: about 2 months ago
JSON representation

Forum API developed to apply fundamentals of Domain-Driven Design, Clean Architecture and SOLID. The architecture was designed using DDD concepts, applying controllers, use cases, unit and E2E tests, domain events, relationships, uploads, cache and other concepts. Built with Nest.js.

Awesome Lists containing this project

README

        


Forum Clean Architecture DDD Nest.js





Click here to view the english version.


## 💻 Projeto

Este projeto implementa a camada de infraestrutura do [Forum Clean DDD Node](https://github.com/luc-ribeiro/forum-clean-ddd-node) construído com Nest.js.

**Funcionalidades**

- **Criação e Edição de Perguntas:** Os usuários podem criar e editar perguntas. As perguntas podem conter anexos, como imagens e PDFs.
- **Respostas e Comentários:** Outros usuários podem responder às perguntas ou fazer comentários. Eles também podem adicionar anexos às suas respostas.
- **Upload de Anexos:** Os anexos são carregados para uma instância do Cloudflare R2.
- **Cache:** O Redis é usado para cachear os detalhes das perguntas, melhorando o desempenho do sistema.

## 🚀 Tecnologias

- **Nest.js**
- **Node.js**
- **TypeScript**
- **Prisma ORM**
- **Redis:** Sistema de cache para otimizar o acesso aos detalhes das perguntas.
- **Vitest**
- **Cloudflare R2:** Armazenamento dos arquivos dos anexos.

## :page_facing_up: Como usar

- Clone este repositório:

```sh
$ git clone https://github.com/luc-ribeiro/forum-clean-ddd-nest.git
```

- Configure as variáveis do ```.env``` na raiz, seguindo o arquivo ```src/infra/env/env.ts```

- Instale as dependências:

```sh
$ npm install
```

- Construa o container Docker:

```sh
$ docker compose up -d
```

- Execute os testes:

```sh
# Para testes unitários
$ npm test

# Para testes E2E
$ npm run test:e2e
```

- Execute o projeto:

```sh
$ npm run start:dev
```