{"id":17484627,"url":"https://github.com/odddotnet/sample-aspiretodoapp","last_synced_at":"2026-05-01T01:31:17.078Z","repository":{"id":258412255,"uuid":"867789568","full_name":"OddDotNet/Sample-AspireTodoApp","owner":"OddDotNet","description":"Sample application showing how to write an ODD test suite using OddDotNet and .NET Aspire.","archived":false,"fork":false,"pushed_at":"2024-10-16T22:07:09.000Z","size":25,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-18T22:16:04.975Z","etag":null,"topics":["csharp","observability","odddotnet","opentelemetry","opentelemetry-dotnet"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OddDotNet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-10-04T18:13:11.000Z","updated_at":"2024-10-16T22:07:13.000Z","dependencies_parsed_at":"2024-10-18T22:26:19.357Z","dependency_job_id":null,"html_url":"https://github.com/OddDotNet/Sample-AspireTodoApp","commit_stats":null,"previous_names":["odddotnet/sample-aspiretodoapp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OddDotNet%2FSample-AspireTodoApp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OddDotNet%2FSample-AspireTodoApp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OddDotNet%2FSample-AspireTodoApp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OddDotNet%2FSample-AspireTodoApp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OddDotNet","download_url":"https://codeload.github.com/OddDotNet/Sample-AspireTodoApp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246042003,"owners_count":20714150,"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":["csharp","observability","odddotnet","opentelemetry","opentelemetry-dotnet"],"created_at":"2024-10-19T01:04:57.977Z","updated_at":"2026-05-01T01:31:17.033Z","avatar_url":"https://github.com/OddDotNet.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sample-AspireTodoApp\nSample application showing how to write an ODD test suite using OddDotNet and .NET Aspire.\n\n## Inspiration\nThis sample project, along with OddDotNet/OddDotProto/OddDotCSharp, was inspired by a presentation given by\n[Martin Thwaites](https://github.com/martinjt) at the NDC London 2023 conference. The presentation can be \nfound [here](https://youtu.be/prLRI3VEVq4), and the original code repository found \n[here](https://github.com/martinjt/todo-odd/tree/main).\n\nThis sample shows how the OddDotNet OpenTelemetry test harness, along with the OddDotCSharp client and builder,\ncan be used to write integration and E2E automated tests using Observability Driven Development. \n\nThe OddDotNet OpenTelemetry test harness is a docker container that acts as an otel collector and provides\na gRPC service for querying spans that have been generated by your application(s). The container is found\n[here](https://github.com/OddDotNet/OddDotNet/pkgs/container/odddotnet).\n\nIn addition, the OddDotCSharp repository provides a NuGet package called OddDotNet.Client, which provides\na pre-built gRPC client for communicating with the container, and a SpanQueryRequestBuilder for \nsimplifying the creation of queries against the spans your application has generated. \n\n## Prerequisites\n1. .NET Aspire. For setup instructions, see [Setup and tooling](https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/setup-tooling?tabs=linux\u0026pivots=dotnet-cli).\n2. Docker.\n\n## Getting Started\n1. Open the solution.\n2. There is a single test `/tests/TodoTests/GetTodoShould/UseCacheOnSecondRequest()` that demonstrates the functionality.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fodddotnet%2Fsample-aspiretodoapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fodddotnet%2Fsample-aspiretodoapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fodddotnet%2Fsample-aspiretodoapp/lists"}