Exercise Recipe Collection
Exercise Recipe Collection
Erstelle eine Anwendung zur Verwaltung von Rezepten. Rezepte können in Kategorien eingeteilt werden. Ein Rezept kann dabei in null, einer, oder mehreren Kategorien vorkommen. Zum Beispiel könnte ein und dasselbe Gericht sowohl in der Kategorie “Diätgerichte” also auch in der Kategorie “Gemüse” vorkommen.
Für Rezepte und Kategorien sollen folgende Eigenschaften gespeichert werden. Die IDs sind jeweils generierte Surrogatschlüssel.
Recipe:
- Recipe ID
- Title
- Description
- Ingredients
- Instructions
- Cooking Time
- Difficulty Level
Category:
- Category ID
- Name
- Description
1. Projektstruktur
Unterteile deine Solution in zumindest 4 Projekte: Model, Domain, Api, Web. Du kannst weitere Projekte hinzufügen sofern nötig oder sinnvoll.
- Model:
- Entity Framework Db Context
- Entities
- Domain
- Repositories
- API
- Asp.Net Core Controllers (REST)
- Web
- Blazor Client
2. Datenbankmodel
Erstelle den DbContext und alle benötigten Klassen für Entitäten. Lege eine Datenbank an und sorge dafür dass alle benötigten Tabellen vorhanden sind.
3. Repositories
Verwende das Interface IRepository, erstelle eine Basisklasse RepositoryBase und implementiere die Repositories für Recipe und Category.
4. API
Erstelle eine REST API unter der Verwendung von ASP.NET Core Controller. Verwende für den Zugriff auf die Datenbank rein die Repositories, und nicht direkt den Datenbank-Context. Implementiere einen generischen Controller und davon abgeleitet einen RecipeController und CategoryController.
5. Web Client
Erstelle einen Blazor Web Client der folgende Funktionen unterstützt:
- Anzeige einer Liste von Rezepten
- Klick auf Rezept -> Navigation zu Rezept-Detailansicht
- Anzeige einer Liste von Kategorien
- Klick auf Kategorie -> Anzeige einer Liste von Rezepten dieser Kategorie
- Es soll möglich sein die gewählte Kategorie wieder zu entfernen -> Rückkehr zur Liste der Kategorien
- Die ausgewählte Kategorie soll von der Applikation gespeichert werden. Wenn das nächste mal zur Kategorieansicht navigiert wird, soll noch immer die zuletzt ausgewählte Kategorie aktiv sein und die zugehörigen Rezepte angezeigt werden, unabhängig davon welche Seite zuvor angezeigt wurde.
- Rezepte und Kategorien erstellen und löschen
- Rezepte Kategorien zuordnen, bzw. Zuordnungen auflösen
- Suchfunktion (Eingabe in ein Textfeld).
- Ergebnis: Anzeige von passenden Rezepten
- Durchsuchte Felder: Titel, Description, Kategorie