Answers.Body: <p>I'd suggest you start at <a href="https://docs.civicrm.org/" rel="nofollow noreferrer">https://docs.civicrm.org/</a>  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.</p>
  
  <p>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.</p>
  
  <p>This is not a simple task and as a beginner you will need to invest considerable time and effort to accomplish this.</p>
  
  <p>In the past we have seen companies use exercises like this as part of recruitment.  Is that your situation?</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-22T10:27:06.737Z
Answers.LastActivityDate: 2017-06-22T10:27:06.737Z
Answers.UserDisplayName: Aidan
Body: <p>I have no idea about civicrm but I am confidant about php,wordpress. Now I am assigned the following task:</p>
  
  <pre><code>Overview:
  
  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.
  
  Requirement:
  
  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.
  </code></pre>
  
  <p>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.</p>
  
Tags: <civicrm-entity>
Title: Is there any step by step guideline to know CiviCRM for absolute beginner?
ThreadText: # Is there any step by step guideline to know CiviCRM for absolute beginner?
  
  (Asked by: username_0 on 2017-06-22)
  
  I have no idea about civicrm but I am confidant about php,wordpress. Now I am assigned the following task:
  Overview:
  
  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.
  
  Requirement:
  
  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.
  
  **Tags:** civicrm-entity
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2017-06-22. Score: 3
  
  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?
  
  
  ---
  
  