Answers.Body: <p>We have a site for students and schools/providers. it is all run off Relationships and Activities and I think some of how we approached this could assist your project.</p>
  
  <p>I would make each Class a Contact, then you put a Relationship between the Teacher and the Class, and another one between the Class and the Student. That way a Teacher can change and it only requires one form to be submitted (end old Teacher relationship, create new one)</p>
  
  <p>We built a customisation of CiviReports so a teacher can see all 'their' students (ie the ones in Class X that teacher has relationship to) and can submit the Attendance for all class students on a single form (this uses one Activity per week but could be modified for one Activity per class with 20 yes/no fields for the 'term')</p>
  
  <p>Here are more specific answers:</p>
  
  <blockquote>
    <p>Is it possible to model and manage the classes in a UI form like e.g. contacts as own data structures (room, date, theme, ...), building a new structure that does not yet exist in CiviCRM?</p>
  </blockquote>
  
  <p>I would attempt to do this with Class as an Org sub-type</p>
  
  <blockquote>
    <p>How best to describe the affiliation of a student/teacher to a class? Is there a possibility except 'Tags'?</p>
  </blockquote>
  
  <p>Per my comments above, I would use Relationships (using our extension <a href="https://github.com/eileenmcnaughton/nz.co.fuzion.relatedpermissions" rel="noreferrer">Permissioned Relationships</a> so you benefit from ACL and 'second degree' relationship ACLs)</p>
  
  <blockquote>
    <p>The registration and deregistration of a student/teacher to a class must be logged. It must be possible to determine at any time which student has been in which class for how long.</p>
  </blockquote>
  
  <p>Do as an Activity - possibly using an approach similar to our customised civireport interface so you can batch record attendance.</p>
  
  <blockquote>
    <p>For the purpose of attendance control of the lessons, a form must be printed out with the names of the students in the lessons, the lesson dates, etc. of a particular period (e.g., a month or quarter). This is filled in manually during the lesson (present yes / no). For this, a database query must determine the participants of the class and submit this list to a print template. Is there an example for this procedure?</p>
  </blockquote>
  
  <p>This could either be done via a Smart Group 'export' or via a Drupal Views csv download.</p>
  
  <p>NOTES</p>
  
  <p>You haven't said anything about whether a Teacher 'should' only see their students, or if it at least would make is simpler for the teacher if they only see students they teach. using Permissioned Relationships delivers this simply but may not be required.</p>
  
  <p>For our design, using Drupal, we build a lot of lists/forms using Views and Webforms so that the normal Teacher doesn't need to actually interact with CiviCRM itself. Everything they need is provided via Menu Blocks, with simple links to their lists of Classes, Students, forms that need submitting, Attendance Reports etc. Happy to explain more offline if that sounds useful. (petednz on chat.civicrm.org)</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-10-08T07:57:48.913Z
Answers.Text: I hope a comment is the apropriate way to answer ...
   
  This is really helpful - sure a good way to organize the student-class-teacher relationship without using Tags and implement attendance control via activities.
  Beinig new to CiviCRM, I have to do some further investigation how this works in practice.
  Your question - the relationship student-class is made by the staff, it doesnt matter how much of the students can be seen by the teacher. Views and Webforms sound interesting.
  Thanks for your insights!
Answers.UserDisplayName: Amica Benz 
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-10-08T20:31:39.863Z
Answers.Text: Hi Amica - yes a comment on an Answer is the way to either respond or ask for more details. good luck
Answers.UserDisplayName: petednz - fuzion
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-10-07T19:14:49.067Z
Answers.LastActivityDate: 2018-10-07T19:14:49.067Z
Answers.UserDisplayName: petednz - fuzion
Body: <p>I'm looking for a software for a non-profit organization, which should cover some special functions in addition to the 'normal' CRM functionality and wonder whether CiviCRM is suitable. I've been working in software development for a couple of years, mostly Java, but have no idea about Drupal, PHP, etc. I've installed and looked at CiviCRM, read some documentation, but have no clue if this (see below) can be done with CiviCRM out of the box or maybe with some own develpment.</p>
  
  <p>One can imagine the scenario as follows: A school has modeled students and teachers as contacts. Each student belongs to exactly one class (about 8-14 students per class), lessons take place once a week, the class on a certain theme runs longterm, the students and sometimes the teachers change after a few months. Students can participate sequentially in one of about 20 classes. At each lesson, the presence of students is checked manually by means of a list.</p>
  
  <ol>
  <li><p>Is it possible to model and manage the classes in a UI form like e.g. contacts as own data structures (room, date, theme, ...), building a new structure that does not yet exist in CiviCRM?</p></li>
  <li><p>How best to describe the affiliation of a student/teacher to a class? Is there a possibility except 'Tags'?</p></li>
  <li><p>The registration and deregistration of a student/teacher to a class must be logged. It must be possible to determine at any time which student has been in which class for how long.</p></li>
  <li><p>For the purpose of attendance control of the lessons, a form must be printed out with the names of the students in the lessons, the lesson dates, etc. of a particular period (e.g., a month or quarter). This is filled in manually during the lesson (present yes / no). For this, a database query must determine the participants of the class and submit this list to a print template. Is there an example for this procedure?</p></li>
  </ol>
  
  <p>Thank you for your comments!</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-10-07T19:03:11.643Z
