OmicronProject / BakeoutController

Backend application to control the temperature and pressure control for introduction into a vacuum chamber
MIT License
0 stars 1 forks source link

Should We Even Build a GUI? #6

Closed MichalKononenko closed 8 years ago

MichalKononenko commented 8 years ago

Considering that the controller will be monitoring the bake continuously, it makes a lot of sense to think of the application as a service. If this is true, then we would have to invest time in both building a logical back end for the app, and a client to interface with it. Concerns will need to be well-separated, especially if we're going to be modifying the GUI.

Why not cut out the JavaFX GUI fat and build a client-server system? Using something like restfulie, we could make HTTP resources hypermedia-aware with comparatively little pain.

I already have an architecture in place to work with React JS, and produce dynamic content. We could easily plug a websocket server into it, and get real-time temperature and pressure readout.

The only downside to this approach is that we would have two delivery pipelines, but even that's no biggie as the client will be self-contained after it's compiled.

The only downside to this approach is that we would need a separate repo and pipe for client development.

MichalKononenko commented 8 years ago

Jersey seems to be a bit better-established

MichalKononenko commented 8 years ago

I had a conversation with @delerla, and I think the GUI is still a good idea for implementing issue #9. We'll start with a simple GUI, then move on to making it an administrative thing for the server in future versions. Building a REST API from the get-go is definitely a good approach, but with only one initial consumer of the data that the API would provide, it violates YAGNI.

MichalKononenko commented 8 years ago

Given our release plan, the answer to this question is YES! Look forward to a 1.0 release with a Java GUI!