{"id":25816627,"url":"https://github.com/jonathanpotts/recipecatalog","last_synced_at":"2025-02-28T05:37:46.632Z","repository":{"id":219172917,"uuid":"744264666","full_name":"jonathanpotts/RecipeCatalog","owner":"jonathanpotts","description":"Recipe Catalog is a multilayered .NET 8 project showcasing a Web catalog for recipes with AI capabilities.","archived":false,"fork":false,"pushed_at":"2024-11-13T17:54:52.000Z","size":12135,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-13T18:39:22.593Z","etag":null,"topics":["asp-net-core","asp-net-core-identity","azure-app-service","azure-openai","blazor","bootstrap","csharp","dotnet","dotnet-core","entity-framework-core","minimal-api","openai","semantic-kernel"],"latest_commit_sha":null,"homepage":"https://jonathanpotts-recipecatalog.azurewebsites.net","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jonathanpotts.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-17T00:03:42.000Z","updated_at":"2024-11-13T17:54:56.000Z","dependencies_parsed_at":"2024-04-09T19:48:21.732Z","dependency_job_id":"2995c179-4d5a-425b-bf3e-8dad3332e029","html_url":"https://github.com/jonathanpotts/RecipeCatalog","commit_stats":null,"previous_names":["jonathanpotts/recipebook","jonathanpotts/recipecatalog"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanpotts%2FRecipeCatalog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanpotts%2FRecipeCatalog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanpotts%2FRecipeCatalog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanpotts%2FRecipeCatalog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jonathanpotts","download_url":"https://codeload.github.com/jonathanpotts/RecipeCatalog/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241106914,"owners_count":19910909,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asp-net-core","asp-net-core-identity","azure-app-service","azure-openai","blazor","bootstrap","csharp","dotnet","dotnet-core","entity-framework-core","minimal-api","openai","semantic-kernel"],"created_at":"2025-02-28T05:37:45.996Z","updated_at":"2025-02-28T05:37:46.619Z","avatar_url":"https://github.com/jonathanpotts.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Recipe Catalog\n\n[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/jonathanpotts/RecipeCatalog/dotnet.yml?logo=github)](https://github.com/jonathanpotts/RecipeCatalog/actions/workflows/dotnet.yml) [![Codecov Code Coverage](https://img.shields.io/codecov/c/gh/jonathanpotts/RecipeCatalog?logo=codecov)](https://codecov.io/gh/jonathanpotts/RecipeCatalog)\n\nRecipe Catalog is a multilayered [.NET](https://dotnet.microsoft.com/) 8 project showcasing a Web catalog for recipes with AI capabilities.\n\nThis project contains continuous integration (CI) and continuous deployment (CD) workflows using [GitHub Actions](https://docs.github.com/actions). Code coverage reports are uploaded to [Codecov](https://codecov.io/). The web app is deployed to [Azure Web Apps (Azure App Service)](https://azure.microsoft.com/products/app-service/web/).\n\n## Projects\n\n### RecipeCatalog.AIDataGenerator\n\n[RecipeCatalog.AIDataGenerator](src/RecipeCatalog.AIDataGenerator/) is a console app that generates example data for the catalog. Technologies used:\n\n- [.NET](https://dotnet.microsoft.com/)\n    - [Generic Host](https://learn.microsoft.com/dotnet/core/extensions/generic-host)\n- [Semantic Kernel](https://learn.microsoft.com/semantic-kernel/overview/?tabs=Csharp)\n- [SkiaSharp](https://github.com/mono/SkiaSharp)\n- [Spectre.Console](https://spectreconsole.net/)\n\n### RecipeCatalog.Application\n\n[RecipeCatalog.Application](src/RecipeCatalog.Application/) is the application layer for the project. Technologies used:\n\n- [Resource-based Authorization](https://learn.microsoft.com/aspnet/core/security/authorization/resourcebased)\n- [FluentValidation](https://github.com/FluentValidation/FluentValidation)\n- Markdown ([Markdig](https://github.com/xoofx/markdig))\n- Snowflake IDs ([IdGen](https://github.com/RobThree/IdGen))\n\n### RecipeCatalog.Application.Contracts\n\n[RecipeCatalog.Application.Contracts](src/RecipeCatalog.Application.Contracts/) contains the service interfaces and DTO models for the application layer.\n\n### RecipeCatalog.BlazorApp\n\n[RecipeCatalog.BlazorApp](src/RecipeCatalog.BlazorApp/) is a Blazor web app for viewing and managing recipes. Technologies used:\n\n- [ASP.NET Core](https://dotnet.microsoft.com/apps/aspnet)\n    - [Blazor](https://learn.microsoft.com/en-us/aspnet/core/blazor)\n    - [ASP.NET Core Identity](https://learn.microsoft.com/aspnet/core/security/authentication/identity)\n    - [Library Manager (LibMan)](https://learn.microsoft.com/aspnet/core/client-side/libman)\n- [Bootstrap](https://getbootstrap.com/)\n    - [Bootstrap Icons](https://icons.getbootstrap.com/)\n    - [Dark Mode](https://getbootstrap.com/docs/5.3/customize/color-modes/)\n\n### RecipeCatalog.BlazorApp.Client\n\n[RecipeCatalog.BlazorApp.Client](src/RecipeCatalog.BlazorApp.Client/) contains the Blazor WebAssembly components for the RecipeCatalog.BlazorApp project.\n\n### RecipeCatalog.Domain\n\n[RecipeCatalog.Domain](src/RecipeCatalog.Domain/) is the domain layer for the project. Technologies used:\n\n- [Entity Framework Core](https://learn.microsoft.com/ef/core/)\n    - [Migrations](https://learn.microsoft.com/ef/core/managing-schemas/migrations/)\n    - [SQLite](https://www.sqlite.org/)\n\n### RecipeCatalog.Domain.Shared\n\n[RecipeCatalog.Domain.Shared](src/RecipeCatalog.Domain.Shared/) contains the value objects for the domain layer.\n\n### RecipeCatalog.WebApi\n\n[RecipeCatalog.WebApi](src/RecipeCatalog.WebApi/) is a REST Web API that uses the [RecipeCatalog.WebApi.Shared class library](src/RecipeCatalog.WebApi.Shared/) to provide CRUD operations for managing recipes. Technologies used:\n\n- [ASP.NET Core](https://dotnet.microsoft.com/apps/aspnet)\n    - [Minimal APIs](https://learn.microsoft.com/aspnet/core/fundamentals/minimal-apis/overview)\n    - [ASP.NET Core Identity](https://learn.microsoft.com/aspnet/core/security/authentication/identity)\n- [Swagger / OpenAPI](https://swagger.io/) ([Swashbuckle](https://github.com/domaindrivendev/Swashbuckle.AspNetCore))\n\n### RecipeCatalog.WebApi.Shared\n\n[RecipeCatalog.WebApi.Shared](src/RecipeCatalog.WebApi.Shared/) contains the minimal APIs that provide CRUD operations for managing recipes. Technologies used:\n\n- [ASP.NET Core](https://dotnet.microsoft.com/apps/aspnet)\n    - [Minimal APIs](https://learn.microsoft.com/aspnet/core/fundamentals/minimal-apis/overview)\n\n### Tests\n\n#### RecipeCatalog.Application.Tests\n\n[RecipeCatalog.Application.Tests](tests/RecipeCatalog.Application.Tests/) is a project containing tests for the [RecipeCatalog.Application](src/RecipeCatalog.Application/) project. Technologies used:\n\n- [xUnit](https://xunit.net/)\n- [Moq](https://github.com/devlooped/moq)\n\n#### RecipeCatalog.BlazorApp.Tests\n\n[RecipeCatalog.BlazorApp.Tests](tests/RecipeCatalog.BlazorApp.Tests/) is a project containing tests for the [RecipeCatalog.BlazorApp](src/RecipeCatalog.BlazorApp/) project. Technologies used:\n\n- [xUnit](https://xunit.net/)\n- [bUnit](https://bunit.dev/)\n\n#### RecipeCatalog.BlazorApp.Client.Tests\n\n[RecipeCatalog.BlazorApp.Client.Tests](tests/RecipeCatalog.BlazorApp.Client.Tests/) is a project containing tests for the [RecipeCatalog.BlazorApp.Client](src/RecipeCatalog.BlazorApp.Client/) project. Technologies used:\n\n- [xUnit](https://xunit.net/)\n- [bUnit](https://bunit.dev/)\n\n#### RecipeCatalog.Domain.Tests\n\n[RecipeCatalog.Domain.Tests](tests/RecipeCatalog.Domain.Tests/) is a project containing tests for the [RecipeCatalog.Domain](src/RecipeCatalog.Domain/) project. Technologies used:\n\n- [xUnit](https://xunit.net/)\n\n#### RecipeCatalog.WebApi.Shared.Tests\n\n[RecipeCatalog.WebApi.Shared.Tests](tests/RecipeCatalog.WebApi.Shared.Tests/) is a project containing tests for the [RecipeCatalog.WebApi.Shared](src/RecipeCatalog.WebApi.Shared/) project. Technologies used:\n\n- [xUnit](https://xunit.net/)\n- [Moq](https://github.com/devlooped/moq)\n\n#### RecipeCatalog.WebApi.Tests\n\n[RecipeCatalog.WebApi.Tests](tests/RecipeCatalog.WebApi.Tests/) is a project containing tests for the [RecipeCatalog.WebApi](src/RecipeCatalog.WebApi/) project. Technologies used:\n\n- [xUnit](https://xunit.net/)\n- [ASP.NET Core Integration Tests](https://learn.microsoft.com/aspnet/core/test/integration-tests) ([Microsoft.AspNetCore.Mvc.Testing](https://www.nuget.org/packages/Microsoft.AspNetCore.Mvc.Testing))\n\n## Seed Data\n\nSeed data was created using the [RecipeCatalog.AIDataGenerator](src/RecipeCatalog.AIDataGenerator/) project with [GPT-3.5 Turbo](https://platform.openai.com/docs/models/gpt-3-5), [Embedding V3 small](https://platform.openai.com/docs/models/embeddings), and [DALL-E 3](https://platform.openai.com/docs/models/dall-e).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonathanpotts%2Frecipecatalog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonathanpotts%2Frecipecatalog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonathanpotts%2Frecipecatalog/lists"}