A custom dashboard page can be created by adding dynamic content in a custom cms page. This example covers adding enrolled courses panel in a cms page. A script is added to show enrolled courses panel to a logged in user and register panel to guest user.
CMS page view for anonymous user
CMS page view for logged-in user
For logged in user register panel is replaced with enrolled courses panel.
/* Separate Panel heading for guest user and nonguest user */
/* Separate div for guest ( hide this for nonguest) */
/* Separate div for nonguest ( hide this for guest) */
/* Separate button href for guest and nonguest users */
/* script to call java script API to get enrolled courses */
Here is link to detailed documentation