It looks like at least the Drupal Commerce module will be needed. Or as an alternative Ubercart.
Views / Rules / Flag / Message
Add to that modules like Views, Rules, Flag and Message and you should already get pretty far. Some more suggestions about these modules:
It's rare to find sites that don't use the (amazing) Views module, which however isn't obvious to get started with (there is so much to learn about it). I learned a lot about this module via the great, and free, set of 30 video tutorials about the Views module.
Combined with the Flag, Rules and Message modules, a lot of site functionality can be delivered already. To get started with Rules, checkout the 32 (!!!) great, and free, video tutorials Learn the Rules framework, organized in 7 chapters. There is a similar set of 8 video tutorials about the Flag module.
For more inspiration about all the things you can do with the Rules module, you may want to look at these interesting questions also:
User registration is a typical feature you can implement with just the Drupal core functionality. But if you're indeed planning to use the Rules module, then you should also look at the Content Access module (with great Rules integration).
Another approach could be to consider any of these Drupal distributions, either by using them, or by experimenting with them and reusing anything of it in some other website (quotes are from their project pages):
Contributed modules for building your own LMS
Some more contributed modules you may want to consider:
The E-learning module, which creates an hierarchical structure like so:
Course > Unit > Exercise > Question
The Organic Groups module can be used to restrict content by groups, e.g. so that only paid users (subscribers) could checkout and purchase selected courses.
- The Course module, to create eLearning courses with any number of requirements for completion.
- The Quiz module, to create graded assessments, and given as a series of questions. Answers are then stored in the database. Scores and results are displayed during or after the quiz.
- The Closed Question module, designed for practicing (students can take as many attempts as they like), with many feedback options and many question types.
- The Exam module, to use your Drupal site to hold exams. Integrates with the Organic Groups module so that all group members will be put into exam mode when the time for exam arrives.