#### **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 dienen, einen groben Einblick in meine Programmierkünste gewähren.**
#### **Es soll auch aufzeigen, in welche Layer ich meine Applikationen gewöhnlich 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
