Developing a CRM is not an easy task, especially if you compare it with the big ones in the market like Siebel; but of course, not impossible.
Remember that with the formation of large companies, the degradation of 1 to 1 contact begins, leaving aside the connection and the more personal relationship with customers; And thinking about this company-client relationship, the need arises to recover personal ties with them.

To foster this relationship and a knowledge in a 360º view with our customers, CRMs have a fairly high number of modules, on which the Client will always revolve as a module or main entity.
Which modules to implement?
It is very difficult to determine which modules to include and which to discard, this will always depend on the main activity of the company: The Customer will be (indisputably) the main entity of any CRM and then we can couple the Sales Opportunities, the Activities that will be the interactions we have with the client, the Contacts, we also have the Service Requests that can help us in the task of managing service orders (which to in turn it is another module); In short, as we see there is a very wide range of responses to our business requirements.

Where to develop our CRM? (IDE)
Of course, there is a wide variety of languages and programming environments; however, Java being multiplatform is presented as an excellent option considering that JVM virtual machines work on most operating systems, in addition to being open source and includes many libraries to do anything. If we add to this the development in any of the IDEs that are on the market, the task is more achievable.
Eclipse in this sense is a good option, since it allows you to manage, among other things, the connection with the database and access to objects automatically (with hibernate); version control can be carried with the Subversion, we can include as a web server the Tomcat; in short, it is presented as a good basis to start with a custom-developed CRM.
I leave you some tips that can be useful for development with Eclipse:
- How to deploy 2 applications on the same server (On-premises and Web)
This can be useful when we have different lines of business (or verticals) to respond to.
First we will have to have the applications in our Project Explorer:
Windows -> Show View -> Other => Once the subversion is installed, the SVN option will appear, when we deploy it we will select SVN Repositories.
Already from the SVN Repositories tab, we will checkout the projects.
In Project Explorer we will see all the applications that we have.
- On the Web: Generate a .war file of the entire application (this includes the xml configuration files, the web resource (html, css, js etc)) and copy it to the folder C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps simply running the application will already be deployed on this server.
- In Local: I “add” another application to the server
Inside Eclipse –> Windows -> Show View -> Server Select the server –> Right click –> Add and Remove Select the application from: (left) Available to (right) Configured.
- How to change the database to which our application points.
File: hibernate.cfg.xml (from the project)
Parameter: connection.url —> It is the IP address of the database to which that application points
- How to do “Clean” on the TOMCAT server (Web, not local)
Go to folder: C:\Program Files\Apache Software Foundation\Tomcat 7.0\work\Catalina\localhost
Delete from there the folder of the application to which you want to do the “clean”
Go to folder: C:\Program Files\Apache Software Foundation\Tomcat 7.0\temp
Delete all temporary files.


