OK, so it turns out the way the database system is handled is quite a bit different than we thought.
First off, the way queries are done. Pat does have access to the entire Baylor Database (and keeps a locally-cached copy of parts), but he only uses it to keep the ECS ActiveDirectory accounts in sync. Faculty doesn't have access to it, neither do we (because the only access would be full access, and since the database contains SSNs that would be dangerous).
The way a Professor normally gets the list of students for their class is by submitting a query to the Baylor Database through a web UI (ClassRoll). Their classes are designated by a CRN# (a unique ID for each class section / lab section). They then get two files for each class:
- One contains the First/Last Name and ID#, which is used for their current gradebook system; it's a "MicroGrade" file
- The other contains First/Last name, email address, and SMTP (the protocol to send emails with); it's an Outlook contacts file.
Each of these files contains an entry for each user currently enrolled in the class (that is, enrolled at the time the query is run). This is crucial, since there are a LOT of students that drop out of classes on day 3 of each semester (due to financial settlement issues) and then get added again around day 6 (after settling the financial issues). So we'll have to figure out a way to keep our stuff in sync (perhaps run queries as a professor on behalf of the professor?).
Pat said the way their local database handles all the add/drop shenanigans is by comparing what is currently stored to the new input (which is in a temp table), marking discrepancies as "dirty", then resolving the conflict on only the dirty rows.
Pat suggested a web UI where a professor could upload the two files for each class (listed above), and then we'd combine the two files according to name to get the information we need. That'd give us a professor (since they're submitting it), a class / lab section (since the files they'd be submitting would correspond to that specific class), and the ID#, name, and email of each student enrolled in the section. The downside to this is that the professor would still have to manually execute the query from their web UI, then upload the two files that were emailed to them (which is gross).
tl;dr: everything is different, build off of what the professors use now.