I have an application where users are auto shops. Once they register, I want them to be able to edit and save a user profile property that contains a list of "AreasOfExpertise". There are thousands of areas and they are contained in a hierarchy that is 5 levels deep. At the top of the hierarchy are things like tires, windows, engines, transmissions, body work, painting, etc... Each sub level gets more specific down to the level of "snow tires for german cars" etc.... Now, The UI I am imaging is this:



The user will be able to navigate the hierarchy by clicking the name or the little arrow on the right. The user will be able to select an area of expertise via the checkbox. If a selected area has children, all of the children are also selected.

Ultimately I want to store the user's selections as an Asp.Net MVC 4 SimpleMembership user profile property. Ideally I'd like to be able to implement member search/filter where others can find auto shops be the skills they claim to have.

Please advise on whatever you know about. The UI, what controls I should use, how to store this to the database, Entity Framework or SimpleMembership details, some have mentioned Angular or Lucene. I need to get this completed by Tuesday and have no idea where to begin. If you can help I could pay you.

Thanks