diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..a13b1c2 --- /dev/null +++ b/.env.example @@ -0,0 +1,9 @@ +POSTGRES_DB=ibeer +POSTGRES_USER=admin +POSTGRES_PASSWORD=1B33R_eC0MM3RC3 +DATABASE_URL="postgresql://admin:1B33R_eC0MM3RC3@psql:5432/ibeer?schema=public" + +MONGO_INITDB_ROOT_USERNAME=admin +MONGO_INITDB_ROOT_PASSWORD=1B33R_eC0MM3RC3 +MONGO_INITDB_DATABASE=ibeer +MONGO_URL="mongodb://admin:1B33R_eC0MM3RC3@mongo:27017/ibeer?authSource=admin" diff --git a/.gitignore b/.gitignore index 70e3812..4931fda 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,9 @@ npm-debug.log* # db db/ +# env +.env + # Dependencies node_modules/ diff --git a/README.md b/README.md index e69de29..274c25a 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,62 @@ +# ibeer - E-commerce de Cerveja Artesanal + +Versão: 1.0.0 + +## Descrição + +O **ibeer** é um e-commerce de cerveja artesanal desenvolvido em Node.js, utilizando as práticas avançadas de Domain Driven Design (DDD), CQRS e Clean Architecture. O projeto conta com dois bancos de dados, um para operações de escrita (PostgreSQL) e outro para operações de leitura (MongoDB). A harmonização desses bancos de dados é coordenada por um event bus customizado, promovendo consistência e integridade nos dados. + +## Bounded Contexts + +O **ibeer** é composto por 2 Bounded Contexts: + +- **Beer**: responsável por gerenciar as cervejas do e-commerce. + +- **Order**: responsável por gerenciar os pedidos de cerveja. + +## Estrutura do Projeto + +[module]/ +|-- presentation/ +|-- application/ +| |-- command/ +| |-- query/ +| |-- event/ +|-- domain/ +| |-- aggregate/ +| |-- model/ +| |-- value-object/ +| |-- repository/ +|-- infra/ +|-- repository/ + +## Tecnologias Utilizadas + +- Node.js +- TypeScript +- Express +- Prisma +- Mongoose +- PostgreSQL +- MongoDB +- Docker +- Docker Compose + +## Instalação + +Certifique-se de ter o Docker e o Docker Compose instalados em seu sistema. + +```bash +# Clone o repositório +git clone https://github.com/seu-usuario/ibeer.git + +# Navegue até o diretório do projeto +cd ibeer + +# Inicie os contêineres Docker +docker-compose up -d +``` + +## Configuração + +o **ibeer** utiliza PostgreSQL (ORM Prisma) para operações de escrita e MongoDB (ORM Mongoose) para leitura. Certifique-se de configurar corretamente as variáveis de ambiente no arquivo `.env` antes de iniciar o projeto. Veja o arquivo `.env.example` para mais detalhes.