{"id":15496873,"url":"https://github.com/brendonovich/hangman","last_synced_at":"2025-04-22T21:29:38.547Z","repository":{"id":104266293,"uuid":"360679114","full_name":"Brendonovich/hangman","owner":"Brendonovich","description":"Simple hangman game made with Elixir and Phoenix LiveView","archived":false,"fork":false,"pushed_at":"2021-04-29T19:44:32.000Z","size":796,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-29T19:02:08.615Z","etag":null,"topics":["elixir","elixir-phoenix","hangman","hangman-game","live-view"],"latest_commit_sha":null,"homepage":"","language":"Elixir","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/Brendonovich.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":"2021-04-22T20:53:42.000Z","updated_at":"2022-02-08T09:08:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"a0307e01-e3a8-4701-a552-d6f6fe133641","html_url":"https://github.com/Brendonovich/hangman","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Brendonovich%2Fhangman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Brendonovich%2Fhangman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Brendonovich%2Fhangman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Brendonovich%2Fhangman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Brendonovich","download_url":"https://codeload.github.com/Brendonovich/hangman/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250327839,"owners_count":21412510,"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":["elixir","elixir-phoenix","hangman","hangman-game","live-view"],"created_at":"2024-10-02T08:29:12.849Z","updated_at":"2025-04-22T21:29:38.538Z","avatar_url":"https://github.com/Brendonovich.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hangman\n\nA simple hangman game built with Elixir and Phoenix LiveView.\nIn future I would like this to be a game Twitch streamers can play with their viewers.\n\n## How It Works\n`lib/hangman` contains all the game-specific code, which is essentially just the `Hangman.Game` module for now. In future, I would like game state to be stored in a `GenServer` that can share its data with multiple clients.\n\n`lib/hangman-web` contains the client code that produces the user interface. `page_live.html.leex` is the single view that renders different output depending on `@game.state`. While a game is in progress, `@game.guesses` is mapped into the buttons that allow the user to guess letters, with simple `\u003cp\u003e` tags rendered if `Map.get(guesses, letter)` is true. Interactions with the buttons are handled by `page_live.ex`, which call `Game.guess_letter` with the current `game` object to handle letter guessing.\n\nDeploying is managed by Dokku running on a Digital Ocean Droplet. Every push to the `master` branch triggers a GitHub Action that deploys the updated code to Dokku.\n\nThere is still a lot of cleanup and refactoring that can be done to this code, as I am new to Elixir and functional programming with pattern matching. I aim to work on this project as a service to those who may enjoy it and also to sharpen my skills with Elixir and Phoenix.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrendonovich%2Fhangman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrendonovich%2Fhangman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrendonovich%2Fhangman/lists"}