The Raston Lab's Fourier Transform InfraRed - Scientific Instrument Simulator (FTIR-SIS) was designed to emulate a student's classroom experience with an FTIR spectrometer. The web application focuses on both spectra generation and a simplified top-down view of the components that make up the spectrometer.
This project uses React for the frontend and Flask for the backend. The backend is located in a separate repository.
Information on how to run the front-end can be found in the repository's wiki page.
The intended audience for this application is undergraduate chemistry students studying spectroscopy. The following screenshots are not exhaustive but acknowledge most of the main features:
- Experimental Setup (spectrometer parameters)
- Instrument Window (top-down view of simplified spectrometer)
- Spectra Window (plotted spectra)
Additional information regarding the FTIR-SIS can be found in the repository's wiki page. This information includes Redix Toolkit, SVG diagrams, SVG optimization, SVG interactivity, and SVG animation.
Upkeep of this project is intended for recruited undergraduate students, but pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
See LICENSE
Relevant third-party tools and resources we depend on:
-
GitHub Pages Deploy Action: GitHub Action used to automate deployment of web applications to GitHub Pages (Licensed MIT)
-
Plotly.js: JavaScript data visualization library (Licensed MIT)
-
React: JavaScript library for building user interfaces (Licensed MIT)
-
React CSV: React components to build CSV files on the fly (Licensed MIT)
-
React Router: Declarative routing for React (Licensed MIT)
-
React to Print: React components for printing in the browser (Licensed MIT)
-
Redux Toolkit: Library for updating and managing application state (Licensed MIT)
-
SVGR: Tool for transforming SVGs into React components (Licensed MIT)
Inspiration from:
-
Make a README: Inspiration for README.md template (Licensed MIT)
-
Radis app: Inspiration for user interface components like the dual slider for the wavenumber range (Licensed LGPL-3.0)