1. Introduction
GR8 CRM is a set of Grails Web Application Framework plugins that makes it easy to develop web applications with CRM functionality.
1.1. Customer Relationship Management
Customer relationship management (CRM) is a system for managing a company’s interactions with current and future customers. It involves using technology to organize, automate and synchronize sales, marketing, customer service, and technical support. Wikipedia
2. GR8 CRM Plugins
The GR8 CRM "Ecosystem" currently contains over 40 Grails plugins.
Each GR8 CRM plugin defines a Bounded Context that focus on one specific domain, for example contact, project or document.
2.1. Official / Published Plugins
The following plugins are available in Grails Central plugin repository. This means you can install them in your Grails application the same way as you install other plugins, by adding them to BuildConfig.groovy
Plugin Name | Description |
---|---|
Core features like multi tenancy (used by most other plugins) |
|
Store localized messages in database to support runtime changes |
|
Turn application features on/off for specific users or roles |
|
Core security services |
|
Apache Shiro security implementation |
|
Twitter Bootstrap user interface (used by most -ui plugins) |
|
Add short notes (subject+body) to any domain instance |
|
Tag any domain instance |
|
Contact Management (companies and individuals) |
|
Content Management and authoring (-ui) |
|
Store content in Amazon S3 instead of local server file system |
|
Blog presentation and authoring (-ui) |
|
Task/Calendar Management |
|
Send emails using Grails events |
|
Product and inventory management including administration (-ui) |
|
Order Management including administration user interface (-ui) |
|
Invoice Management including administration user interface (-ui) |
|
Sales lead/opportunity management |
|
Marketing campaign execution and management (-ui) |
2.2. Plugins not yet released
The following plugins are not yet available in Grails Central. If you want to use one of these plugins, create an issue on it’s github project and we will prioritize cleanup and documentation and get it published as soon as we can. You can also contribute by cloning the repos, fix stuff and submit pull requests.
Plugin Name | Description |
---|---|
Add custom (string, number, date) properties to domain instances |
|
Invite external users to your application |
|
Notify users about stuff with a central notification center |
|
Log application events to database |
|
crm-security-ui |
Back Office features for user and role administration |
Project Management |
|
Event (course/conference) management |
|
Let users update their settings/profile |
|
Let users update their public profile |
3. Presentations and Talks
This section includes presentations that describe how to use GR8 CRM plugins in Grails applications and how to develop modular applications.
Presentation Event-driven plugins with Grails 3. Presented at GR8Conf Europe 2015.
Presentation Cut your Grails application to pieces - build feature plugins. Presented at Greach 2015 in Madrid.
Presentation Cut your Grails application to pieces - build feature plugins. Presented at GR8Conf Europe 2014.
YouTube video Cut your Grails application to pieces - build feature plugins. Presented at GR8Conf Europe 2014.
4. Tutorials
4.1. GR8 CRM Web Site
This guide describes how you can use GR8 CRM Grails plugins to develop a simple web site. The crm-content plugin makes it possible to add HTML pages in a content repository and make the pages publicly accessible.
In this tutorial you will create a Grails application that can serve as a public facing web site. It will have built-in content editing features, including image uploads.
5. Demo applications
This section show demo applications based on GR8 CRM plugins.
5.1. GR8 CRM To-Do
This Grails application uses GR8 CRM plugins to create a simple Contact Management and To-Do application. Clone it and run it, you will have it up and running in a minute or two.
5.2. GR8 Contact
The GR8 Contact application is a simple Contact Management application. It was initially presented at GR8Conf Europe 2014 by Göran Ehrsson (@goeh). The github repository contains 5 branches, each representing a snapshot in time during development.
-
master A plain Grails application, created with grails create-app
-
m1 The plugin crm-contact-ui was installed and contact (company/person) CRUD features are available.
-
m2 The plugin crm-content-ui was installed and documents/files can now be attached to contacts.
-
m3 The plugin crm-task-ui was installed and tasks/appointments with contacts can now be scheduled.
-
m4 The plugin cookie-layout was installed and two themes were created to show that UI can change depending on sub-domain.
Four more branches was added for the Greach 2015 demo. |
-
m1-greach: Same as m1 but with Greach theme applied.
-
m2-greach: Same as m2 but with Greach theme applied.
-
m3-greach: Same as m3 but with Greach theme applied and option to import Greach 2015 speakers as contacts.
-
m4-greach: Same as m4 but with Greach theme available. Three themes (Greach, Gr8ConfEU and Gr8ConfUS) available at run-time.
5.3. GR8 CRM Web Site
A sample application that was created by following the GR8 CRM Web Site tutorial (see above) can be found at https://github.com/gr8crm/gr8crm-web
6. Application Events
Most GR8 CRM plugins use application events (synchronous and asynchronous) to communicate with the host application and other GR8 CRM plugins. In this document you can read about some examples where application events are used in GR8 CRM applications. Looking at all these examples you get an understanding of how to think when designing "modular monoliths" with GR8 CRM.