I have an E-book that don't synchronize with the PC's browser, but works fine with the RSS. So I will use this feature, saving necessary articles in Azure Table to read them from the E-book.
Build on following Template.
- Write an MVP that return Hardcoded RSS
- Write a logic that load the data FROM Azure Table
- Write a logic that allow to load one feed INTO Azure Table
- Write a logic that allow to load multiple feeds INTO Azure Table using Batch Insert.
- Create "SharedCore" and move into it common things
- Update "Application"
- Implement Feed Removal in MVP
- Implement Batch Feed load
- Implement Batch Feed removal
- Remove MVP and Deploy to Azure
- Add Fluent Validation
- Understand Isolated Process of the Azure Function
- Get rid of Feed Object from Shared Kernel(?)
- Add Unit Test
- Create DTO for Function/Infrastructure
- Get rid of Template's code
- Remove "Shared Kernel" as there is no need for such a small project
- Work with Behaviors
- Add support of different RSS themes (Mentoring/Info)
- Add Table for keeping all available themes, and logic to work with them (List of themes)
- Handle exception when failed to remove
- Keep and Provide the RSS Headers from Infrastructure
- Add time of the Insertion for the order
- Use CI/CD tool to deploy the RSS to Azure
- Handle the Duplication by using the Link as a "Row Key"
- Allow to convert HTML to pdf and provide the links to them in RSS. As an option
- Feed Removal need to clear the PDF file
- Configure the Pre-Commit checks from here
I plan the following structure:
MVP - a simple example on which I will do the rest of the workSharedKernel - hold common things that is shared by ALL layers. Holds interfaces for Repository, and FeedItem- Domain - hold domain logic, models, etc. Should be used only by Application.
Is it necessary though? It can be moved to Application and made private. - Application - hold logic, Interfaces, etc. Used in all upper proj. **
- Infrastructure.AzureStorage - Database (Table) on base of Azure Storage.
- Web.AzureFunction - API on base of the Azure Function. Presentation App.
- Web.AzureFunction.Isolated - same as above, but using the Isolated process. Presentation App.
Works with SyndicationFeed internally to build the desired RSS that returned as XML string.
RSS Headers and Items are provided by Application.
Infrastructure works as persistence Storage.
Headers are hardcoded now, but should be also provided by Infrastructure.
[TBD]