Skip to content

APTG/dedx_web

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

418 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dEdx web

Calculate charged-particle stopping powers (dE/dx) and CSDA ranges directly in the browser — no installation required. Select a particle, a target material, and an energy range; get numerical results and interactive plots instantly. Based on the libdedx library, running fully client-side via WebAssembly.

Try it

URL What's there Deployment
v2 (development) aptg.github.io/web_dev Open beta candidate — Stage 7 complete; Stage 8 user-feedback cycle active Continuous on master
v1.1.0 (stable) aptg.github.io/web Last stable release — fully functional but based on the old React stack Released 1 April 2022

Why v2?

v1.1.0 (April 2022) has several limitations: no unit handling, React 17 class components with no TypeScript, and plots that do not meet the needs of typical physics workflows.

v2 is a ground-up rewrite addressing all of the above. It is also an experiment in AI-assisted (vibe-coded) development — the codebase is written by AI agents (GitHub Copilot, Claude Code, opencode) guided by spec-driven prompts, with human review. Stage 7 (E2E tests, UI polish, WASM error handling, and external .webdedx data) is complete; the app is now entering Stage 8 open beta and user feedback. v2.0.0 will replace the stable site on first production release.

Related tools


For developers

Run locally

Prerequisites: Docker (for the WASM build), Node.js 24+, pnpm.

Build the WASM module (requires Docker; pulls emscripten/emsdk:5.0.5, ~2 min on first run). The parentheses run this in a subshell so your terminal stays in the project root:

(cd wasm && ./build.sh)

Back in the project root, install dependencies and start the dev server:

pnpm install && pnpm dev

Open http://localhost:5173.

Run E2E locally

Playwright serves the built app with pnpm preview, so the safe local flow is:

pnpm build
pnpm test:e2e

pnpm build now runs node scripts/deploy.cjs via prebuild, so static/deploy.json is generated automatically and no extra manual step is needed before E2E.

Dependency Management & Security Policy

To maintain a secure and clean codebase, follow these rules when managing dependencies and addressing security vulnerabilities:

  • Prefer Direct Upgrades: If pnpm audit or Dependabot flags a vulnerability in a transitive dependency, prefer upgrading the direct dependency that pulls it in. Do not jump to adding overrides immediately.
  • Minimal Overrides: Only use overrides as a last resort if no compatible upstream release exists.
  • Workspace-Level Configuration: Define overrides in the root pnpm-workspace.yaml under the overrides: key (rather than package.json's pnpm.overrides block) for workspace-wide consistency, and keep lockfile config aligned with that source to avoid ERR_PNPM_LOCKFILE_CONFIG_MISMATCH.
  • Document Overrides: Every override must be documented. Use standard YAML comments directly above each override entry in pnpm-workspace.yaml. The comment must reference the GHSA ID it mitigates and link to the upstream issue tracking the proper fix.

Documentation

Redesign plan Stage-by-stage implementation plan and current status
Project vision Target audience, core use cases, design principles
Feature specs Per-feature specs with acceptance criteria
WASM API contract TypeScript ↔ libdedx interface
Deployment GitHub Pages pipeline and CI
AI changelog Log of all AI-assisted sessions

Team

Developed by Piotr Połeć and Marek Ślązak under supervision of Leszek Grzanka

About

Web interface for libdedx library

Topics

Resources

License

Stars

Watchers

Forks

Contributors