{"id":30535306,"url":"https://github.com/specmatic/specmatic-arazzo-ui-sample","last_synced_at":"2026-07-03T15:03:52.071Z","repository":{"id":310281714,"uuid":"1018015319","full_name":"specmatic/specmatic-arazzo-ui-sample","owner":"specmatic","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-24T00:40:32.000Z","size":461,"stargazers_count":0,"open_issues_count":16,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-24T10:55:45.263Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/specmatic.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,"zenodo":null}},"created_at":"2025-07-11T13:13:50.000Z","updated_at":"2025-08-14T05:46:25.000Z","dependencies_parsed_at":"2025-08-19T01:15:29.952Z","dependency_job_id":null,"html_url":"https://github.com/specmatic/specmatic-arazzo-ui-sample","commit_stats":null,"previous_names":["specmatic/specmatic-arazzo-ui-sample"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/specmatic/specmatic-arazzo-ui-sample","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specmatic%2Fspecmatic-arazzo-ui-sample","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specmatic%2Fspecmatic-arazzo-ui-sample/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specmatic%2Fspecmatic-arazzo-ui-sample/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specmatic%2Fspecmatic-arazzo-ui-sample/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/specmatic","download_url":"https://codeload.github.com/specmatic/specmatic-arazzo-ui-sample/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specmatic%2Fspecmatic-arazzo-ui-sample/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272341531,"owners_count":24917503,"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-27T02:00:09.397Z","response_time":76,"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":[],"created_at":"2025-08-27T14:53:57.420Z","updated_at":"2026-07-03T15:03:52.064Z","avatar_url":"https://github.com/specmatic.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 Specmatic Arazzo Demo\n\n[Specmatic Arazzo](https://hub.docker.com/extensions/specmatic/specmatic-docker-desktop-extension) is a **NO-CODE** workflow testing tool that allows users to efficiently **author**, **validate**, **test**, and **mock** workflows, leveraging [Arazzo API Specifications](https://spec.openapis.org/arazzo/latest.html)\n\n## 🎬 Video Walkthrough\n\n[![Visual API Workflow Mocking and Testing with Specmatic and Arazzo API Specifications](https://img.youtube.com/vi/jrkFKh37_N0/hqdefault.jpg)](https://youtu.be/jrkFKh37_N0)\n\nThis video uses this very same demo project repo to showcases how to author a workflow specification using **Specmatic Arazzo** via [**Specmatic Studio**](https://specmatic.io/specmatic-studio/) interactively with a drag‑and‑drop interface, validate the workflow, and test it against two microservices [**Order API**](./backend/order_api) and the [**Location API**](./backend/location_api), We will also demonstrate how to mock the workflow so that the [**Frontend**](./frontend) can consume it independently from these microservices without a single line of code.\n\nYou can also use this repo to follow along with the video and learn about the various capabilities. Please do read through the detailed instructions below to know more.\n\n## 🏗️ Application Architecture\n\nThis project includes below services:\n- Backend Services (developed using **FastAPI**, **SQLModel**, and **SQLite**)\n  - [**Order API**](./backend/order_api)\n  - [**Location API**](./backend/location_api)\n- Frontend (built using **Svelte** and **Vite**)\n  - [**UI that interacts with the two backend services**](./frontend)\n\n## 🛠️ Prerequisites\n\n- [Python](https://www.python.org/)\n- [Node.js](https://nodejs.org/en/download/)\n- [Docker Desktop](https://www.docker.com/products/docker-desktop/)\n- [Specmatic Docker Extension](https://hub.docker.com/extensions/specmatic/specmatic-docker-desktop-extension)\n\n## 🔧 Setup\n\n### Clone the Specmatic Arazzo UI Sample repository:\n```shell\ngit clone https://github.com/specmatic/specmatic-arazzo-ui-sample\n```\n\n### Launch the Extension:\nLaunch it within the Specmatic Arazzo UI Sample project directory as shown in the image below\n\n![Specmatic Docker Extension](./assets/studio.png)\n\n## 📝 Flow\n\n![Diagram](./assets/flow.svg)\n\n## Running the Project\n\nExecute [`run.py`](./run.py) to get both Front-end and Back-end running.\nPlease choose appropriate commands below as per your system setup.\n\nFor Windows:\n```shell\npython run.py\n```\n\nFor Unix:\n```shell\npython3 run.py\n```\n\n### What does `run.py` do?\n\n1. In the [`backend`](./backend/) directory:\n   1. Creates a `venv` virtual environment.\n   2. Installs Python dependencies from [`requirements.txt`](./backend/requirements.txt).\n   3. Starts both the [`order_api`](./backend/order_api/) and [`location_api`](./backend/location_api/) microservices.\n   4. Populates the database with dummy data.\n\n2. In the [`frontend`](./frontend/) directory:\n   1. Installs the frontend dependencies specified in [`package.json`](./frontend/package.json).\n   2. Launches the frontend application in development mode using Vite.\n   3. Opens the frontend in a web browser.\n\n### Verify the setup\n1. In the [UI](http://localhost:5173) please use username as `test@specmatic.io` and password as `specmatic`. This should show you a couple of products.\n2. Now you can log out and try again with username as `random@specmatic.io` and password as `user`. This shows you an empty list.\n\n### Input for backend workflow testing\n\n```json\n{\n    \"PlaceOrder\": {\n        \"DEFAULT\": {\n            \"GetUserDetails\": {\n                \"email\": \"test@specmatic.io\",\n                \"password\": \"specmatic\",\n                \"internalToken\": \"API-TOKEN\"\n            }\n        },\n        \"RetrieveProducts.IsArrayEmpty\": {\n            \"$failureMessage\": \"Expected not to find any products for random@specmatic.io, as they belong to B Zone\",\n            \"GetUserDetails\": {\n                \"email\": \"random@specmatic.io\",\n                \"password\": \"user\"\n            }\n        }\n    }\n}\n```\n\n### Running the frontend manually\n```shell\ncd frontend\nnpm install\nnpm run dev\n```\n\n### Running the backend manually\n\n- On Unix machines:\n```shell\ncd backend\npython3 -m venv venv\nsource venv/bin/activate\npip install -r requirements.txt\npython3 run.py\n```\n\n- On Windows:\n```shell\ncd backend\npython -m venv venv\nvenv\\Scripts\\activate\npip install -r requirements.txt\npython run.py\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspecmatic%2Fspecmatic-arazzo-ui-sample","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspecmatic%2Fspecmatic-arazzo-ui-sample","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspecmatic%2Fspecmatic-arazzo-ui-sample/lists"}