Aller directement à la fin des métadonnées
Aller au début des métadonnées

Project Proposal


Organization: CiviCRM

Short description: Browser based applications are becoming the de facto web standard. CiviMail is an important component that has a high impact. Current workflow in CiviCRM is lengthy and multi-step process. It would be easily converted into simple javascript application, using modern framework such as AngularJS. CiviMail also is less complex compare to other components which makes it a good fit for usability improvements.


Name: Siddhant Rajagopalan.

Email id :

University: Indian Institute of Technology, Bombay

Graduation Date: 2016

Major: Computer Science and Engineering

Location: Mumbai

Timezone: GMT + 5:30 Profile: rajgo94

URL to CV:

Preferred time of day for virtual/video interview: IST after 9:00 pm.



How many hours will you devote to your GSoC project each week? What are your other summer plans (vacation, this time of year isn't your summer and you are in class, etc)?

I am extremely excited about the GSoC project and will devote at least 36 hours a work. I do not have any other commitments and will devote all my time to the completion of the GSoC project.



Have you registered an account at

Yes, My user name is rajgo94

Have you even built a site with Drupal, WordPress, or Joomla?  (Please provide details)


Have you ever built a CiviCRM site or helped on a CiviCRM project?  


Have you ever posted a questions to the CiviCRM Forums, JIRA, or GitHub?

Yes, I have posted on the CiviCRM Forum.,31821.msg136806.html#msg136806.


Have you ever contributed code to CiviCRM?




Have you ever utilized IRC?

Yes. I have used it to communicate with Kurund Jalmi

Have you ever used GIT?

Yes I have used GIT version control in a class project on simulation of a hydraulic crane using Box2D, which is a platform for simulating physics.

Question on GIT.

We can correct the message using append

git  commit - -append –m  “corrected message”


Question based on given 'almighty_function':

function gsoc_funciton($x, $y, $z) {
  if ($y != $z && $x == $y && $x == $z) {
    return "Success!";
    return "FAIL!"

This function will always return fail. Since for success, we need both y and z to be equal to x but not equal to each other. This is a contradiction forcing fail to be returned for all values of x,y and z.

To fix the function, one of the three if conditions must be removed as all 3 cannot be satisfied simultaneously.




Which project interested you and why?

Mail Blasting UI as a Javascript application is a project I would like to work on.

The internet has been moving towards browser based applications. This is because of their numerous advantages. They are far more user friendly. As a result browser based applications are becoming the de facto web standard.

CiviCRM as an open source project needs to start moving in that direction. CiviMail is an important component that has a high impact. Current workflow in CiviCRM is lengthy and multi-step process. It would be easily converted into simple javascript application, using modern framework such as AngularJS.

CiviMail also is less complex compare to other components which makes it a good fit for usability improvements.

AngularJS is a leading javascript framework and building on it should be a good example for future CiviCRM usability improvements.


Expected Deliverables

1.       Week 4: Detailed Blog post on plan / mockups for the project

2.       Week 9:

•    Public demo instance for showcasing work done and feedback

•    Detailed blog post on status and feedback from the community

3.       Week 12:

•    Code will be available on github and merged with civicrm-core

•    Detailed blog post on implementation / current functionality

•    Document what’s done and further improvements



Timeline for the project


Week 1-2 : Research weeks

1. Get up to speed on AngularJS

2. Get up to speed on CiviMail functionality

3. Research and compare popular mailing blast solutions, what we can learn from them

4. Learn CiviCRM REST API and scope out new api’s ( if needed )

5. Research into tests to run for the code


Week 3: Design and Usability mockups

1. Based on research create wireframes for new CiviMail UI

2: Create high level specifications


Week 4-6:

1. Blog post on summarizing findings of research and the specifications

2. First prototype of the new CiviMail UI

3. Minimal set of tests to ensure working of the prototype


Week 7-9:

1. 2nd iteration based on the feedback from early alpha testers

2.  A blog post with details of the new version and requests of feedback from the community

3. Deploy a public demo instance



Week 10:

1. Integrate with AB testing project ( if project is approved and if time permits )

2. Extend current work to cover all CiviMail settings

3: Document work done

4: Create plan to migrate other civiCRM components to a similar framework


Week 11:

1. Testing and bug fixes

2. Merge new code into CiviCRM master


Week 12:

1. Project wrap up and buffer week

2. Final blog post: Learning, what’s achieved and roadmap for further improvements


Potential Mentors: Kurund Jalmi


Which part of the project is most difficult?

•    Getting up to speed with AngularJS for completion of a complex project It would be challenging to implement event application.

•    Getting up to speed with CiviCRM code base and CiviCRM API’s

Easiest Part of the project?

Weeks 1 and 2. Research and developing UI mockups


Work to be done before the project:

•    get up to the speed on Javascript basic syntax and event handling

•    go through AngularJS tutorials

•    setup local development sandbox with Drupal and CiviCRM from github

•    Research competing tools such as MailChimp, Constant Contact, Campaign Monitor etc.


Benefits to CiviCRM from the project:

Currently CiviCRM uses PHP and is a server based application.

CiviMail has 5 page wizard which is to be used by everyone irrespective of their requirements. The interface is not very user friendly and it can easily be converted into single page application.

If we follow a model like that of gmail, that is we use AngularJS to make it a single page application, there will be several advantages. For eg: in gmail there is no page reload when we compose a mail and everything looks very seamless.

People who want to send simple mails using only the regularly used features will not have to go through multiple steps.

We can have options bar for the people who want to use some of the less frequently used features of CiviMail.

People who want to use features that are rarely used should be moved to an extensions and simplify existing form.

The autosave of drafts will also behave better.

Using this sort of a model, CiviMail will become far more user friendly for all types of users.

This could act as a platform for CiviCRM to move in the direction to do more things on the client side.

This project will go a long way in enabling the community to add features like a template editor and content editor over and above this user interface.



I am a second year undergraduate student studying Computer Science and Engineering at the Indian Institute of Technology, Bombay. I have been coding since Standard 9 and have developed a keen interest in Computer Science.

I have Worked in Web Access on the Wealth Lab software. Designed an algorithm and wrote a code  which gave buy and sell signals for the United States stock market based on technical indicators.  Simulated it on past data, yielding successful results. This gave me an understanding of using data for technical analysis of the market.

I have made several C++ projects like one to identify shapes in a picture using the OpenCV library.

I have a good academic standing. I secured an all India rank of 331 out of 5 million candidates in the IIT JEE entrance examination. I have cleared the Regional Maths Olympiad and come 1st in Maharashtra and India in several Mathematics Examinations (Macmillan Examination conducted by Australia, Mathematics Exam conducted by the Institute of Promotion in Mathematics). I have also been awarded the prestigious Pradnya certificate.

Besides academics I enjoy playing lawn tennis, listening to rock music and playing chess.

I feel that I am the right person for the task and would cherish the opportunity to do this project.

  • Aucun

Creative Commons License
Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-Share Alike 3.0 United States Licence.