Skip to content

RSS/Atom feed reader sample application project. Supports WEB, Mobile, Desktop and Console user interfaces.

License

Notifications You must be signed in to change notification settings

melihercan/FeedReader

Repository files navigation

FeedReader

WEB UI (Blazor WASM):

alt text

WEB UI (Blazor server side):

alt text

Desktop UI - Windows (ElectronNET):

alt text

Mobile UI - Android (XamarinForms):

Mobile UI - iOS (XamarinForms):

Console UI (.NET Core worker):

alt text

Block diagram:

alt text

Feed Reader is a sample project. The main goal of this application is to apply the Clean Architecture by Robert C. Martin aka Uncle Bob principles to create a well structured system. As Uncle Bob states the heart of the application - business logic is completely decoupled from the rest of modules. It is testable, independent of UIs, independent of databases and independent of any external agencies. Everything else other than the business logic (Core) is detail, a plugin and can be replaced without effecting the Core.

Different UI modules use the same Core through messaging (MediatR). All conveivable UI types have been implemented, namely WEB, Mobile, Desktop and Console.

All service and database accesses to the Core are provided via interfaces. Each interface has been implemented as a plugin in Infrastructure layer and can be replaced in the future without effecting the rest of the system. Infrastructure modules are using Infrastructure server as backend.

Application employs the following concepts and frameworks:

  • Clean Architecture
  • .NET Core
  • Blazor
  • Xamarin
  • WebAPI
  • MediatR
  • Identity Server
  • Reactive Extensions
  • OAUTH2/OIDC and social media authentication

Core Layer (Domain and Application)

This is the core of the application. It contains:

  • Entities
  • Use Cases
  • Interfaces

Infrastructure

Implementation of the interface groups:

  • Feed
  • Data Repositrory
  • Token Repository
  • User

UserInterfaces

This layer presents user interfaces:

  • WEB UI
  • Mobile UI
  • Desktop UI
  • Console UI

License

This project is licensed with the MIT license.

About

RSS/Atom feed reader sample application project. Supports WEB, Mobile, Desktop and Console user interfaces.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published