-
Notifications
You must be signed in to change notification settings - Fork 0
/
webSIS.urs
46 lines (42 loc) · 2.92 KB
/
webSIS.urs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
(* Interacting with MIT's Web Student Information System *)
(* Goal: take a TSV file generated by WebSIS with student data and accordingly update a database table of users. *)
functor Make(M: sig
con others :: {Type}
constraint [Kerberos, MitId, UserName, IsStudent, IsListener, HasDropped, Units, SubjectNum, SectionNum, LastName, FirstName, MiddleInitial] ~ others
table user : ([Kerberos = string,
(* Kerberos username for MIT Athena *)
MitId = string,
(* Student ID *)
UserName = string,
(* Normal human name, in the form that will usually be displayed in the app *)
IsStudent = bool,
(* Currently enrolled in the class? *)
IsListener = bool,
(* Auditing? *)
HasDropped = bool,
(* Previously enrolled but since dropped? *)
Units = string,
(* Uninterpreted string from WebSIS, describing how many units of credit the student has signed up for *)
SubjectNum = string,
(* Uninterpreted string from WebSIS, describing which subject number the student is signed up via (matters for cross-listed subjects) *)
SectionNum = string,
(* Uninterpreted string from WebSIS, describing which section number the student is signed up for *)
LastName = string,
FirstName = string,
MiddleInitial = string
(* We need to echo these fields back to the Online Grades System eventually. *)]
++ others)
val defaults : $others
(* When importing a new student record, initialize remaining fields with these values. *)
val amAuthorized : transaction bool
(* Is the current user allowed to import records? *)
val expectedSubjectNumber : string
(* As a sanity check, we make sure the WebSIS data are for this subject number. *)
val fl : folder others
val inj : $(map sql_injectable others)
end) : Ui.S0
(* The user interface is for copying and pasting the output of WebSIS's enrollment report that can be obtained from:
* WebSIS front page (http://websis.mit.edu/)
* -> for Instructors and Departmental Administrators
* -> Registered Student Class Lists (or Pre-registration Class Lists, before the semester starts)
* -> ClassList Download (which masquerades as an Excel file but is really just TSV) *)