I want to create a custom ERPNext sign up form where I can let users sign up for desk user role?

I want to create a custom sign up form based on which users can sign up and decide desk role they want.