TaskoMask is a free and open source task management system based on .Net. This project is online and everyone can use it as a team member or project owner. But the main goal of this project is to be an effort to show how can we clearly implement software technologies and patterns by .Net so this can be used by developers how look for a real example project with real challenges. Take a look at it's wiki!
We are trying to document all important information so you can use them to get more information about what we did and how we did and why! There is a list of our documentation:
-
This can be used by developers who want to know more about website, user panel and admin panel or can be used by end users who want to use the TaskoMask application to manage their project's tasks. TaskoMask source contains 3 web project as below:
- TaskoMask.Web: This layer implemented by Blazor and it contains a website and a user panel for managing user's tasks. This layer uses REST API provided by TaskoMask.Web.Api and make an interactive web client.
- TaskoMask.Web.Admin: This layer implemented by ASP.NET MVC and it contains a panel to manage whole TaskoMask data by administrators.
- TaskoMask.Web.Api: This layer implemented by ASP.NET Web API and it contains REST API services for TaskoMask clients.
-
This is for developers to know about the domain model and understand the entities and relations and rules and variants and so on. By reading this doc you can understand the business of this project.
-
This doc is about the architecture, pipelines,technologies, patterns, approaches, decisions and other things we implemented in this project. We talk about our choices and decisions and challenges.
-
This is a live rest api service documentation generated by swagger and it can be used by front-end or mobile developers to make a client app. We use it in TaskoMask.Web layer to make a web client by Blazor.
-
- .Net 5
- C#
- ASP.NET Web API
- ASP.NET MVC
- MongoDB
- Redis
- SignalR (soon)
- MediatR
- AutoMapper
- FluentValidation
- StructureMap
- Swagger
- MsTest
- MvcPagedList.Core
- RedisCache.Core
- DbLogger.Core
-
- Blazor (soon)
- .HTML
- CSS
- Java Script
- JQuery
- Bootstrap
- Signalr.js
- Jquery.noty
- Chart.js
-
- Onion Architecture
- DDD
- CQRS
- Event Sourcing
- Notification
- Repository
- CRUD,Anemic Model (for less important subdomains)
- Unit Test
-
- Caching Behavior
- Validation Behavior
- Event Storing Behavior
- Application Exception Handler
- In Memory Bus
- Cookie Authentication
- JWT Authentication
- Role Permission Base User Management
- Swagger UI with JWT Support
- Combined Validation (Fluent, Data Annotation)
- Automatic DB Logger
Contributions, issues and feature requests are welcome. Feel free to check issues page if you want to contribute. Any contributions you make are greatly appreciated. Please check the issues and projecs pages before anything.
- Give a Star
- Fork the Project
- Create your Feature Branch
- Commit your Changes
- Open a Pull Request
This project exists thanks to all the people who contribute.
We work hard to make something useful to you so please give a star ⭐ if this project helped you! We need your support by giving a star or by contributing or telling about us to your friends.
This project is developed by Hamed Shirbandi under MIT licensed. Find Hamed around the web and feel free to ask your question.
-
- Start admin panel with ASP.NET MVC
- Implement administration subdomain by CRUD
-
- Remove Asp.net Identity from project
- Add cookie authentication
- Add jwt authorization
-
- Full refactore
-
- upgrade from net 3.1 to net 5
-
- Repository Created