Hi,
I think you can use the default authentication system and create 2 different groups: 'students' and 'teachers', give 'students' group permissions to all the parts of the application for students; similarly, give the 'teachers' group permissions to all the parts of the teachers application; you can do this with the admin. When you create new users, you should put them in any of the 2 groups; you can do this with the admin or programmatically.
Then, in your application views, remember to check for permissions by using the already available mixins or function decorators.
Please, read this part of the documentation:
Hope this helps.