4-channel Electrolyzer (Reimagined) Backend
- Python 79.7%
- Jupyter Notebook 20.3%
| .vscode | ||
| src | ||
| .gitignore | ||
| .python-version | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
4-channel Electrolyzer Backend
Setup
This project uses uv to manage Python dependencies. Python version: >= 3.12
uv python pin 3.12
uv venv
uv sync
Launch:
uvicorn src.four_channel_electrolyzer.main:app --reload
Layout
This project uses the src layout.
Folder structure
src
├───four_channel_electrolyzer - backend source code
│ ├───api - FastAPI routers that define the API endpoints
│ ├───db - modules for interfacing with the database
│ ├───hardware - drivers and related classes for interfacing with hardware components (Arduino, Gasboard, Flowmeter, etc.)
│ ├───logic - controller business logic
│ ├───model - Pydantic models for typing and validation
│ │ └───generated - Models generated from the top level project's JSON schema files. Not to be edited manually.
│ ├───ui - modules for interfacing with frontend code
│ ├───utils - utility classes and functions that do not belong to a particular module
│ ├───main.py <-- entry point, run with `uvicorn src.four_channel_electrolyzer.main:app`
└───jig - one-off/test jig code/scripts for use in development