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 database.
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:
- 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.
- 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.
- 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:
- view-grades.php should be linked to from the course web site, since it allows students to view their grades as the semester unfolds.
- view-single-grade.php 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.
- send_homework_notifications.php 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.
- send_roster_backup.php 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 column....).
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)
KNOWN ISSUES
- 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.