/TaskoMask

Task management system based on .NET 6 with Microservices, DDD, CQRS, Event Sourcing and Testing Concepts

Primary LanguageC#MIT LicenseMIT

What is TaskoMask?

build and test GitHub issues

TaskoMask is a free and open-source task management system based on .Net. The primary goal of this project is to be an effort to show how we can design and develop a real software product based on advanced concepts like DDD, TDD, BDD, Microservices, etc. Where the experience of using them in a real product is mostly hidden behind software companies. Please take a look at its wiki!

Try it online: Website - User Panel - API

taskomask website

Documentation

Plan and Progress

All information presented after this section are the final goal and our big picture. Maybe at this time some of them are not ready yet. To see the plan and progress, please take a look at the following items:

Design

🔴Work is in progress

development architecture

Implementation

  • Back-end:

    click for details
  • Front-end:

    click for details
    • Blazor
      • Blazor Server
        • Cookie Authentication without ASP.NET Identity
        • It was Blazor Server befor refactoring it to WebAssembly (browse the codes here)
      • Blazor WebAssembly (standalone)
        • JWT Authentication
      • Comunication between components
      • Local Storage
      • Consume REST API
      • Retry using HttpClientRetryHelper
      • Handle Drag and Drop
      • Using Modal, Toast, etc.
    • .HTML
    • CSS
    • JavaScript
    • JQuery
    • Bootstrap
    • Jquery.noty
    • Chart.js
  • Some other Features:

    click for details
    • Caching Behavior using Pipeline Pattern
    • Validation Behavior using Pipeline Pattern (Check both Fluent Validation and Data Annotation Validation)
    • Event Storing Behavior using Pipeline Pattern
    • Exception Handling
    • Cookie Authentication
    • JWT Authentication
    • Role Permission Base User Management without ASP.NET Identity
    • Swagger UI with JWT Support

Contributing

Contributions, issues, and questions are welcome. Any contributions you make are greatly appreciated.

Please see the Contribution Guide and follow the instructions to be a part of this project.

This project exists thanks to all the people who contribute.

GitHub Contributors Image

Articles And Tutorials

Supporting

We work hard to make something useful for .NET community, so please give a star ⭐ if this project helped you! We need your support by giving a star or contributing or sharing this project with anyone who can benefit from it.

Author & License

This project is developed by Hamed Shirbandi under MIT licensed. Find Hamed around the web and feel free to ask your questions.

LinkedInInstagramGitHubMediumNugetEmailTelegramTwitter

Change logs

2023
  • Feb, 2023

    • Simplify Write Service Architecture
    • Implement Unit Tests for Task Services
    • Implement Integration Tests for Task Services
  • Jan, 2023

    • Extract Task Write Service
    • Extract Task Read Service
    • Remove Monolith Service
    • Simplify Write Service Architecture
2022
  • Dec, 2022

    • Extract Board Write Service
    • Extract Board Read Service
    • Implement Integration Tests for Board Services
    • Implement Unit Tests for Board Services
    • Handle RPC requests by gRPC
    • Extract API Gateway Aggregator
    • Complete API Gateway Configs by Ocelot
  • Nov, 2022

    • Implement Unit Tests for Owner Services
    • Implement Integration Tests for Owner Services
  • Oct, 2022

    • Extract Owner Write Service
    • Extract Owner Read Service
    • Handle Messaging by RabbitMQ
  • Sep, 2022

    • Extract Identity Service
    • Add IdentityServer as IDP
    • Add ASP.NET Identity
    • Add User Panel API Gateway
    • Refactor to Clean Architecture
    • Follow Vertical Slice Architecture
    • Follow Use Case Driven Development
  • Aug, 2022

    • Migrate from Monolith to Microservices
  • July, 2022

    • Convert UserPanel from Blazor Server to Blazor WebAssembly
    • Complete the functionalities for single user usage
  • Apr, 2022

    • Implement Unit Tests
    • Implement Integration Tests
    • Implement Acceptance Tests
    • Implement API Tests
    • Implement UI Tests
  • Jan, 2022

    • Full refactor Domain model with DDD concepts
    • Separate Domain Model and Data Model
    • Separate Read Side and Write Side Database
2021
  • Dec, 2021

    • Upgrade to .NET 6
  • Nov, 2021

    • Convert user panel from ASP.NET MVC to Blazor Server
  • Oct, 2021

    • Implement admin panel with ASP.NET MVC
    • Implement administration subdomain
  • Aug, 2021

    • Remove Asp.net Identity
    • Add cookie authentication
    • Add JWT authorization
    • Implement API with ASP.NET Web API
  • Jul, 2021

    • Full refactore
2020
  • Nov, 2020

    • Upgrad from net 3.1 to net 5
    • Implement user panel with ASP.NET MVC
  • Oct, 2020

    • Implement Website with ASP.NET MVC
    • Implement Anemic Domain Model
    • Create Repository