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.
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.
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.
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
./packages/react-components/README.md
STRUDEL Kit welcomes contributions of all kinds! Learn how to submit suggestions and changes in CONTRIBUTING.md.
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.
We kindly ask that you take two steps to attribute this repo if you find it useful to your work:
- Give us a star on our GitHub Page
- Credit the STRUDEL project and strudel-kit repo in your README.
This project utilized the strudel-kit repository. Read more about STRUDEL.
