SchoolTool is a free, open source, web-based student information system for a single school. It can be used to manage any of the following records a school might keep:
- Student enrollment and demographics
- Grading and grade reporting
- Racking student achievement of skills, competencies or outcomes,
It is also a framework for building customized applications and configurations for individual schools or states. SchoolTool has strong support for translation, localization and automated deployment and updates via the Ubuntu Linux installer and package management system.
SchoolTool is created by the most popular man of the Linux world Mr.Mark Shuttleworth, the founder of Canonical and Ubuntu. It is now maintained by Mr.Tom Hoffman and dozens of active contributors. It is written in Python language using the Zope 3 framework, and is licensed under GNU GPL2. SchoolTool is a complete stack web application that means it comes with a own web server and a database. Right now, It is available only for Ubuntu, and It is highly recommended to use it only on Ubuntu LTS versions such as Ubuntu 14.04 or Ubuntu 12.04 etc. Be mindful that SchoolTool is not a learning management system like Moodle, and it doesn’t include any subject materials or contents.
The objective of this article is to provide you with an understanding of installation and configuration of SchoolTool.
- Customizable student and teacher demographics and other personal data;
- Contact management for teachers, students, and their guardians;
- Teacher gradebooks;
- Skill and outcomes based assessment;
- Schoolwide assessment data collection and report card generation;
- Class attendance and daily participation grades;
- Calendars for the school, groups, individuals, and resource booking;
- Tracking and management of student interventions;
- And many.
Install SchoolTool on Ubuntu 14.04
Step 1: Install Prerequisites
As mentioned above SchoolTool comes with a built-in web server. Also, you can use other external webservers if you want.
Here, we will use Apache web server with SchoolTool. Before get started install SchoolTool, you need to install a web server on Ubuntu (Apache, PHP, MySQL) called LAMP server, open terminal then running following commands:
sudo apt-get install lamp-server^
The bare minimum RAM requirement for testing is estimated to be 512 megabytes. At least 1 gigabyte of RAM, plus at least 2 gigabytes of swap space is recommended and if you are setting up for a small production server, adding more than 1 gigabyte of RAM is worth it if you can afford it. More memory equals faster database performance.
Step 2: Adding SchoolTool’s Package Repository
SchoolTool 2.8 and later releases are organized by numbered PPA. It does not publish its software on the official Ubuntu package repositories, so you will need to add the address of their repository to your server:
sudo add-apt-repository ppa:schooltool-owners/2.8
Thus, to install or upgrade to SchoolTool 2.8, add the 2.8 PPA to your server’s sources list.
Using the command line:
$ sudo add-apt-repository ppa:schooltool-owners/2.8
If you get an “add-apt-repository not found” error, install it:
$ sudo apt-get install software-properties-common
Step 3: Installing SchoolTool
After adding SchoolTool’s repository to your server, enter at the command line to install SchoolTool
$ sudo apt-get update $ sudo apt-get install schooltool
After installation, the schooltool server can be accessed only from the localhost on the port 7080.
You can allow public Internet access to Shooltool by following the instructions:
configuration file on your server in nano, a terminal-based text editor.
sudo nano /etc/schooltool/standard/paste.ini
You will see like this example:
[composite:main] use = egg:Paste#urlmap / = schooltool /schooltool.task_results = task_results [app:schooltool] use = egg:schooltool#main config_file=schooltool.conf [app:task_results] use = egg:schooltool#task_results config_file=schooltool.conf [server:main] use = egg:zope.server host = 127.0.0.1 port = 7080
use = egg:zope.server
host = <span class="highlight">0.0.0.0</span>
port = 7080
Save your changes to the configuration file and to apply the changes to SchoolTool, you will need to restart it.
sudo service schooltool restart
Now you can take a moment to view SchoolTool in your browser, to make sure everything is working so far.
Step 4: Configuring Port 80 Access (Optional)
The standard SchoolTool instance runs on port 7080, but most web traffic runs over port 80 – the standard HTTP port.By using a well-known web server such as Apache HTTP Server, you can change SchoolTool’s default port to
To configure Apache as a proxy server listening to port 80 on school1.example.org and passing traffic to SchoolTool on port 7080, you will need root access to the Apache server.
Begin by creating a new file in your Apache configuration directory, /etc/apache/sites-available/school1.example.org, containing the following:
<VirtualHost *:80> ServerName school1.example.org <Proxy *> order allow,deny allow from all deny from none </Proxy> ProxyPreserveHost on RewriteEngine On RewriteRule ^/schooltool.task_results(/?.*) http://127.0.0.1:7080/schooltool.task_results/$1 [P,L] RewriteRule ^(/?.*) http://127.0.0.1:7080/++vh++http:school1.example.org:80/++$1 [P,L] </VirtualHost>
You will need to enable Apache modules mod_proxy, mod_proxy_http and mod_rewrite:
sudo a2enmod proxy sudo a2enmod proxy_http sudo a2enmod rewrite
Then enable the site and restart apache:
sudo a2ensite school1.example.org sudo service apache reload
Step 5: Start using and configureing SchoolTool
Open your browser, and visit the URL
, depending on your desired configuration.
You should see the default calendar page.
In the upper right-hand corner, click on the Log in link.
Use the default SchoolTool login credentials:
- Username: manager
- Password: schooltool
Then press the Log in button to log in.
You’re now logged in to SchoolTool.
To change the password for the manager account.
Click on the Home tab in the navigation menu located at the top of the web page. Next, click on theSettings > Password link in the left-hand navigation menu.
Type in the current password, schooltool. Then type in your new password twice, and press the Apply button.
A Password changed successfully popup will appear. From now on, you should use this password to log in to the SchoolTool.
If you want to add teachers and students, set up grade books, and more check the full SchoolTool manual, refer to The SchoolTool Book, a knowledge base maintained by the developers of SchoolTool.
Now that you have installed SchoolTool, you have a free alternative that will allow your school to manage student records from a browser-based application.