GuideArch helps software architects compare technology stacks using fuzzy multi-criteria decision analysis. Describe decisions, alternatives, quality properties and constraints, then rank candidate architectures with fuzzy TOPSIS. Use sensitivity analysis to see which decisions and constraints affect the result.
- Edit architecture decisions, alternatives, property weights and constraints.
- Rank candidates and inspect scores, fuzzy values and comparison charts.
- Examine critical decisions and constraints.
- Load bundled examples, open scenario JSON files and save your changes.
- Choose dark or light appearance in any implementation.
Run GuideArch from source using the instructions below.
GitHub Releases currently contains only v0.0.0-bootstrap, with no attached installers.
The v1.0.0 tag and package metadata identify the development baseline; they do not establish downloadable release availability.
Release build configurations are documented in the release specification.
Choose one implementation. You do not need all three toolchains.
| Implementation | Requirements | Interface |
|---|---|---|
| Python | Git, Python 3.11+, uv | NiceGUI browser UI; optional pywebview desktop window |
| TypeScript | Git, Node 22+, pnpm 11+; Rust/cargo for desktop | Svelte browser UI or Tauri desktop |
| C# | Git, .NET 8 or 9 SDK | Avalonia desktop; WebAssembly support is planned |
Python installs VMx from its pinned PyPI dependency.
TypeScript and C# build VMx from the vendor/vmx/ submodule because their registry packages are not published.
The language guides explain platform-specific desktop prerequisites and optional VMx co-development.
Install the tools for your chosen implementation first. Each block below starts from the repository root of a fresh checkout.
git clone https://github.com/thekaveh/GuideArch.git
cd GuideArchcd langs/python
uv sync
uv run guidearchOpen http://localhost:8080 in your browser.
Use uv run guidearch --native for a desktop window when your platform supports pywebview.
Stop the server with Ctrl+C.
See Python setup for native-mode details and local development checks.
From the repository root:
git submodule update --init vendor/vmx
cd langs/typescript
pnpm install
pnpm devOpen http://localhost:1420 in your browser.
Use pnpm tauri dev for the desktop application after installing its native prerequisites.
Stop the development server with Ctrl+C.
See TypeScript setup for builds and tests.
From the repository root:
git submodule update --init vendor/vmx
cd langs/csharp
dotnet build
dotnet run --project src/GuideArch.ViewAn Avalonia desktop window opens. Close it to stop the application. See C# setup for framework, runtime and test details.
- Select Sample SAS in the toolbar, or Open Sample SAS on the initial screen.
- Open Results to inspect the ranked candidates. The sample's top score is
0.031180695179944085. - Open Properties and change a weight, such as Reliability. The rankings update after the change.
- Inspect Critical Decisions and Critical Constraints to understand the result.
- Use Save As… to save a temporary JSON file. Select New, then Open… that file to restore your changes.
The bundled SAS scenario contains 10 decisions, 25 alternatives and seven properties. Sample EDS provides a second example. The scenario corpus and algorithm specification explain the inputs and expected results.
Start with Contributing for the spec-first workflow and local verification.
Each language guide contains its unit, integration and numerical conformance commands.
Python development tools use uv sync --all-extras; uv sync installs the runtime dependencies only.
| Reference | Purpose |
|---|---|
| Documentation reference | Specifications, design decisions, release process and archived audit evidence |
| Changelog | Development milestones and recorded changes |
| Contract ledger | Consumed dependencies and toolchain contracts |
| Security | Private vulnerability reporting |
| Code of conduct | Participation policy |
The repository separates shared specifications (spec/), language implementations (langs/) and supporting scripts (tools/).
VMx is an external submodule under vendor/vmx/; propose dependency changes upstream.
MIT — see LICENSE.