Need to build a catalog item

Hi ,
I need to build a catalog item which is provided to end user for self service to create a project namespace in OpenShift .
it should ask : Project Name,Display Name ,and Groups to be added to the project .It should send email for approval and then proceed.

If someone can provide detailed steps would be helpful as need to understand how the flow works and how and which inbuild methods we can use.