I'm a Moodle newbie. For the application I have in mind, I will need to make some code changes. However, I don't want to do it in a way that cuts me off from all of those great new features that are coming along.
Top priority is to set up private courses. Not just unavailable to certain users, but totally invisible to them. Say Moodle contains courses for Dept A, Dept B, and public. Until a user is authenticated, he sees only public courses. As part of his sign-up he can say he belongs to Dept A. Then, once authenticated, he can see public and Dept A courses, but cannot see Dept B courses.
Another need is something like a unique student ID number that the student can't change, so grades for all Dept A courses can be extracted from the database (externally, not from Moodle) and exported somewhere else, where they can be merged based on student ID.
My question is this -- what's the best way to approach making this kind of change so I don't cut myself off from future updates?