Yes this is all possible, in fact if you look at the assessment section of the Adapt demo you can see it doing exactly that ;-)
You will need to use:
- assessment
- assessmentResults
- trickle (if you want the questions to be presented one-at-a-time)
In fact, if you just set up a new course using the framework, the assessment that is contained in the 'out of the box' content that process generates does most of what you want - so I would suggest you do that, have a look at the settings applied to the OOTB course and then read the README and example.json for each of the above extensions to find out what other settings (such as question pooling/banking/randomisation) are possible.