Wednesday, May 28, 2014

Building a Group-Office client with AngularJS and Bootstrap

To demonstrate how easy it is to build a client for Group-Office, I've created an AngularJS app. It demonstrates that the server side PHP code of Group-Office is in fact one big JSON API that can be talked to with a completely decoupled client.

It's a very simple interface that was just for a "Proof of concept" but here's a screenshot:

E-mail App in Angularjs Group-Office client

When we'll replace the current ExtJS 3 based user interface we'll use the same approach.

I've created a GitHub repository for the Group-Office client here:

Note that this client will only work with Group-Office 6.0.3 which you can get here:

I hope you like this example! You can also integrate these kind of API calls into your website or another application. Let me know what you think about it!


Note about CORS

If you run the Group-Office server on a different domain than this client you'll need to enable CORS. Otherwise you'll get errors like:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote
resource at http://localhost/groupoffice. This can be fixed by moving the resource
to the same domain or enabling CORS.

You can read more about enabling CORS on Group-Office here:


  1. Hi, I am really happy to found such a helpful and fascinating post that is written in a good manner. Thanks for sharing such an informative post.
    Selenium Course in Chennai

  2. MovieBox For iPhone 7s plus the theory and advertising of the film was all forms of wrong. Body and model promoter a picture was posted by cartoon HD Apk Official Siteof what resembles a fat that is clamorous -shaming poster for the spoof film the 7 Dwarfs as well as Red Shoes. Her tweet came in from La, where the poster was seen, but it is not clear.
    Recognizing that other smartphone manufacturers, like Sharp using its Aquos Crystal mobile, have reached border-to-border screens by setting the front-facing camera on the underparts of the the mobile, Rubin said that was not an alternative for Crucial.