Course functionalities

CRUD operations added. You can join / leave as a student or as a
lecturer depending on your user role.