How to restrict the Donors to have limited functions of CiviCRM?
It sounds like most of what you want you can do via your CMS permissions to give them access to their Dashboard but not to CiviCRM itself