Power Apps is a suitable platform for building the application you are currently considering.
Designing a menu system based on user types is not complicated at all.
Recently, I implemented a Power App that offers e-NDA signing requests, document sharing requests to suppliers, and other features. The Power Platform is a stable platform for building relatively large mission-critical applications."
1)Setting Default Page by User Type:
To set a default page based on the user's type in Power Apps, utilize the App.OnStart property.
Retrieve the user's type by accessing their email(=User().Email) in App.OnStart, which is typically used as a primary key in Microsoft 365.
In your user list, include a field to manage user types such as 'end user' or 'approver' by individual user.
Then, use a conditional statement to determine the user's type and set the StartScreenForTheUser variable accordingly in the same property.
If the user's type is determined to be 'end user,', Set(StartScreenForTheUser, 'Screen_Vendor_setup'); //screen for Request for vendor setup?
// Define the first screen that an end user meets right after logging in. The end user will see other menus created by the logic explained below (point 2).
If the user's type is determined to be 'approver', Set(StartScreenForTheUser,'Screen_that_approver_access); //screen for Approval?
Finally, assign the value of StartScreenForTheUser to the App.StartScreen property as App.OnStart does not support navigate().
2)Hiding or Showing Menus by User Type:
To control menu visibility based on the user's type, define the menus that each user type can access(in App.OnStart).
If the user is an 'end user,' create a collection (e.g., ColMenu) containing a table with menu items they can access.
Set(ColMenu, Table({Title:"Request for vendor setup", Screen:Screen_Vendor_setup', ....}, Other menus that end user can access....)
If the user is an 'approver,' define the menus specifically for them within ColMenu."
Set(ColMenu, Table({menus that approvers access....});
Of course, there could be many the ways than my thought.😁