{"id":22546389,"url":"https://github.com/mp3martin/gameinv","last_synced_at":"2025-08-23T06:11:07.052Z","repository":{"id":262259577,"uuid":"879857655","full_name":"MP3Martin/GameInv","owner":"MP3Martin","description":"A project showcasing how you can connect C# backend and Next.js or WPF frontend","archived":false,"fork":false,"pushed_at":"2025-06-05T16:39:48.000Z","size":1493,"stargazers_count":2,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-05T17:36:41.102Z","etag":null,"topics":["csharp","dotnet","dotnet9","gui","prebuilt-binaries","python","tui","websocket","wpf"],"latest_commit_sha":null,"homepage":"https://mp3martin.github.io/GameInv/","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/MP3Martin.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,"zenodo":null}},"created_at":"2024-10-28T17:06:11.000Z","updated_at":"2025-06-05T16:37:10.000Z","dependencies_parsed_at":"2025-03-06T12:21:45.308Z","dependency_job_id":"19c340f8-41b5-4d09-92df-46c2eddc8dab","html_url":"https://github.com/MP3Martin/GameInv","commit_stats":null,"previous_names":["mp3martin/gameinv"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/MP3Martin/GameInv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MP3Martin%2FGameInv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MP3Martin%2FGameInv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MP3Martin%2FGameInv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MP3Martin%2FGameInv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MP3Martin","download_url":"https://codeload.github.com/MP3Martin/GameInv/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MP3Martin%2FGameInv/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271745695,"owners_count":24813516,"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-08-23T02:00:09.327Z","response_time":69,"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","dotnet","dotnet9","gui","prebuilt-binaries","python","tui","websocket","wpf"],"created_at":"2024-12-07T15:07:27.777Z","updated_at":"2025-08-23T06:11:07.040Z","avatar_url":"https://github.com/MP3Martin.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![CodeFactor](https://www.codefactor.io/repository/github/MP3Martin/GameInv/badge)](#/)\n[\u003cimg src=\"https://img.shields.io/github/license/MP3Martin/GameInv\"\u003e](#/)\n[\u003cimg src=\"https://img.shields.io/github/stars/MP3Martin/GameInv?style=flat\"\u003e](#/)\n[\u003cimg src=\"https://img.shields.io/github/forks/MP3Martin/GameInv?style=flat\"\u003e](#/)\n[\u003cimg src=\"https://img.shields.io/github/issues/MP3Martin/GameInv\"\u003e](#/)\n\n# GameInv\n\n\u003cimg src=\"https://github.com/user-attachments/assets/ec6888ef-99f1-45ac-98d6-dd92d97555fa\" width=\"950px\" /\u003e\n\n## Usage\n\n### Console / WEB UI\n\n1. Get the GameInv server\n    1. by downloading the [latest build from releases](https://github.com/MP3Martin/GameInv/releases/latest/) (the one\n       with `.exe` and no `WPF` in its name)\n    2. \u003cdetails\u003e\u003csummary\u003eor ...\u003c/summary\u003eor download the \u003ca href=\"https://download-directory.github.io/?url=https%3A%2F%2Fgithub.com%2FMP3Martin%2FGameInv%2Ftree%2Fmain%2Fserver\"\u003eserver folder\u003c/a\u003e, extract it and open it in your favourite IDE, install the required dependencies, modify the code however you want and run the program. Or just use any other way to build the project.\u003c/details\u003e\n2. Run the program (the server)\n3. Press Y to enter the WS server mode.\n4. Open https://mp3martin.github.io/GameInv/ in your browser and everything should connect automatically. Use the\n   cogwheel on the top right to change settings.\n\n\u003e [!WARNING]  \n\u003e Do not run the server publicly, it is just a demo/showcase and not advanced enough to be perfectly secure and handle\n\u003e attacks.\n\n### Windows desktop GUI (WPF)\n\n1. Get GameInv WPF by downloading\n   the [latest build from releases](https://github.com/MP3Martin/GameInv/releases/latest/) (the one with `.exe` and\n   `WPF` in its name)\n2. Run the program\n\n\u003e [!IMPORTANT]  \n\u003e Microsoft Defender sometimes reports the automatically built exes as a virus. The current fix is to allow the `.exe`\n\u003e in Defender.\n\n\u003e [!TIP]  \n\u003e Read [configuration](#configuration)\n\n## Configuration\n\n### `.env`\n\nThis program allows you to configure various options through the `.env` file or by setting environment variables. The\n`.env` file has to be placed in the same directory as the program executable. The [`.env.example`](server/.env.example)\nfile provides a description for these settings, **so read it**. To use it, rename `.env.example` to `.env` and modify\nthe\nvalues as needed. Note that environment variables set in the system or command line must be prefixed with `GAMEINV_`,\nbut the `.env` file does not require this prefix.\n\n### MySQL\n\nIf you want the items to be stored in a database (specifically MySQL), then you have to connect\nto / start a MySQL server and run the commands inside [gameinv.sql](server/gameinv.sql) to add the schema and the\ntables (find a tutorial elsewhere). Then [configure](#configuration) your program to use the MySQL DB.\n\n## GUI\n\nThere is also a WPF GUI version of the project in [server/GameInv-WPF](server/GameInv-WPF). It only supports Windows 7+\nand no\nother OS. Tested on Windows 11. That version does not have a WebSocket client, does not have TUI and only has an\nintegrated WPF GUI with optional DB connection. If\nyou want to download a prebuilt `.exe`, then find the one that has `WPF` in its\nname [in the latest release](https://github.com/MP3Martin/GameInv/releases/latest/).\n\n## More docs\n\nCan be found [here](DOCS.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmp3martin%2Fgameinv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmp3martin%2Fgameinv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmp3martin%2Fgameinv/lists"}