Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extendable backend using plugins #420

Open
11 of 20 tasks
mgineer85 opened this issue Feb 7, 2025 · 0 comments
Open
11 of 20 tasks

Extendable backend using plugins #420

mgineer85 opened this issue Feb 7, 2025 · 0 comments
Labels
docs 📄 Improvements or additions to documentation enhancement ⚡ New feature or request needs testing 🔬 Issue needs testing open mic 🎙️ Issue/PR in context is open for discussion, Tune in to add your own views.

Comments

@mgineer85
Copy link
Collaborator

mgineer85 commented Feb 7, 2025

Currently working on a plugin mechanism that allows flexible extension of the backend. It could be used to modify the apps behaviour by attaching functions to events. Example: WLED integration or GPIO could be moved to the plugins and so customized. Add a function to switch a GPIO when the photobooth starts a countdown would be very simple to realize...

The implementation is currently here and will be merged later once the basic functionality is ready: https://github.com/photobooth-app/photobooth-app/tree/plugin-architecture

Functions planned:

  • Discover plugins by entry-point (this way the community could write plugins and they are detected automatically if installed by others)
  • Register class detected by entry-point and initialize.
  • Start / Stop plugins as the app starts/stops
  • Automatically detect if the plugin has configuration options and show the options in the frontend.
  • Define hooks
    • plugin start/stop
    • config save/load/persist
    • statemachine countdown, shoot, standby, ...
    • acquisition trigger, captured, ...
    • mediaprocessing pipelines
    • ...?
  • Create example plugins
    • WLED
    • GPIO output
    • custom commands plugin
  • Add documentation
    • How to write a plugin
    • How to publish a plugin
  • add tests
  • error handling to avoid plugins breaking the whole app if they fail.

Out of scope currently

  • extending the frontend
@mgineer85 mgineer85 added docs 📄 Improvements or additions to documentation enhancement ⚡ New feature or request needs testing 🔬 Issue needs testing open mic 🎙️ Issue/PR in context is open for discussion, Tune in to add your own views. labels Feb 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docs 📄 Improvements or additions to documentation enhancement ⚡ New feature or request needs testing 🔬 Issue needs testing open mic 🎙️ Issue/PR in context is open for discussion, Tune in to add your own views.
Projects
None yet
Development

No branches or pull requests

1 participant