How can I create a custom dashboard for a membership website?

The simplest method would be to create a single page and use a custom page template.

For example, make a page with slug my-account. Then create a template and name it page-my-account.php.

Then within that template, check if the user is logged in, and load their data if they are.

if( is_user_logged_in() ){
    $current_user = wp_get_current_user();
    echo 'Username: ' . $current_user->user_login . '<br />';
    echo 'User ID: ' . $current_user->ID;
} else {
    echo 'You must be logged in to view this page';
}