Skip to content

This is an open-source job marketplace application, powered by micro-services ☸️ architecture and cross-platform developed 📱🖥🐳 based on .NET 6.

License

Notifications You must be signed in to change notification settings

MirolimMajidov/Jobs

Repository files navigation

Jobs

GitHub Workflow Status (branch) GitHub Workflow Status GitHub Workflow Status GitHub Workflow Status

Jobs is an open-source job marketplace application, powered by micro-services ☸️ architecture and cross-platform developed 📱🖥🐳 based on .NET 6.

Architecture overview

The architecture proposes a microservice oriented architecture implementation with multiple autonomous microservices (each one owning its own data/db) and has one shared project to work with Repository and Controller for CRUD operations, but implementing different approaches within each microservice using REST/HTTP as the communication protocol between the client apps, and supports asynchronous communication for data updates propagation across multiple services based on gRPC/HTTP2. All microservices are based on SOLID design principles and used popular modern technologies. Also, configured CI/CD pipelines using GitHub Actions for building and testing the code and publishing docker image file to the Docker Hub.

List of micro-services and infrastructure components

Service Description Build status Endpoints
1. API Gateway (Ocelot) This service is responsible for all other micro-services
2. Identity API (JWT Token, NLog logging, FW Core, gRPC, CRUD by MySQL, RabbitMQ, FluentValidation, DTO, AutoMapper, Functionality and Unit testing with MSTest) Identity management service APIs
3. Job API (NLog logging, FW Core, CRUD by SQL Server, RabbitMQ, FluentValidation, DTO, AutoMapper, Unit Testing with NUnit) This service is responsible for the main part of the current application. All CRUD operations related to Jobs will be here. APIs
4. Payment API (Serilog logging, Repocitory, CRUD by MongoDB and Redis, RabbitMQ, FluentValidation, DTO, AutoMapper, Unit Testing with xTest) Responsible for financial and payments APIs

Each microservice has its own docker image file with the latest code of master branch on my Docker Hub with :latest tag.

Getting Started

Make sure you have installed and configured Docker for Windows in your machine. After that, you can run the below commands from the the main Jobs directory and get started with the Jobs immediately.

docker-compose -f docker-compose.yml -f docker-compose.override.yml up -d

You should be able to browse different components of the application by using the below URLs :