I have no idea about civicrm but I am confidant about php,wordpress. Now I am assigned the following task:


Currently, when a membership is renewed in CiviCRM the “end date” field on the membership itself is extended by the length of the membership as defined in CiviCRM membership type configuration but no record of the actual length of any one period or term is recorded. As such it is not possible to see how many “terms” or “periods” of membership a contact may have had. 

I.e. If a membership commenced on 1 Jan 2014 and each term was of 12 months in length, by 1 Jan 2016 the member would be renewing for their 3rd term. The terms would be:

Term/Period 1: 1 Jan 2014 - 31 Dec 2015
Term/Period 2: 1 Jan 2015 - 31 Dec 2016
Term/Period 3: 1 Jan 2016 - 31 Dec 2017

The aim of this extension is to extend the CiviCRM membership component so that when a membership is created or renewed a record for the membership “period” is recorded. 

The membership period should be connected to a contribution record if a payment is taken for this membership or renewal.


Create a new CiviCRM extension that creates a new entity (inc database schema install) for the membership period. The membership period should have a start date, end date, should be linked to a membership and it should also be possible to display a linked contribution record.

Create an API for this new entity that can be used like a normal CiviCRM API.

Create new functionality that will populate the membership period when a membership record is created or updated. Use an appropriate CiviCRM approach for this (Hint : Check Civicrm Hooks https://wiki.civicrm.org/confluence/display/CRMDOC/Hook+Reference).

Create a simple but appropriate display somewhere on the contact record to show the membership periods with a link to contribution records if a payment was recorded for the renewal. We would suggest that either some modification of the display of memberships to show within each membership the periods, or failing that, a new contact tab would work well.

I am looking for a guideline to start with the assignment. Would you suggest me - is it possible for a absolute beginner to complete this assignment?. If so please give me some guidelines.


I'd suggest you start at https://docs.civicrm.org/ You'll want to read through the User Guide to get an understanding of what CiviCRM is and what it can do. In particular, you will need to study the Membership and Contributions sections.

From there, head to the Developer Guide to learn how to create an extension, how the API works, what hooks are and how to use them, how to create a new entity etc, etc.

This is not a simple task and as a beginner you will need to invest considerable time and effort to accomplish this.

In the past we have seen companies use exercises like this as part of recruitment. Is that your situation?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.