4-channel Electrolyzer (Reimagined) Backend
  • Python 79.7%
  • Jupyter Notebook 20.3%
Find a file
2026-03-13 15:51:09 +01:00
.vscode Added .launch.json debug configuration 2025-12-23 21:31:20 +01:00
src Titrate pump time and speed 2026-03-13 15:51:09 +01:00
.gitignore Project scaffolding with uv 2025-12-22 17:01:55 +01:00
.python-version Use Python 3.12 2026-01-05 11:39:16 +01:00
pyproject.toml Add ipykernel 2026-02-05 14:05:18 +01:00
README.md Use Python 3.12 2026-01-05 11:39:16 +01:00
uv.lock Add ipykernel 2026-02-05 14:05:18 +01:00

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