Dynamic User Role (DUR) is very essential to control the access of features in the EzyCourse dashboard. It should allow administrators to specify every detail about what each user role can control as the following:
1. Administrators can create different user roles and assign them the right to access the following:
 Different items in the menu and submenu on the user dashboard
 Each product and service like each Appointment, each Event, each Group Chat, each Private Chat, each Live Stream, etc.
 Each category like each course category, each video library, each audio library, etc.
2. Administrators can edit information and redistribute the rights of each user role later after creating each user role.
3. Administrators can separate users into different groups depending on whether they are students or staff members:
 Students can be separated into groups called “circles” which can be further divided into “subcircles”.
 Staff members can be separated into groups called “departments” which can be further divided into “subdepartments”.
4. We need to have some dynamic widgets which show dynamic content based on the user who accesses the platform. For example, they can be a course list, event list, appointment list, assignment list, quiz list, dateline list, etc for each logged-in user. Administrators can design and specify what content details to display on each widget.
5. Administrators can build different dashboards using page builder and dynamic widgets. Administrators can then assign them to different parties using three levels of priority.
 Low Priority (based on user roles): All users with this kind of user role will have access to this dashboard.
 Middle Priority (based on user groups): All users with this kind of group (either circle/subcircle or department/subdepartment) will have access to this dashboard.
 High Priority (based on each user): Only this specific user can have access to this dashboard.
 Middle Priority will override the Low Priority and High Priority will override the Middle Priority.