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

Project Management 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.

Example.groovy
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.

FindMyProjects.groovy
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.