So I'm not sure if this is really the right place to ask or even the right question but I want to give it a try.
We should have a database & webservice (or something similar) which runs in OUR office, clients cann access the application via the internet ("wohooo"). Clients must be able to create orders in a simple mask. There is a basic mask (which all clients have), but the mask can also have some client-specific stuff. When they created the order, a label with a barcode (which contains the order number) is printed locally (and automatically) at their office on a label-printer. They take the label and put it on a sample, which they then send us (on the real post-way). We get the sample, scan the barcode on the label and the order appears in our "administration-screen". We then have every information we need about the order (and the sample). Surely we also need a backend where our staffmembers can edit the client-specific mask and add some fields (for specific-clients) and other master-data.
All in all this doesn't sound too complex. The only thing which stands out a little, may be the automatic print of labels at their place I guess. Because of this reason it may not be possible to use a "server-side only" architecture (like jsf or spring with jsp and so on), because you have to have access directly on their local printers.
So I thought a good way is maybe to use spring (with Hybernate, JavaBeans (JEE)) together with JavaFX which would allow to access local printers and so on. I thought we could just make a webinstaller/webstart for the application, which installs the JavaFX clients for the clients. The JavaFX client could then communicate with the webserver (spring) and insert the order there, get all required information like the order-number for printing the label and so on. For the backend in our office I could also imagine to use JavaFX...
So where's my question?
Well its simple: Is this a good way to do it? Are these fitting technologies for doing it? Or is it already to complicated and this could be accomplished in a much easier way? If so what do you suggest?
Naturally I also want to lay a big focus on easy extensibility and maintainibility.