Hi all – Is there a wordpress plugin which provides a custom role to each user?

Specifically, a plugin which would enable teachers to be provided their own specific role eg: Teacher 1, Teacher 2, Teacher 3 and students to have roles such as Student 1, Student 2, Student 3 and enable the teachers to provide content and interact with specific students linked to their role?
Ideally if this could be done automatically it would be excellent.
The functionality intended is for each teacher to have 5 students for example, and be able to schedule lessons and add students to these lessons on a calendar, upload notes and documents for specific students.

Thank you so much