Comments.Text: Welcome Amica - I tweaked the Subject to get it 'in scope' since this channel cannot answer a 'is this the best' ;-) Answer to follow
Comments.UserDisplayName: petednz - fuzion
Tags: <evaluating-civicrm>
Title: Is CiviCRM a viable choice? 4 Questions
ThreadText: # Is CiviCRM a viable choice? 4 Questions
  
  (Asked by: username_0 on 2018-10-07)
  
  I'm looking for a software for a non-profit organization, which should cover some special functions in addition to the 'normal' CRM functionality and wonder whether CiviCRM is suitable. I've been working in software development for a couple of years, mostly Java, but have no idea about Drupal, PHP, etc. I've installed and looked at CiviCRM, read some documentation, but have no clue if this (see below) can be done with CiviCRM out of the box or maybe with some own develpment.
  
  One can imagine the scenario as follows: A school has modeled students and teachers as contacts. Each student belongs to exactly one class (about 8-14 students per class), lessons take place once a week, the class on a certain theme runs longterm, the students and sometimes the teachers change after a few months. Students can participate sequentially in one of about 20 classes. At each lesson, the presence of students is checked manually by means of a list.
  
  1. Is it possible to model and manage the classes in a UI form like e.g. contacts as own data structures (room, date, theme, ...), building a new structure that does not yet exist in CiviCRM?
  2. How best to describe the affiliation of a student/teacher to a class? Is there a possibility except 'Tags'?
  3. The registration and deregistration of a student/teacher to a class must be logged. It must be possible to determine at any time which student has been in which class for how long.
  4. For the purpose of attendance control of the lessons, a form must be printed out with the names of the students in the lessons, the lesson dates, etc. of a particular period (e.g., a month or quarter). This is filled in manually during the lesson (present yes / no). For this, a database query must determine the participants of the class and submit this list to a print template. Is there an example for this procedure?
  
  Thank you for your comments!
  
  **Tags:** evaluating-civicrm
  
  > **Comments:**
  > **username_1**: Welcome Amica - I tweaked the Subject to get it 'in scope' since this channel cannot answer a 'is this the best' ;-) Answer to follow  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2018-10-07. Score: 8 | Accepted answer
  
  We have a site for students and schools/providers. it is all run off Relationships and Activities and I think some of how we approached this could assist your project.
  
  I would make each Class a Contact, then you put a Relationship between the Teacher and the Class, and another one between the Class and the Student. That way a Teacher can change and it only requires one form to be submitted (end old Teacher relationship, create new one)
  
  We built a customisation of CiviReports so a teacher can see all 'their' students (ie the ones in Class X that teacher has relationship to) and can submit the Attendance for all class students on a single form (this uses one Activity per week but could be modified for one Activity per class with 20 yes/no fields for the 'term')
  
  Here are more specific answers:
  
  > Is it possible to model and manage the classes in a UI form like e.g. contacts as own data structures (room, date, theme, ...), building a new structure that does not yet exist in CiviCRM?
  
  I would attempt to do this with Class as an Org sub-type
  
  > How best to describe the affiliation of a student/teacher to a class? Is there a possibility except 'Tags'?
  
  Per my comments above, I would use Relationships (using our extension [Permissioned Relationships](https://github.com/eileenmcnaughton/nz.co.fuzion.relatedpermissions) so you benefit from ACL and 'second degree' relationship ACLs)
  
  > The registration and deregistration of a student/teacher to a class must be logged. It must be possible to determine at any time which student has been in which class for how long.
  
  Do as an Activity - possibly using an approach similar to our customised civireport interface so you can batch record attendance.
  
  > For the purpose of attendance control of the lessons, a form must be printed out with the names of the students in the lessons, the lesson dates, etc. of a particular period (e.g., a month or quarter). This is filled in manually during the lesson (present yes / no). For this, a database query must determine the participants of the class and submit this list to a print template. Is there an example for this procedure?
  
  This could either be done via a Smart Group 'export' or via a Drupal Views csv download.
  
  NOTES
  
  You haven't said anything about whether a Teacher 'should' only see their students, or if it at least would make is simpler for the teacher if they only see students they teach. using Permissioned Relationships delivers this simply but may not be required.
  
  For our design, using Drupal, we build a lot of lists/forms using Views and Webforms so that the normal Teacher doesn't need to actually interact with CiviCRM itself. Everything they need is provided via Menu Blocks, with simple links to their lists of Classes, Students, forms that need submitting, Attendance Reports etc. Happy to explain more offline if that sounds useful. (petednz on chat.civicrm.org)
  
  > **Comments:**
  > **username_0**: I hope a comment is the apropriate way to answer ...   This is really helpful - sure a good way to organize the student-class-teacher relationship without using Tags and implement attendance control via activities. Beinig new to CiviCRM, I have to do some further investigation how this works in practice. Your question - the relationship student-class is made by the staff, it doesnt matter how much of the students can be seen by the teacher. Views and Webforms sound interesting. Thanks for your insights!  
  > **username_1**: Hi Amica - yes a comment on an Answer is the way to either respond or ask for more details. good luck  
  
  ---
  
  