Welcome to Roster-in-a-Box
The software can be downloaded from this page.
WHAT IS IT?
Roster-in-a-Box is a course management system designed to facilitate
the use of autograded homework assignments, while also allowing for
text-based questions to be submitted online and graded online by the
instructor. I developed and currently use the system for my
introductory statistics and microeconomics courses at Long Island
University, and I have had it in production since 2005. While you
will be able to break the program if you try hard enough, it is stable
and very much ready for use.
I wrote the program because I wanted something simpler than Moodle (and
also because my school was not supporting Moodle at the time that I
started the project). I love Moodle, and Moodle may be right for
you, but it wasn't right for me, because I didn't want the course
management system to take over my course web site. Basically,
Roster-in-a-Box handles the homework and grading functions with a
couple of web pages and leaves you on your own to design the rest of
your course web site. That may or may not be what you want.
It should be quite simple to take my statistics modules (and the
forthcoming microeconomics modules that I just haven't gotten around to
packaging) and get your own introductory statistics course up in no
time. It is also quite simple to set up a course that consists of
only text-based, manually-graded questions. On the other hand, if
you want to write auto-graded assignments for some other purpose, you
will have to know how to code them yourself. The structure of the
modules should be somewhat self-explanatory to experienced programmers,
but is probably daunting to those who do not know how to code.
The entire program is written in PHP, and uses MySQL as a back-end
WHAT'S IN THE BOX?
This program consists of three main web pages, an optional set of
modules, and a set of utilities that you may or may not find useful.
The programs should all be put in the same directory (except for the
modules, which can be put in a subdirectory), and you will need a
separate directory for each course.
The three web pages are:
This is probably the least interesting one, but it is the one you have
to deal with first. Roster-in-a-Box assumes that you have set up
a MySQL server that is accessible from the web site where you will host
the page (possibly on the same machine), and that you have a
password-protected user account on the MySQL server. You will
specify the user account here, and you will use the same account name
and password to log into Roster-in-a-Box. If you're not sure
about whether you have a MySQL account running on your server, ask your
system administrator. If you are the system administrator, you
may have to read up on the basics (and really just the basics) of MySQL
to get your MySQL server running.
You will also have to specify the name of the database that you will
use for the rosters, and also the names of four MySQL tables (a table
is like a component database). The program needs one table to
hold the grade records, one table to hold student requests for
accounts, one table to hold the list of assignments, and one table to
record whether or not each assignment has been graded (this is only
relevant for manually graded assignments).
You have to be careful that each table has a different name, and that
you use a different set of tables for every course. You can
ensure this by simply using a different database for every
course. Roster-in-a-box will check that your names do not
conflict within a course, but does not know what you are doing in other
You do not have to create the database and tables yourself;
Roster-in-a-Box will take care of that for you. You just have to
give them names.
You can also specify the background and foreground colors here to match
the rest of your site. I made the settings manual so that it
would be recoverable if you accidentally set them to the same color.
This is the course administration module. It's just a regular PHP
page to be loaded up onto your web server and viewed. The first
thing you do (after you log in) is click on "Create Database" to create
the database. You will then be able to create a list of
assignments by choosing "List of Assignments." The list will
initially be empty, and you can keep adding, editing, and deleting
assignments until you are happy with the list. Then you can
choose to "Go Live." Note that the assignment list will reset
Once you are live, you will see a new set of tabs to view and edit the
grade rosters. These views include class summary, a detail of
each student, and a detail of each assignment. Under each view,
you will find various relevant functions to edit the roster (for
example, adding grades for the class can be done under the assingment
detail, changing a student's password can be done under the student
Once the system is live, you cannot edit the list of assingments (this
is for your own protection and that of your students), but you can
change the titles and due dates of the assignments by clicking on the
This page should be linked to on the main course web site. It is
the page that students use to do the homework. When a student
opens the page, he/she will be able to select a homework assignment to
work on, and then complete and submit that assignment.
The modules will generally go in a subdirectory, and the name of that
subdirectory can be specified in site_settings.php (though it is
./modules by default). Each module is a separate PHP file, and
will advertise itself to administer.php as a type of autograded
question that can be added to an assignment when you choose to add an
autograded question. Sample module subdirectories are included
with the package, but none is actually called modules; you will either
need to rename one of the diretories to "modules" or change
site_settings.php to use these modules for a course.
There are a handful of utilities that I have used for my courses; some
are indispensible, while others may or may not be useful to you.
- view-grades.php should be linked to from the course web site, since it allows students to view their grades as the semester unfolds.
allows a student to see the instructor's remarks for a single manually
graded assingment. If you are not using any manually graded
assignments, then this page is not needed; otherwise, it is.
sends out e-mail notifications to currently enrolled students that they
have assignments that are overdue but still being accepted. This
is useful for clearing up misunderstandings with students who somehow
think (or claim to think) they have submitted an assignment when they
in fact have not. The page will send out notifications whenever
it is viewed (but not produce and visible output on the page); you can
have the process automated by for example setting the crontab on the
web server to view the page once or twice a week with a text-based
browser such as lynx.
e-mails a backup of the roster to the instructor's e-mail
address. This is useful in case the system goes kerplooie, but
also for the spiritual fellow travellers of the students mentioned in
the last paragraph who claim that their grades mysteriously disappeared
from the roster (usually because they are reading the class average
Good luck, enjoy the system, and feel free to e-mail me with any feedback and suggestions for improvement.
-Tavis Barr (tavis dot barr at IGNORE-THIS-WORD liu dot edu)
- There are things you could do while editing the assignment list
that would leave it in an inconsistent state. For example, if you
leave a page open, then open up a different page and make edits in that
page, and then go back to the first page and save your changes, you may
screw things up. I will get around to fixing this problem at some
point, but in the mean time try not to do things like that.
- The program uses the PHP session variable, which by default
times out after 24 minutes (supposedly due to security concerns).
You should bug the web site administrator to lengthen the PHP system
setting session.gc_maxlifetime to be as long as possible.
- By default, the system resets to the Spring semester on January
1st, the Summmer semester on May 15th, and the Fall semester on
September 1st. I should probably make these dates editable
somewhere in site_settings.php, but instead you'll have to dig through
administer.php and homework.php if you want to change them.