This repository demonstrates the STRUDEL Design System applied to scientific data visualization workflows. It showcases how to implement UI templates for common scientific task flows with a focus on data exploration, quality benchmarking, and computational analysis.
The STRUDEL Example Mock Charts project provides a practical implementation of the STRUDEL framework, featuring:
- Dataset Exploration: Browse, filter, and preview scientific datasets with interactive visualizations
- Quality Benchmarking: Compare data readiness scores, anomaly rates, and drift metrics
- Computational Workflows: Execute process simulations and computational models on datasets
- Modern UI/UX: Clean, scientific-focused interface built with React and Material UI
- React: Component-based JavaScript library for building UIs
- TypeScript: Typed superset of JavaScript for enhanced safety
- Vite: Fast frontend build tool
- Material UI: React component library based on Material Design
- TanStack Router: Type-safe router with data fetching capabilities
- Plotly.js: Interactive graphing library for scientific visualizations
- D3: Data visualization library for advanced charting
- ESLint: Pluggable linting utility for JavaScript and JSX
- Prettier: Code formatter for consistent style
- Node.js (version ^18.18.0 || >=20.0.0)
- npm
-
Clone the repository:
git clone https://github.com/sprblm/studel-example-mock.git cd studel-example-mock -
Install dependencies:
npm install -
Start the development server:
npm startOr alternatively:
npm run dev -
Open your browser to http://localhost:5175 (or the next available port)
Create a .env file in the root directory based on the .env.example file to customize your environment variables:
VITE_PORT=5175
VITE_BASE_URL=/
src/
├── components/ # Reusable UI components
├── context/ # React context providers
├── hooks/ # Custom React hooks
├── pages/ # Page components (routes)
│ ├── explore-data/ # Dataset exploration flow
│ ├── quality-benchmark/ # Quality assessment flow
│ └── run-computation/ # Computational workflow flow
├── types/ # TypeScript type definitions
├── utils/ # Utility functions
├── App.tsx # Main application component
├── theme.tsx # Material UI theme configuration
└── main.tsx # Application entry point
npm startornpm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production build locallynpm run lint- Check code for linting errorsnpm run lint:fix- Automatically fix linting errorsnpm run prettier- Check code formattingnpm run prettier:fix- Automatically format codenpm run style:all- Run type checking, linting, and formattingnpm run cy:test- Run Cypress end-to-end testsnpm run cy:open- Open Cypress test runnernpm run deploy- Deploy to GitHub Pages
The application implements three primary scientific task flows:
- Explore Data: Browse, filter, and preview scientific datasets with interactive visualizations
- Quality Benchmark: Compare data readiness scores, anomaly rates, and drift metrics across laboratory datasets
- Run Computation: Execute process simulations and computational models on your datasets with collaborative presets
We welcome contributions! Please read our CONTRIBUTING.md for guidelines on how to contribute to this project.
This project is licensed under the terms found in the LICENSE file.
This project builds upon the STRUDEL Design System for scientific UIs. For more information about STRUDEL, visit strudel.science.

