Skip to content

strudel-science/strudel-kit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

904 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

STRUDEL Kit

All Contributors

STRUDEL Kit is a set of modern fullstack templates and components for building scientific apps based on the STRUDEL Design System and Task Flows. Visit strudel.science for more information about the STRUDEL project.

Browse the new docs!

(Legacy docs)

Technology Stack

Backend

  • Python: Programming language popular for scientific and data analysis
  • FastApi: Backend framework for building REST APIs
  • SQLAlchemy: SQL toolkit and ORM
  • Alembic: Database migration tool
  • uv: Python package and project manager

Frontend

  • TypeScript: A typed superset of JavaScript that compiles to plain JavaScript.
  • React: A component-based JavaScript library for building UIs.
  • Vite: A fast, opinionated frontend build tool.
  • Material UI: Open-source React component library based on Google's Material Design.
  • TanStack Router: A fully type-safe router with built-in data fetching, first-class search-param APIs, and more.
  • ESLint: The pluggable linting utility for JavaScript and JSX.
  • Prettier: An opinionated code formatter.
  • Cypress: End-to-end tests for built-in templates.

Run Computation results page

Getting started with a template

This library provides a suite of templates to implement UIs for various different task flows common to the scientific domain. Each template lives in the templates directory and is built on top of the main base-app template.

Requirements

Copy a template

Open a terminal and navigate to the directory where you want your app to live.

Copy your template of choice (e.g. explore-data):

degit strudel-science/strudel-kit/templates/explore-data my-app

You can also copy sections of a fullstack template if you don't need the whole backend and frontend:

degit strudel-science/strudel-kit/templates/explore-data/frontend my-frontend-app

You may even want to combine or add a specific task flow to an existing frontend:

degit strudel-science/strudel-kit/templates/explore-data/frontend/src/pages/compare-data my-compare-data-page

Getting started with the React components

./packages/react-components/README.md

Contributions

STRUDEL Kit welcomes contributions of all kinds! Learn how to submit suggestions and changes in CONTRIBUTING.md.

Contributors

Cody O'Donnell
Cody O'Donnell

πŸ’» 🎨 πŸ“–
Rajshree Deshmukh
Rajshree Deshmukh

πŸ’» 🎨 πŸ”¬
Hannah Cohoon
Hannah Cohoon

πŸ”¬ πŸ’» πŸ“–
Dan Gunter
Dan Gunter

πŸ’» πŸ§‘β€πŸ« πŸ€”
Sarah Poon
Sarah Poon

🎨 πŸ§‘β€πŸ« πŸ€”
Drew Paine
Drew Paine

πŸ”¬ πŸ“†
LRamakrishnan
LRamakrishnan

πŸ§‘β€πŸ« πŸ“† πŸ”
georgia bullen
georgia bullen

πŸ“† πŸ” πŸ“‹
Philliph Drummond
Philliph Drummond

πŸ’» πŸ’‘
Anh
Anh

πŸ“‹
Eriol Fox
Eriol Fox

πŸ“‹
James Colliander
James Colliander

πŸš‡ πŸ“†
Angus Hollands
Angus Hollands

πŸš‡
Jenny Wong
Jenny Wong

πŸš‡
Maryam Vareth
Maryam Vareth

πŸ“† πŸ€”
Erin Becker
Erin Becker

πŸ“† πŸ“–
TechMaarten
TechMaarten

πŸ’»

License

This software is licensed through the Lawrence Berkeley National Lab and can be used, modified, and shared at absolutely no cost. Read the full license.

Attribution

We kindly ask that you take two steps to attribute this repo if you find it useful to your work:

  1. Give us a star on our GitHub Page
  2. Credit the STRUDEL project and strudel-kit repo in your README.

This project utilized the strudel-kit repository. Read more about STRUDEL.