1. Introduction
GR8 CRM is a set of Grails Web Application Framework plugins that makes it easy to develop web applications with CRM functionality.
You can find more information about GR8 CRM on the main documentation site http://gr8crm.github.io.
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
The GR8 CRM "Ecosystem" currently contains over 40 Grails plugins. For a complete list of plugins see http://gr8crm.github.io.
Each GR8 CRM plugin defines a Bounded Context that focus on one specific domain, for example contact, project or document.
2. Project Management Plugin
This plugin provide storage and services for managing all kind of projects GR8 CRM applications.
Note that this plugin does not contain any user interface components. This plugin contains domain classes and services only. The plugin crm-project-ui provides a Twitter Bootstrap based user interface for managing projects. crm-project-ui depends on crm-project so you only need to include crm-project-ui in your BuildConfig.groovy if you want end-user project management features.
3. Domain Model
4. CrmProject
4.1. Properties
Property | Type | Description |
---|---|---|
number |
String |
Project ID |
name |
String |
Project name |
description |
String |
A longer description of the project (max 2000 characters) |
username |
String |
The assigned project mamager |
status |
CrmProjectStatus |
Status of the project |
date1 |
Date |
Generic date (ex: date of initial contact) |
date2 |
Date |
Generic date (ex: start date) |
date3 |
Date |
Generic date (ex: end date) |
date4 |
Date |
Generic date (ex: archived date) |
address |
CrmEmbeddedAddress |
Embedded address entity (ex: for real estate projects) |
The crm-project plugin does not contain properties for monetary information like project value or currency. For monetary project like sales leads and opportunities you should use the crm-sales and crm-sales-ui plugins. |
4.2. Methods
- CrmContact getCustomer()
-
A convenience method to get the associated contact (organisation) with the role type
customer
. - CrmContact getContact()
-
A convenience method to get the associated contact (person) with the role type
contact
.
5. CrmProjectService
Like most other GR8 CRM plugins this plugin have a main service with methods for creating, searching and updating projects.
5.1. Methods
- CrmSalesProject createProject(Map params, boolean save = false)
-
Create a new project.
def activeStatus = crmProjectService.createProjectStatus(name: 'Active', param: 'active', true)
def acme = crmContactService.createCompany(name: 'ACME Inc.', email: 'info@acme.com',
address: [address1: '123 Demo Street', city: 'Groovytown', country: 'US'], true)
def proj = crmProjectService.createProject(name: 'House construction', customer: acme, true)
assert proj.customer.name == 'ACME Inc.'
- def list(Map query, Map params)
-
List projects.
List myProjects = crmProjectService.list([username: 'myself'], [sort: 'date1', order: 'desc'])
6. Changes
- 2.4.0
-
First public release
7. License
This plugin is licensed with Apache License version 2.0
8. Source Code
The source code for this plugin is available at https://github.com/technipelago/grails-crm-project
9. Contributing
Please report issues or suggestions.
Want to improve the plugin: Fork the repository and send a pull request.