I need to create a PoC web user interface for a commercial product. At this point it is purely PoC and there is no budget for an expert (I wish there was as I don't have that much interest in picking up a whole new skillset given my medical situation) so it's down to me to hack something together. I've done a bit of research on what constitutes the "state of the art" and it seems I'm looking at a single page application using HTML5, CSS3 and JQuery with Ajax requests to a back end server API (probably JSON formatted although they could be XML) to retrieve the configuration data it needs to work with. Am I basically on the right track there or is this unachievable pie in the sky or otherwise misguided? Should I be looking at additional JS libraries like Backbone & Angular or will these just clutter things up?
Deployment will be as a JEE web application of necessity so server side frameworks like Node, Play framework etc are of no interest to me. The data access API will of course be in a separate module to facilitate reuse from other places, and I'm quite comfortable building this or speccing it up for someone else on the team. I will most likely be using spring as the server side framework (to provide security etc) but I'm not quite sure how the MVC stuff I've used before fits in with the single page app model. Is it going to be the case that server side MVC is completely redundant / irrelevant and everything will be done in JS on the client side talking to the API module directly? Or should the server side controller be talking to the API module? Advice would be appreciated here, or perhaps I will just suck it and see, as I guess it could work either way.
I intend to start by storyboarding the UI, it's only 8-10 different "screens" so hopefully not too much of a major undertaking. I'm basically thinking of a header, a horizontal navigation bar below that which switches between the screens, and the main page below that, possibly with a column on the LHS containing a sub menu where required, and the main content taking up the rest of the space. So pretty standard fare in that regard. In fact I can probably knock that basic structure up without drawing it first.
On the plus side I don't have to worry about supporting very old browsers at this stage, if at all, as the product is an adjunct to another product, and the browser support strategy for the primary product will basically let us get away with saying you have to use Firefox, Safari or IE9+. Customers are used to this and accept it. Having had to deal with netscape, IE differences back in the day I know this should make my life a LOT easier.
On the down side I haven't done any web development for quite a while, and because of cross browser hassles I have tended to stick to "lowest common denominator" when I have. I do have some experience of HTML & CSS having knocked up a few similar but simpler admin / monitoring interfaces using server side MVC frameworks, but I've not used JavaScript very much at all and I know literally nothing of JQuery so that will be a learning curve. I have access to plenty of books & online training for that though so should be OK. On the layout side, I've not used HTML5 yet and although I think I can probably cope with the leap any pointers to good online resources would be helpful as I'm finding a good book hard to find. I will of course check out the W3C. I have used CSS a fair bit with a reset and grid system and I liked the way that worked, it came very naturally. I got that out of a book. Is this still the way to go for layout & design or should I be looking at other techniques these days?
The main complex thing I'm going to need is a tree editor type control for hierarchical data (you know the sort of thing you see for editing properties in IDEs all the time). Does anyone know of a good, configurable one? I would prefer free but could probably justify paying if necessary.
I'm not worried about fancy animations and visual slickness at this stage but I do want to produce something that doesn't go completely to tulip when people resize their browser, works well with standard features like history and the back button, and allows opening multiple screens in multiple tabs if the users want and so on. Something good enough to actually use to administer the product, basically.
Any other advice from CUKs resident web experts greatly appreciated, even if it's just telling me to stick with what I (sort of) know how to do and knock up a conventional multi-page app
TIA.
Deployment will be as a JEE web application of necessity so server side frameworks like Node, Play framework etc are of no interest to me. The data access API will of course be in a separate module to facilitate reuse from other places, and I'm quite comfortable building this or speccing it up for someone else on the team. I will most likely be using spring as the server side framework (to provide security etc) but I'm not quite sure how the MVC stuff I've used before fits in with the single page app model. Is it going to be the case that server side MVC is completely redundant / irrelevant and everything will be done in JS on the client side talking to the API module directly? Or should the server side controller be talking to the API module? Advice would be appreciated here, or perhaps I will just suck it and see, as I guess it could work either way.
I intend to start by storyboarding the UI, it's only 8-10 different "screens" so hopefully not too much of a major undertaking. I'm basically thinking of a header, a horizontal navigation bar below that which switches between the screens, and the main page below that, possibly with a column on the LHS containing a sub menu where required, and the main content taking up the rest of the space. So pretty standard fare in that regard. In fact I can probably knock that basic structure up without drawing it first.
On the plus side I don't have to worry about supporting very old browsers at this stage, if at all, as the product is an adjunct to another product, and the browser support strategy for the primary product will basically let us get away with saying you have to use Firefox, Safari or IE9+. Customers are used to this and accept it. Having had to deal with netscape, IE differences back in the day I know this should make my life a LOT easier.
On the down side I haven't done any web development for quite a while, and because of cross browser hassles I have tended to stick to "lowest common denominator" when I have. I do have some experience of HTML & CSS having knocked up a few similar but simpler admin / monitoring interfaces using server side MVC frameworks, but I've not used JavaScript very much at all and I know literally nothing of JQuery so that will be a learning curve. I have access to plenty of books & online training for that though so should be OK. On the layout side, I've not used HTML5 yet and although I think I can probably cope with the leap any pointers to good online resources would be helpful as I'm finding a good book hard to find. I will of course check out the W3C. I have used CSS a fair bit with a reset and grid system and I liked the way that worked, it came very naturally. I got that out of a book. Is this still the way to go for layout & design or should I be looking at other techniques these days?
The main complex thing I'm going to need is a tree editor type control for hierarchical data (you know the sort of thing you see for editing properties in IDEs all the time). Does anyone know of a good, configurable one? I would prefer free but could probably justify paying if necessary.
I'm not worried about fancy animations and visual slickness at this stage but I do want to produce something that doesn't go completely to tulip when people resize their browser, works well with standard features like history and the back button, and allows opening multiple screens in multiple tabs if the users want and so on. Something good enough to actually use to administer the product, basically.
Any other advice from CUKs resident web experts greatly appreciated, even if it's just telling me to stick with what I (sort of) know how to do and knock up a conventional multi-page app
TIA.
Comment