{"id":26898037,"url":"https://github.com/falberthen/pokegraph","last_synced_at":"2025-07-24T12:19:18.858Z","repository":{"id":112286105,"uuid":"458411991","full_name":"falberthen/Pokegraph","owner":"falberthen","description":"An interactive Pokémon catalog built with .NET, GraphQL, and Vue 3","archived":false,"fork":false,"pushed_at":"2023-09-18T01:59:00.000Z","size":13048,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-01T05:08:06.979Z","etag":null,"topics":["csharp","ddd","graphql","hotchocolate-graphql","netcore","typescript","vue3"],"latest_commit_sha":null,"homepage":"https://falberthen.github.io/posts/pokegraph-pt1/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/falberthen.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}},"created_at":"2022-02-12T03:43:12.000Z","updated_at":"2025-01-22T19:53:07.000Z","dependencies_parsed_at":"2023-09-09T22:41:45.013Z","dependency_job_id":null,"html_url":"https://github.com/falberthen/Pokegraph","commit_stats":null,"previous_names":["falberthen/pokegraph"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/falberthen/Pokegraph","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/falberthen%2FPokegraph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/falberthen%2FPokegraph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/falberthen%2FPokegraph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/falberthen%2FPokegraph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/falberthen","download_url":"https://codeload.github.com/falberthen/Pokegraph/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/falberthen%2FPokegraph/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266842903,"owners_count":23993814,"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","status":"online","status_checked_at":"2025-07-24T02:00:09.469Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","ddd","graphql","hotchocolate-graphql","netcore","typescript","vue3"],"created_at":"2025-04-01T05:08:11.637Z","updated_at":"2025-07-24T12:19:18.832Z","avatar_url":"https://github.com/falberthen.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Build](https://github.com/falberthen/pokegraph/actions/workflows/pokegraph.yml/badge.svg)\n[![License](https://img.shields.io/github/license/falberthen/pokegraph.svg)](LICENSE)\n\n# Pokégraph - .NET 7, GraphQL, HotChocolate and Vue 3 (composition API)\n\n\u003cp align=\"center\"\u003e\n  \u003cbr /\u003e\n\u003cimg src=\"https://github.com/falberthen/pokegraph/blob/master/src/pokegraph.spa/src/assets/pokegraph-logo.png?raw=true\"/\u003e\n\u003c/p\u003e\n\nPokégraph is my showcase of building a GraphQL-based API with .NET 7, front-ended by a very lightweight SPA built with Vue 3 (composition API) and Apollo.\nIt comes with an SQLite database loaded with 151 monsters but also allows you to perform queries for listing and mutations for adding or updating the existing ones.\n\n\u003cp\u003e\n\tPokémon is © 1995-present Nintendo, The Pokémon Company, Game Freak, Creatures Inc.\n\t\u003cbr/\u003eThis project does not claim to own any characters, concepts or artwork.\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n## Screenshots\n\u003cimg src=\"https://github.com/falberthen/pokegraph/blob/master/src/pokegraph.spa/images/pokegraph.gif\" target=\"_blank\"/\u003e\n\n\u003cimg src=\"https://github.com/falberthen/pokegraph/blob/master/src/pokegraph.spa/images/pokegraph-search.gif\" target=\"_blank\"/\u003e\n\n#### Mutations\n\n\u003cimg src=\"https://github.com/falberthen/pokegraph/blob/master/src/pokegraph.spa/images/pokegraph-mutation.png\" target=\"_blank\"/\u003e\n\n\u003cimg src=\"https://github.com/falberthen/pokegraph/blob/master/src/pokegraph.spa/images/pokegraph-mutation.gif\" target=\"_blank\"/\u003e\n\n\u003cbr/\u003e\n\n## Architecture \n\n### Domain\nThis is where the domain models and business logic are defined. You may understand a bit more about the Pokémon domain by reading the code and understanding how the smaller pieces compose the aggregate.\n\u003cbr/\u003e\n\n### Api\nA .NET 7 minimal API implementing GraphQL server to perform Queries, Mutations, and Subscriptions. It's in charge of using the infrastructure to perform database operations and return mapped ViewModels to the frontend.\n\u003cbr/\u003e\n\n### Infrastructure\nImplements the database configuration and repositories. Also contains the `PokegraphDb` SQLite database with the 151 first Pokémon and their data for you to play.\n\u003cbr/\u003e\n\n\u003cbr\u003e\n\n## Technologies used\n\nBackend\n\u003cul\u003e\n\t\u003cli\u003e\u003ca href='https://dotnet.microsoft.com/en-us/download/dotnet/7.0' target=\"_blank\"\u003e.NET 7\u003c/a\u003e and \n\t\u003ca href='https://msdn.microsoft.com/en-us/library/67ef8sbd.aspx' target=\"_blank\"\u003eC# 10\u003c/a\u003e\u003c/li\u003e\n\t\u003cli\u003e.NET 7\u003c/li\u003e\n\t\u003cli\u003eEntity Framework Core 7.0.11\u003c/li\u003e\n\t\u003cli\u003eEntityFrameworkCore.Sqlite 7.0.11\u003c/li\u003e\n\t\u003cli\u003eAutomapper 12.0.1\u003c/li\u003e\n\t\u003cli\u003eHotChocolate 13.5.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003cbr\u003e\nFrontend\n\u003cul\u003e\n\t\u003cli\u003e\u003ca href='https://vuejs.org/' target=\"_blank\"\u003eVue 3\u003c/a\u003e and \u003ca href='http://www.typescriptlang.org/' target=\"_blank\"\u003eTypeScript\u003c/a\u003e\u003c/li\u003e\n\t\u003cli\u003e\u003ca href='https://apollo.vuejs.org/' target=\"_blank\"\u003eVue Apollo\u003c/a\u003e\u003c/li\u003e\n\t\u003cli\u003e\u003ca href='https://www.npmjs.com/package/vue-toast-notification/' target=\"_blank\"\u003eToast for Vue\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cbr/\u003e\n\n\n## What do you need to run it\n\n- The latest \u003ca href=\"https://dotnet.microsoft.com/download\" target=\"_blank\"\u003e.NET Core SDK\u003c/a\u003e.\n- \u003ca href='https://nodejs.org' target=\"_blank\"\u003eNodeJs\u003c/a\u003e for the frontend.\n\n#### Running the GraphQL Api\n    \nNavigate to `Pokegraph.Api` folder and run:\n```console\n $ dotnet run\n``` \n\n#### Running the Vue 3 SPA\n    \nNavigate to `pokegraph.spa` and run for the node packages and serving the SPA on `http://localhost:8080` respectively:\n\n```console\n $ npm install\n $ npm run serve\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffalberthen%2Fpokegraph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffalberthen%2Fpokegraph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffalberthen%2Fpokegraph/lists"}