Giter Club home page Giter Club logo

dirs21's Introduction

DIRS21

Introduction

DIRS21 is a restful API for an availability system for hotel management. This project implements a micro-service architecture, internally tightly cohesive DIRS21d externally loosely coupled.

Getting Started

  1. Editor Use either VS Code or Visual Studio 2019(latest release) to contribute.

  2. Dependencies

  3. Target Framework - .NET 5.0

  4. Library Fx - .NetStDIRS21dard 2.1

  5. Runtime - .NET Core 5.0.1

  6. SDK - .NET 5 Version 5.0.101

  7. Latest Nuget Packages

Solution Architecture

The solution uses Clean Code architecture. https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html

Core.Domain(Contain database configuration classes)

  1. Entity - Contain definitions for schema classes that will be used in creating collections in our document database
  2. Enums - Central location for defining constants used as properties in entities
  3. Exception - Defining a global class that will be instantiated to throw handled exceptions
  4. Infrastructure 1. Services
    • Define DateTimeService used across the application for date purposes
  5. Dependency injection - Contain an extension method used for dependency injection of mongodb client to initiate connection to the MongoDB

Core.Management(Contain logic for implementing business requirements)

  1. Common - Contain common classes reused across repositories are defined
  2. Extensions - Contain object extension methods used across the repositories
  3. Infrastructure - Contain intergration event publishers and handlers are defined
  4. Interfaces - Contains contract definition of repositories interfaces
  5. Repository - Contains implementation of generic repos used across the business logic
  6. DependencyInjection - Contain an extension method used for dependency injection of repositories, event publishers and subscribers

Services(Contain clients to our business logic either web api, background jobs, Webapps)

DIRS21.API

  1. Properties
    • Contain the configuration information, which describes how to start the ASP.NET Core application, using Visual Studio
  2. Controllers
    • Contain controllers used to define endpoints that will be accessed externally over the web
  3. Attributes
    • Contain attributes that are used to decorate controllers and views for either documentation or accessibility
  4. Common
    • Contain definition of common objects reused in api
  5. Filters
    • Used to define custom made filters used to allow code to run before or after specific stages in the request processing pipeline.
    • An exception filter that runs when exceptions are thrown
    • An modelstate filter that runs when model request submitted are not valid
    • Swagger based filters for swagger documentation
  6. Models
  7. DTOS - Contain definition for request and return objects used in our action - Contain an automapper class used to map our entities to Dtos
  8. Program - Contain logging configurations and invocation of seed methods
  9. Start - Calls the dependency injection extension methods in the Common.Domain and Common.Management project - Contain API versioning dependency injection logic - Contain filter dependency injection logic - Contain Swagger documentation logic - Contain JWT Security Pipeline logic and its dependency injection

Unit tests

- Contain unit test logic for our controllers and repositories
- Uses X unit test tool
- Uses FluentAssertion nugets for assertions
- Uses FakeItEasy nugets for mocking dependencies and objects

dirs21's People

Contributors

liberty-nmungau avatar nehemiamkuba avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.