As I get to know SilverStripe, I'm always interested in finding the best ways of doing certain things, the best 'idioms' if you like. One area where I've spent some time playing and I'm still not certain how best to do it is in what might loosely be termed 'data entry'. For the site I'm working on, for example, we need to input quite a few simple Student records (name, institution, project, etc). A Student isn't a page, though - there's no reason for the Student class to extend Page, it just needs to extend DataObject. How then, do I enter a bunch of DataObjects into the system? If I do it via the CMS back end, at some point I have to think in terms of pages. One thing I tried was to create a Students page which was simply a holder for Student records (and which allowed me to enter them via ComplexTableField), and which was not to be displayed in menus, etc., but this felt kludgy. It feels as if the CMS back end should be about pages which display in the site - that's what it's set up to do.
An obvious alternative is to do it via the front end. But the problem with this, of course, is that it then makes a rather messy split of site maintenance functionality, with some being done via the CMS back end and some via the front end - perhaps a little hard to explain to a non-techie user (the sort of person I'm developing the site for).
How do other more experienced SilverStripers do this kind of thing? Incidentally, I suddenly have a strange feeling I've asked this question before, so apologies if I come across as a stuck record (if that expression means anything to those who have grown up in an MP3 world).