2.1 KiB
Contributing to the OpenFlexure Microscope Server
All contributions to the OpenFlexure project should follow our project contributions guidelines.
Any contributions to any of our projects should follow our code of conduct.
If you are interested in contributing to the OpenFlexure project, and do not know where to start, we recommend you visit our forum.
The rest of this page details contribution guidelines that are specific to this repository.
This page generally focusses on the back-end of the server, not the front-end webapp. For more details on the webapp development see the webapp's README.
Installation
For installation, see the home page.
Core packages and concepts
The OpenFlexure Microscope server is built in the LabThings-FastAPI framework. This provides a convenient way to expose laboratory hardware over HTTP via a FastAPI server.
The core elements of the server code are Things. A Thing creates a W3C Web of Things compliant HTTP interface for hardware interactions and other server functionality.
The project also makes use of the following libraries:
- Pydantic - For serialising/deserialising data being saved to disk or sent over HTTP.
- OpenFlexure Stitching - Our own library for creating composite microscope images from a scan.
- OpenCV and Picamera2 - For controlling cameras, and simulating cameras for tests.
- Pillow - For image manipulation and saving.
- NumPy and SciPy - For mathematical calculations.
The list above is not exhaustive!
Coding guidelines
We have separate coding guidelines for the Python server and for the Vue webapp.