All Projects → diegofox2 → jobofferbackend

diegofox2 / jobofferbackend

Licence: MIT license
This project is a real-world example of DDD in a backend application It applies the concept of Entity, Value Object, Root, Aggregate, Services, Repositories and Ubiquitous Language.

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to jobofferbackend

FineCodeCoverage
Visualize unit test code coverage easily for free in Visual Studio Community Edition (and other editions too)
Stars: ✭ 391 (+2506.67%)
Mutual labels:  code-coverage, report-generator, coverlet
Ddd
A Domain Driven Design framework for software simplicity in node
Stars: ✭ 244 (+1526.67%)
Mutual labels:  ddd, ddd-architecture
Typescript Ddd Skeleton
🟨 TypeScript DDD Skeleton: Bootstrap your new projects or be inspired by this example project
Stars: ✭ 240 (+1500%)
Mutual labels:  ddd, ddd-architecture
dddplus-archetype-demo
♨️ Using dddplus-archetype build a WMS in 5 minutes. 5分钟搭建一个仓储中台WMS!
Stars: ✭ 56 (+273.33%)
Mutual labels:  ddd, ddd-architecture
Symfony Ddd Wishlist
Wishlist, a sample application on Symfony 3 and Vue.js built with DDD in mind
Stars: ✭ 172 (+1046.67%)
Mutual labels:  ddd, ddd-architecture
Library
This is a project of a library, driven by real business requirements. We use techniques strongly connected with Domain Driven Design, Behavior-Driven Development, Event Storming, User Story Mapping.
Stars: ✭ 2,685 (+17800%)
Mutual labels:  ddd, ddd-architecture
awesome-software-architecture
A curated list of awesome articles, videos, and other resources to learn and practice software architecture, patterns, and principles.
Stars: ✭ 1,594 (+10526.67%)
Mutual labels:  ddd, ddd-architecture
Nlayerappv3
Domain Driven Design (DDD) N-LayeredArchitecture with .Net Core 2
Stars: ✭ 138 (+820%)
Mutual labels:  ddd, ddd-architecture
kanban core extension
DDD on Rails Example
Stars: ✭ 29 (+93.33%)
Mutual labels:  ddd, ddd-architecture
silex-ddd-skeleton
A simple skeleton of silex application using ddd arquitecture
Stars: ✭ 19 (+26.67%)
Mutual labels:  ddd, ddd-architecture
eShopOnWeb
Sample ASP.NET Core 6.0 reference application, powered by Microsoft, demonstrating a layered application architecture with monolithic deployment model. Download the eBook PDF from docs folder.
Stars: ✭ 8,250 (+54900%)
Mutual labels:  ddd, ddd-architecture
Event Sourcing Jambo
An Hexagonal Architecture with DDD + Aggregates + Event Sourcing using .NET Core, Kafka e MongoDB (Blog Engine)
Stars: ✭ 159 (+960%)
Mutual labels:  ddd, ddd-architecture
Php Ddd Skeleton
🐘🚀 PHP DDD Skeleton: Bootstrap your new projects or be inspired by this example project
Stars: ✭ 152 (+913.33%)
Mutual labels:  ddd, ddd-architecture
Run Aspnetcore
A starter kit for your next ASP.NET Core web application. Boilerplate for ASP.NET Core reference application, demonstrating a layered application architecture with applying Clean Architecture and DDD best practices. Download 100+ page eBook PDF from here ->
Stars: ✭ 227 (+1413.33%)
Mutual labels:  ddd, ddd-architecture
Java Ddd Skeleton
♨️ DDD in Java skeleton & examples. Course:
Stars: ✭ 140 (+833.33%)
Mutual labels:  ddd, ddd-architecture
Netcorekit
💗 A crafted toolkit for building cloud-native apps on the .NET platform
Stars: ✭ 248 (+1553.33%)
Mutual labels:  ddd, ddd-architecture
Dev Stuff
😎 Programming stuff for everyone. Collection of articles, videos about architecture, Domain Driven Design, microservices, testing etc.
Stars: ✭ 105 (+600%)
Mutual labels:  ddd, ddd-architecture
Dddplus
🔥 A lightweight flexible development framework for complex business architecture with full ecosystem!轻量级业务中台开发框架,中台架构的顶层设计和完整解决方案!
Stars: ✭ 107 (+613.33%)
Mutual labels:  ddd, ddd-architecture
nstate
A simple but powerful react state management library with low mind burden
Stars: ✭ 11 (-26.67%)
Mutual labels:  ddd, ddd-architecture
ddd-referenz
Deutsche Übersetzung der DDD Referenz von Eric Evans
Stars: ✭ 58 (+286.67%)
Mutual labels:  ddd, ddd-architecture

