Grumbl is my biggest project to date, its a mobile app that allows users to complain about any issues they may experience in their day to day lives. So far grumbl consists of 2 applications, a service side SOA built in java and a client side Ionic app built with angular. I plan to add an administrative app that i'll build in Google App Engine. The SOA part of the project is deployed on Amazon Web Services.

Grumbl Client

Originally I had planned to build the phone application using phonegap, however part way through the project I discovered ionic. I found it was a more fully featured mobile framework and I decided to use it instead. It has an abundance of directives to make development simpler with Angular and it provides templates and icons for the UI. The angular app simply servers up JSON content from the server based on the users authentication token being valid. Angular allows you to define services as injectors, which in my case allowed me attach the token (local storage based) to every subsequent request after the login page.

From the initial screen the user can perform a number of actions, these include login in with an account, login via facebook, create a user or retrieve forgotten details. You can see how these look below

Once logged in you're presented with an accordion containning all the complaints sorted by status.

You can also slide out the right menu to create a complaint, change your password (if you didn't log in with facebook) or to logout. The change password screen is a page that contains a simple form. The create complaint page is also mopstly made up of input boxes but it allows the user to open their camera or media folders directly from the app. This was done using ngCordova, another great angular app made by the ionic team. NgCordova is made up of Angular directives that allow the application to perform some native mobile app features, these have all been converted from the original cordova javascript based functionalities.

You can also view the complaints from the home page by selecting each individual complaint. The complaint may contain comments for any additional information to be entered.

Please feel free to download the app and let me know what you think. Any feedback is greatly appreciated.