aex/README.md
yaroslav k 8bdf1c9be3 rewrite README; replace example e2e spec with a smoke test
README is now project-specific (features, stack, dev commands, docs).
The Playwright spec checks home/inventories/wiki render and asserts no
console errors.
2026-08-15 14:57:35 +03:00

2.1 KiB

aex

A D&D 5e character sheet and campaign dashboard for a text-based play-by-post game. The UI is in Russian.

What works today

  • Campaign header: name, in-game date steppers, session counter
  • Character sidebar: portrait, names, class, level, XP, hit points with temp HP bar, hit dice, death saves, spell slots
  • Inventories page (/inv): personal and party-common inventories, currency per denomination, item rows with quantity and weight steppers, move between inventories, remove
  • Bundled 5e.tools item data (~5k items) with fuzzy search components (search is not mounted on a page yet)

State is mock data: nothing is persisted, and several buttons and pages are stubs. The phased plan to fix that is in ROADMAP.md.

Tech stack

  • Rust, edition 2024, nightly toolchain (pinned in rust-toolchain.toml)
  • Leptos 0.8 SSR (actix-web) + client-side hydration
  • reactive_stores for the reactive state model
  • SCSS (style/main.scss), compiled by dart-sass
  • Playwright for end-to-end tests

Development

Prerequisites: cargo-leptos, dart-sass, and the wasm32-unknown-unknown target. The nightly toolchain installs itself via rust-toolchain.toml.

cargo install cargo-leptos
cargo leptos watch          # dev server with hot reload
# open http://127.0.0.1:3000

Other commands:

cargo leptos build --release            # production build
cargo leptos serve                      # dev server without the watcher
cargo check --no-default-features --features ssr --bin aex
cargo check --no-default-features --features hydrate --lib
cargo check --target wasm32-unknown-unknown --no-default-features --features hydrate --lib

Tests

End-to-end smoke tests live in end2end/ (Playwright). With the dev server running on port 3000:

cd end2end
npm install
npx playwright test

or let cargo-leptos manage the server: cargo leptos end2end.

Project docs

License

Public domain (Unlicense), see LICENSE.