How to Create a User Profile Page?

Based on your comments, you should choose option 2 (using special template files). You can do that multiple ways, but I suggest you do the following:

  1. Create a plugin that will setup login, register, retrieve password, profile, delete account, and other related pages; (there will be a lot of pages). Creating a plugin is just a suggestion, but I prefer doing it this way, so it is independent of any theme. This way, when you switch themes, you do not have to make lot of changes to your child theme. This is the back-end for front-end users so to speak, so try to make it theme-independent.

  2. Add functionality to redirect pages and users appropriately

  3. I also recommend creating a new role, to prevent users from going to the back end. Those users who register at the front end will not have any ability to access the backend this way (by backend, I mean the wp-admin area).

I am currently working on a similar project, and this should take you about 3 weeks to a month. But requires lots of planning, otherwise you will lose track of where you are.