Classes are configured in classes.xml. Class data is in classes.xml and classes.csv. CSV class:student associations are in class-students.csv.
A class has a primary key, a name, a book, a classroom, a teacher, and students. It also has a foreign key to semester, used by CSV output to represent the 1:N relationship between semesters and classes.
A class's name and book name are generated simply by concatenating the
string class or book with an integer. Classroom
and teacher are chosen randomly from the collections named
classrooms and teachers.
If there are 10 students per class, 10 classes per semester, and 10
semesters, then there are 1000 students across all classes. A collection of
students is configured in students.xml. If this
collection has 300 students, then a student takes 1000/300 or
just over 3 classes on average.
Classes and students represent a M:N relationship. This can be seen in the XML data by looking at the data file classes.xml. For example, class1 has Noel Stout and Gene Lyons; Noel Stout is also in classes 39 and 89. This can also be seen in the CSV data, in class-students.csv. For example the class whose pk=1 has 10 students; the student whose pk=240 is also in classes with pk=58 and pk=80.