Welcome to Roster-in-a-Box

The software can be downloaded from this page.


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 database.


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:

  1. site_settings.php  

    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 courses.

    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.
  2. administer.php

    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 every semester.

    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 detail, etc.)

    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 appropriate tabs.
  3. homework.php

    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.  They include:

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)