How to set up a question/assignment pool for a course website? I have done quite a bit of Drupal work in the past, but am a bit stuck on this one.  The basic idea is that the site will offer 1-on-1 tutoring to students.  There will be there levels of users: Course Admins, Tutors, Students.  What I am looking to do is the following:


A course admin can create a pool of "readings."  A reading consists of something to read, and an arbitrary number of questions to be answered (currently a text-field entry with unlimited number of values.
A tutor, can now create an "assignment" (another content type), for a student that has been assigned to them.  To create an assignment, the tutor would simply select from the list of available readings (The tutor doesn't create any questions, readings, etc.. on their own, they must choose from the pool that has been created by course admins).  I am envisioning the assignment content type as a cloned reading, with the addition of answer fields for the student to fill in.  I believe the reading should be cloned, so that if a course admin updates the questions in a reading while the student is working through answering the questions, their answers will correspond to the old questions.


Any thoughts on how this might be done?  Will it require me to write a custom module, or can something like this be accomplished through the basic content type creation + some rules?  Any thoughts would be greatly appreciated.
You might want to start from the Answers module. Here are some details about it (from its project page):


  Answers enables the implementation of a Question &amp; Answer system in a Drupal site. Users can post questions and other users can answer them.


Head over to its project page for more details.

At its core, this module exists of 2 typical content types:


Question.
Answers.


The Answers module comes with integrations with other modules such as:


the Rules module, to add all sorts of business logic to fit your requirements.
the Userpoints module (and supports voting).


Here is a summary of how I'd implement what you're looking for:


the Questions and Answers are 2 content types, implemented via the Answers module.
Implement the Readings as a (3rd) content type, in which you add Entity references to the various Questions that would fit.
Implement the assignment as a (4th) content type, in which you add Entity references to the appropriate readings.


Not sure if it would be a requirement here, but I can imagine you also might want to add the Group module. Some more details about that:


you can organize the various students that attend a selected course (with group type = Class, or Training), and with each specific course implemented as a "Group".
the Group roles that would make sense in this case are:


course admin.
tutors.
students.
outsiders (= anybody else who is not (yet) involved in a specific class, but for which you want to show them something about such classes, to create awareness).



Disclosure: I'm a (co-)maintainer of the Answers module.