{"id":20080691,"url":"https://github.com/cloud8421/osteria","last_synced_at":"2025-05-05T23:31:22.314Z","repository":{"id":139444159,"uuid":"69006348","full_name":"cloud8421/osteria","owner":"cloud8421","description":"Osteria demo app for GenStage in the Kitchen talk. Rough code, beware!","archived":false,"fork":false,"pushed_at":"2017-06-02T09:47:45.000Z","size":135,"stargazers_count":71,"open_issues_count":0,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-09T05:51:07.879Z","etag":null,"topics":["elixir","elm","genstage"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/cloud8421.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":"2016-09-23T08:40:40.000Z","updated_at":"2024-11-07T04:07:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"69279a03-acec-4c7d-9286-c1eb8184ab56","html_url":"https://github.com/cloud8421/osteria","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/cloud8421%2Fosteria","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloud8421%2Fosteria/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloud8421%2Fosteria/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloud8421%2Fosteria/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloud8421","download_url":"https://codeload.github.com/cloud8421/osteria/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252593034,"owners_count":21773393,"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","elm","genstage"],"created_at":"2024-11-13T15:29:39.269Z","updated_at":"2025-05-05T23:31:22.308Z","avatar_url":"https://github.com/cloud8421.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Osteria\n\nDemo application for Elixir.LDN's talk \"GenStage in the Kitchen\" [slides here](https://speakerdeck.com/cloud8421/genstage-in-the-kitchen)\n\n## Setup\n\n`mix deps.get`\n`iex -S mix`\n\nThen visit `http://localhost:4001`\n\n## Frontend\n\nThe frontend application is built with Elm, so it requires it to be installed.\n\nCompiled js and css is shipped with the codebase, so you don't need to compile by hand after cloning. If you wish to make any changes you can:\n\n- `cd frontend`\n- `make install`\n- `make` to compile\n- `make watch` to start a watcher that recompiles on save\n\n## Some directions when reading code\n\n- Start from `lib/osteria.ex`: here all processes are setup in single supervision tree.\n- The `Osteria.Status` module is used to collect information about each component in the system, so that we can pipe that information to the frontend.\n- You can then move to `lib/osteria/table.ex` and see how each table handles people sitting down and deciding dishes. Note that to keep track of tables we use a `Osteria.TableRegistry` Elixir 1.4 process Registry.\n- The `Waiter` module is modeled after the `EventManager` example shown here: \u003chttp://elixir-lang.org/blog/2016/07/14/announcing-genstage/\u003e.\n- The `Osteria.Chef` module partitions orders using a `Osteria.Menu` module to figure out a dish type (grill, oven, etc.)\n- If you open the `Osteria.Log` module you can enable logging (roughly commented out towards the end). That way you can see events happening in real time in the console.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloud8421%2Fosteria","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloud8421%2Fosteria","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloud8421%2Fosteria/lists"}