Dieses Projekt spiegelt einen Stand vom 01.11.2022 meines persönlichen Crawling-Projektes wider.
Die Dateien sind nicht final und wurden aus Lizenzgründen und privaten Gründen teilweise abgeändert.
Das Repository soll lediglich einen groben Einblick in meine Programmierkünste gewähren.
Es soll auch aufzeigen, in welche Layer ich meine Applikationen in der Regel unterteile und welche Coding Conventions ich verfolge.

### **Das Projekt beinhaltet:**

**.Common** - *Class library (.netstandard 2.0)*

- vereinheitlicht Models für typsicheren und effizienten Austausch


**.Core** - *Class library (.netstandard 2.0)*

- Grundlogik für HTTP Requests an die zu crawlende Webseite


**.DataBase** - *Class Library (.net 6.0)*

- Datenbanklayer für vereinfachte CRUD Operationen, wird von .WebAPI konsumiert


**.PhilExampleMobile** - *(Xamarin.Forms)*
**.PhilExampleMobile.Android** - *(Xamarin.Android)*
**.PhilExampleMobile.iOS** - *(Xamarin.iOS)*

- Mobile App für den User gedacht, um Crawl-Aufträge zu verwalten


**.Scheduler** - *Class Library (.net 6.0)*

- beinhaltet generische Objekte um Aufgaben im Hintergrund (ggf. Backgroundthreads) zu erledigen, Wird als schlichter Loadbalancer für die User-Crawl-Aufträge benutzt und von .WebAPI konsumiert


**.TCPAPI** - *Console App (.net 6.0)*

- fungiert als TCPServer und kann von .PhilExampleMobile konsumiert werden, um zügig über eine TCP Verbindung Crawl-Ergebnisse zu versenden um letztendlich den User auf direktem Weg zu benachrichtigen
- dieses Projekt ist eingefroren. Es wurde überflüssig, da ich mich für ein Benachrichtigungssystem über Telegram entschlossen habe


**.WebAPI** - *ASP.NET Core App (.net 6.0)*

- RESTful WebAPI die von .PhilExampleMobile konsumiert wird um Crawl-Aufträge anzulegen, und letztendlich in der Datenbank von .DataBase zu speichern.
- zuständig für das Verwalten der User und Crawl-Aufträge.
- implementiert auch die WTelegramClient-Library über welche der User informiert werden kann.


Author: Philipp Marx
