Project Estimations
This is a side project I led a small team developed for business without fund, without resources, without environment but on passion.
The application is to give business a visual view how project budget planned and real cost spent on.
Back to technology it's developed on Grails 2.x framework; Google Charts to display visual graphical charts and tables; jQuery as main JavaScript lib; Twitter Bootstrap for UI; H2 database replaces bloody Oracle and MySQL as the persistent solution.
There is nothing particular if don't drill down to the design.
Google Charts is good choice. It's all in JS. But shortcoming is you have to generate charts and tables in Google Cloud. In a self-contained application and the firewall I.T. Security Nazi set up for you this is just a nightmare. So have to break Google Charts' JS library to make it run locally. This is how harckering culture about. You alway tune your application to its best.
Twitter Bootstrap helps us to get ride of major UI issues from developers. Spending less time on HTML and CSS make us concentrate more on codes adding more value to business. Also Bootstrap works well on mobile device. Basically, you develop UI, that UI could come across web and mobile without changing. I feel it's a much better solution than jQuery Mobile.
H2 in-memory-database boosts whole application performance. Moreover, you have ALL dependency built into one war file. No other outside domain dependency. You can deploy war into Tomcat or heavier WebLogic.
For test framework, we adapt Spock, a unit testing, BDD style framework for Grails; Geb, a functional testing, a very Groovy browser automation, also BDD style framework as web, acceptance testing solution.
At the end, we add flare - Instant Search into the app. In project and estimates list (hundred of them) pages, you type in the search box, every keyup event will query the backend and send the fuzzy search result back (Approximate String Matching). Just like Google Instant Search.
A small but manageable project, Grails and a lot fun!