OpenframeProject / Openframe-APIServer

The Openframe API server.
GNU Affero General Public License v3.0
20 stars 7 forks source link

Complete rewrite #17

Open jvolker opened 2 years ago

jvolker commented 2 years ago

Hi @jmwohl,

I hope you are doing great. I remember you saying that this API Server would need a complete rewrite to continue development on it. I am not quite sure what the reasons are. But I have the feeling that what is holding this project back from growing (apart from a lack of dev time) is to decouple artwork formats from extension which requires a change of the API. If that would be done it would for example be easy to implement a web-based (or even Windows) based version of the Frame controller. A web-based controller would be easier to maintain and run on a large number of devices. The Raspberry Pi version is still great, but I think a web-based version is more needed.

Whenever I think about Openframe I think about this issue. I hope that maybe describing this task, the preferred stack, and laying out the required features could help one of us or someone else to pick up the work on this.

Since I gained some more experience with writing APIs lately, I was wondering what your preferred stack for this would be? What do you think about this?

I'm not sure what exactly all the features would be. I probably missed something here. Please add your thoughts, if you like.

Thanks.

jmwohl commented 2 years ago

Hey @jvolker, nice to hear from you here!

Glad you're still thinking about Openframe :).

The API Server doesn't necessarily need a complete re-write, but it's on a now unsupported version of loopback.

We totally agree about the web-based frame. For the past year or so, @ishback and I have been working on zeroframe, which is a new (not open source) platform that takes a lot of inspiration from Openframe, and is based on web technology. Would be awesome if the Openframe community wanted to move Openframe in that direction as well!

Regarding the tech stack, I think what you've suggested would work fine. Using something like Loopback provides a bit more functionality and structure out of the box, which is advantageous for getting applications up quickly... e.g. Users, access control, model lifecycle hooks, etc.

Happy to continue the discussion...