Aplicação para fins de estudos utilizando diversas tecnologias, simulando um sistemas de vendas com catálogo de produtos, clientes, logística, marketing e pagamentos.
O projeto é desenvolvido em C# utilizando o framework .NET Core 3.1 no seu back-end, e possívelmente será utilizado Angular para o front-end.
No momento atual está implementado alguns padrões, técnicas e modelagem seguindo:
- DDD
- Clean Code
- Design Patterns
- Domain Notifications
Também utiliza algumas bibliotecas como:
- Swagger (para documentação da API)
- JWT (para autenticação de usuários)
- AutoMapper (para mapeamento de entitades à viewmodel)
- MongoDB Driver
- Entity Framework Core (para os bancos de dados relacionais)
- Pomelo MySQL (para integração do entity framework core com o MySQL)
- Polly (atualmente apenas nos serviços de cache)
- MediatR (para as domain notifications)
- FluentValidation (para validação de entidades)
Os bancos de dados utilizados:
- MongoDB
- MySQL
- Redis (para serviços de cache)
Ferramentas e bibliotecas utilizadas nos testes:
- xUnit
- Bogus
- FluentAssertions
- Moq
- AutoMoq
Também há diversas decisões técnicas e alguns débitos técnicos destacados dentro das seções de cada projeto, segue:
Para executar a aplicação completa:
git clone https://github.com/pedrogutierres/rumox.git
cd rumox
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d
ou execute o arquivo build-dev.sh
Para levantar o ambiente de testes para a execução dos testes de integração, segue como fazer
ELK (Logs) ainda não habilitado por padrão, mas pode ser utilizado removendo o parâmetro "Logging:EnterpriseLog:Disabled" do appsettings.Development.json e utilizando a aplicação pelo Visual Studio junto com a infra pelo docker. Será ajustado em breve
Segue alguns frameworks, bibliotecas, padrões, tecnologias e outros serviços, que possívelmente serão adotados:
- CQRS
- RabbitMQ
- Kafka
- Dapper
- RavenDB
- SQL Server
- Firebase
- Neo4J
- MS Orleans
- Chatbot
- Testes de carga com JMeter (e análise APDEX)