Coverage Status

Job Offer Backend

This project is a real-world example of DDD in a backend application

It applies the concept of Entity, Value Object, Root, Aggregate, Services, Repositories and Ubiquitous Language

There are some classic unit tests based on Services but also there are some tests over domain entities as well

See Class Diagram

Also, this project doesn't use interfaces like many projects do because in practice they are not really needed to do Unit Testing neither Inversion of Control. To go deeper on this topic, read Fake Abstractions and Header Interface

Data layer

This project uses MongoDB as a database engine through MongoDriver for C#

Nowadays, new projects do not need relational databases to store data. Instead, NoSQL databases like Mongo let you reduce a lot of code because ORM's like both Entity Framework and Dapper are no longer necessary on this paradigm. In addition, NoSQL databases are really much faster than relational databases, and most of their important features like Constraints, Triggers, Indexes, Security, Mirror Replication and Load Balance now are available for main NoSQL databases, like MongoDB.

How to run it

Download MongoDB and install it with default credentials because the project use it as it is. Otherwise, you will need to update the credentials into the project.

You must to run the console application "InitialDataCreator" so that you have a basic data set preloaded in your mongo database.

Before you set as startup proyect "JobOfferBackend.WebAPI" and run it, you have to be sure you have installed .Net Core SDK 2.2

This WebAPI project is running Swagger in order to see and test the endpoints. You only have to open the browser and go to localhost:[your port]/swagger.

Code Coverage

In order to create code coverage reports, this project also uses Coverlet and Report Generator, which can be included in some build pipelines like Azure Devops

Create a .bat file with the following script in order to execute all the tests and see the code coverage in Chrome

Remember to replace the things required in this script. This script runs on Windows

:: THIS INSTALL COVERLET AS GLOBAL

dotnet tool install --global coverlet.console

:: THIS INSTALL REPORT GENERATOR AS GLOBAL

dotnet tool install -g dotnet-reportgenerator-globaltool

:: THIS INSTALL COVERALLS.NET

dotnet tool install -g coveralls.net --version 1.0.0

:: REPLACE USING THE FOLDER OF THE SOLUTION

CD C:\Fuentes\JobOffersBackendDotNet\jobofferbackend

:: DELETE PREVIOUS CODE COVERAGE FILES AND REPORT

RMDIR C:\SourceCode\JobOffersTestResult /S /Q

:: REPLACE D: WITH THE DISK FOR SAVING THE COVERAGE REPORT

dotnet test JobOfferBackendDotNet.sln /p:CollectCoverage=true /p:CoverletOutput=D:\TestResults\Coverage\ /p:MergeWith="D:\TestResults\Coverage\coverage.json" /p:CoverletOutputFormat=\"cobertura,json\" -m:1

:: REPLACE D: WITH THE DISK FOR READING THE COVERAGE REPORT

reportgenerator "-reports:D:\TestResults\Coverage\coverage.cobertura.xml" "-targetdir:D:\TestResults\Coverage\CodeCoverageReport" -reporttypes:HtmlInline

:: DEPLACE THE SOURCE OF CHROME.EXE AND THE PATH OF THE REPORT GENERATED

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" "D:\TestResults\Coverage\CodeCoverageReport\index.htm"

PAUSE

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].