Development Basics - radus28/Vtiger-DevOps GitHub Wiki

As the original source was referred as "CRM" though it is called as same here. But mostly it is used as multi purpose app framework to build different business models.

This app's architecture is HMVC (Hierarchical Model View Controller). It has modularization and it has several standard modules such as Contacts, Products, Invoices and Vendors. This App can be customized to match wide range of business models. The customization can be done by

  • Adding modules (Custom Modules)
  • workflows
  • Extensions/plugins
  • Several other functionalities. Example Mail scanner, web forms, portal , LDAP(SSO), Asterisk(Phone system) etc

Understanding Code

Following materials provide basic understanding of Code and data structures. Anyway you have to deep dive to get sufficient experience on coding

Modules

Modules are actually "Entities" in this App. For example, Student is an entity of a Student Management System (just ER Diagram concept). modules are classified as

  • Entity module - Just to store entity information such as Contacts, Student etc..
  • Extension module - Just to add a functionality to the app. Eg, Email, SMS, Print, Generate PDF etc

Creating custom module

To add new module for specific business requirements, steps are shown in below video. In the video a sample module named "test" is used. Steps are shown to rename it into "Branches" module. It will create a sub module under "Organization" module as branche.

How to create a basic module

Download Sample Module

Any number of fields can be created under each module

How to add a custom field

Adding Picklist to module

Picklists are just managed drop downs.

How to add a custom picklist field

Set Related module (Related Tab) to a module

Related modules are just 1:M or M:M Relationship. Example Contact can have Invoices (1:M).

How to add a Related Modules

Workflows

Workflows are used to automate Business Processes. Example, approving a Purchase order to send supplies.

Create workflows : Settings > Automation > Workflows, Choose module, then click "Add Workflow" button.

Update fields

An entity module's fields can be auto populated / updated when a workflow condition is met

How to add a workflow - Update field

Send email

Emails can be sent through workflows

How to add a Workflow - Send email

Create Entity

// pending content

Custom function

Custom functions are just PHP functions which can be executed when a workflow condition is met.Use below script to register a custom function. https://github.com/radus28/vt.training/tree/master/register-customfunctions

How to add a Workflow Using Custom Function

_Happy coding _:)