Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time



SWU, Schoolwork Web Utilities, is a web application that allows a teacher to publish his/her assignments, students to turn in their homeworks, and everybody to track what has been done and what is due.

It is developed in PHP / Javascript / HTML5, using the Yii framework.

It is released under the GNU Affero General Public License. The license file is available in the root directory of the project.


With SWU, a teacher can:

  • prepare an assignment
  • assign it to his/her students
  • send email messages to the students, inviting them to turn it their work
  • print special codes that students can use to turn in their work
  • check uploaded works and send comments to the students

An exercise is the work assigned to a particular student. It can be in one of this status conditions:

  • just uploaded, not yet checked
  • checked, and marked as incomplete
  • checked, and marked as copied (sometimes it happens, unfortunately...)
  • checked, and marked as improvable
  • checked, and marked as completed
  • excused

The basic assumption is that works by the students are considered "in progress". They can try to do something, ask for comments and for help, improve their work, etc.

Each student is given a personal code to upload his / her files. The code can be printed or emailed. Works can be done in pairs and/or groups.

Ideas for improvements and enhancements

There is a lot of space for improvements and enhancements, of course.

Some things I'm thinking about:

  • organized / managed peer review by students
  • customized reports for the teacher and the students


Some screenshots are available on Loris Tissino's website.


SWU basically uses Yii as PHP framework and MySQL as database backend.

It also uses:


Follow the following steps. If you have problems, please contact the author.

  1. Download the Yii framework from (release 1.1.15) and unzip it / untar it.

  2. Download the source code of the application and unzip it / untar it (you might prefer to use git for that purpose).

  3. Find the files ending with "-dist" and make a copy of them, removing the "-dist" part of the name.

  4. Download Twig, and install it on the protected/vendor directory (if you want, you can use composer for that -- follow the instructions).

  5. Create a MySQL database, and create the needed tables in it. The SQL code is available in the file protected/data/schema.mysql.sql.

  6. Insert some default values in the mailtemplate table. The SQL code is availabale in the file protected/data/mailtemplate_table_samplecontents.mysql.sql.

  7. Edit the file protected/config/main.php to store database's dbname, username and password.


All settings are to be written in the protected/config/main.php file.

There are some defaults, so you can omit some of the settings. You can have a look at the defaults in the file protected/components/Helpers.php (see the function getYiiParam()).


Schoolwork Web Utilities







No releases published


No packages published