I have released orario_elettronico 5.0.
Attention! This version includes lots of changes. Even if you already
know the program I strongly suggest to read the documentation.
The major new features are:
more than one subject can be assigned to the same teacher in the same class
you can lock the lessons which you don't want to be moved
the script for the automatic allocation of hours has been enterely rewritten
you can require that some subjects are not allocated in the same day
The compatibility, on linux boxes, with FET - Free
Evolutionary Timetabling, a program for
automatic allocation of hours created by Liviu Lalescu. is lost, due to the different paths followed by the two programs, I suggest you to visit fet's page and try it
In order to be informed about the release of
new versions come back here or, better, subscribe to the
mailing list at sourceforge page for orario_elettronico
| You can try
Click on the link in order to
enter a page where 4 classes are set up, you can
assign hours to teachers, move them and use all the features of the manual allocation of hours.
You will not be able to create new classes and you cannot use the automatic allocation of hours (in order to avoid overusage of the cpu on the sever)
| Try the demo!
ORARIO_ELETTRONICO v. 4
This program is born from the lack of a comfortable and flexible tool
to compile a school timetable.
There are a lot of commercial programs out there, but they are rather
expensive and, when I started this program, I could not find
any program working on linux, and I had no wish to launch
windows, an O. S. which gets on my nerves, only in order to work
at the timetable.
In the while the open source community has been working also to
programs to compile school timetables. Here you find a page with
links to the programs I know
The outcome is this work, entirely written in php and based on the database mysql;
to use it you need these two programs, moreover you must install the server
as the program works inside a browser.
The pages are built on and optimized for Mozilla or Netscape6, but I
tested them and established that they work fine also in Internet Explorer
Once you get over the difficulties of installing and configuring these
applications, the program is (in my opinion :-)) very simple. In the
following pages you will find instructions in order to install
the required applications and to use the program under linux and windows.
Nothing is very complicated, but windows users must download
php , mysql and apache
from the internet (these programs are instead normally part of linux
distributions), and every user must perform some simple
Before you start working, you may want to see some screenshots of
orario_elettronico. Inserting data is very simple: for each
class you must insert the name, the subject and the ammount of hours of
You can see a screenshot of the page where
you insert data
At this point you'll be able to enter a web page for each class and
for each teacher. Each page contains a main table provided with
menus containing possible options for the class (names of
teachers) or for the teacher (names of classes where he can work).
Moreover, and most important, each page includes the (non
interactive)tables of each teacher working in that class or of
each class where that teacher can work. When you choose an
option from the menu in the main table the database is
automatically updated and the page is refreshed with the new
data. The tables of the teachers tell you how many hours each
teacher must still spend in that class.
You can see a screenshot of the page with an
as you see the possible options conform to the teachers of the class.
What the program is not able to do, and some commercial programs can
do, is automatically assign hours. But this iněs not, in my
opinion, a severe loss.
Starting with version 3.3, on linux platforms you can use the integration with FET - Free
Evolutionary Timetabling for the automatic
assignment of hours. Just select option 'ALLOCATE HOURS WITH FET" from menu
"ADMINISTRATION" and follow the instructions.
Starting with version 4.0 orario_elettronico supports the automatic
allocation of hours via php scripts, you need no more an
external program and the option is transplatform. Choose
'ADMINISTRATION'-->'AUTOMATIC ALLOCATION OF HOURS' and follow the instructions.
To this point, if interested, you can:
Enter the page of
or read the FAQs
for more detailed instructions
You can download a full version for linux; for windows, instead, a demonstrative version is available: I have inserted in the code some lines that limit the functions to eight classes. This choice is due to aversion for the operating system and the fact that I am considering the possibility to ask a modest payment for the full program.
Anyway the data you inserted in the demo version can be recovered if you upgrade to the complete version. On the other side, the program is entirely written in php and if someone wants to attempt to remove the blocks, well... good luck!
At present, since the program is not still completely tested, who wants to obtain the complete version for windows can contact me at email@example.com
in order to take agreements.
Or you can go back to italian page of
The scripts for the automatic allocation of hours and the removing of the blanks between the assigned hours are rewritten from scratch. Now these functions work at progressively deeper levels (and are progressively slower): at 'level' 0 the script simply searches for a free hour of teachers and classes; when you go on, the script moves already allocated hours and tries to resolve conflicts: this may become very complicated and if it's impossible to satisfy some constraints the program will finish in a never ending loop. In my experience everything that can be done is done at level 4; in some very complicated case you may need level 5. The execution of the program may take a very long time: I suggest you to let it work over night.
- a lot of memory: the script works in the RAM and at least 512 MB, or better 1 GB are required;
- time: you must modify the file php.ini in order to increase the maximum execution time; follow the instructions inserted in the page for the automatic allocation of hours; you may also need to increase the timeout limit of your browser.
- While testing and debugging the program I have had several freezes of the x-server. In order to avoid it the script gives very few output messages.
These freezes shouldn't happen any more, but be advised: you use the program at your own risk!
- in order to avoid freezes, after level 2 the script will not give any output for long times, it will seem to sleep.
There are two ways to stop the execution of the script:
1) press the button 'stop loading' of your browser, but the order will have effect only when the browser receives some input form the script (it may take a long time);
2) from a shell, as root, restart apache. In my gentoo distribution : /etc/init.d/apache2 restart , in other distributions it will be different; in windows you'll find a button which gives this result, but a real man or woman does not press buttons!
- With version 5.0 you can assign more than one subject to the same teacher in the same class.
- Now you can lock some hours: the scripts will not move hours signed as locked. Remember: placeholders as 'lib' 'free' 'ext' '##' are locked as you insert them and must remain locked
- You can state that a subject may not be teached in the same class and day with another subject (we may not want very 'light' subjects to be teached in the same day)
- 'Control panel' is interely rewritten
author's email updated
added legenda to 'dopplets'' page.
1) This version supports the automatical allocation of hours inside
orario_elettronico via some php scripts.
- a good amount of memory (512MB should be ok; works good with 1GB,
rather slow with 256MB);
- edit file php.ini as said in autoamtic allocation enter page.
In order to use this option choose 'ADMINISTRATION'-->'AUTOMATIC
ALLOCATION OF HOURS'
2) Much better statistic pages. From ''ADMINISTRATION'-->'CONTROL
PANEL' you get an overview on the whole timetable and are
noticed about errors.
The manual allocation of hours had no changes.
Minor changes in order to take advantage of the new constraint
ConstraintTeachersNoMoreThanXHoursDaily in version 3.6.1
of FET - Free Evolutionary Timetabling
version 3.3 and over
Only for linux
I have integrated the program with FET - Free
, a program for
automatic allocation of hours created by Liviu Lalescu.
You can export basic data from orario_elettronico into fet, let it
allocate hours and import the results into orario_elettronico
for manual work.
Just select option 'ALLOCATE HOURS WITH FET" from menu
"ADMINISTRATION" and follow the instructions
version 3.0 and over
This version works on both windows and linux systems and lets you choose between italian and english.
Added option to duplicate database 'on the fly''.
Added colors for better readability.
Changes in version 2.0 and over
ATTENTION!! This version introduces the management of special rooms:
when you create a class you can define for each teacher in which
classroom he will work. When you will assign working hours to teachers, if
the classroom is already busy, you will be allowed to keep
working (in my school two classes share the same gymnasium),
but you will become an alert and see a table containing the state of
all special rooms used by the class.
I've written a script which updates databases created with older
versions of orario_elettronico. As you update the database, a
classroom with the same name of the class (1a, 1b ecc) will be
assigned to each teacher working in every class. It will be your
care to use the link 'modify a class' to insert special rooms.
Changes in version
1.0 and over
ATTENTION!! In this version the structure of tables is changed, now
data are better organized and queries a little faster.
means that if you use a database created with an older version
of orario_elettronico the program will not be able to find some
fields and you will get error messages. From page 'manage
database' you can gain access to a script (option '8)Update an
old database') which will automatically update old databases in
order to be used with this version of orario_elettronico. I have
often used this option and it works, anyway I strongly suggest
you to make a backup of the old database with option '6) Export
- import a database' before updating.
I have also added some options to the page 'manage database', now you
can delete an old database without using the
Changes in version
0.2 and over
This version changes many things: you will no more need to create a
folder for each database (from one folder you can choose on which
database you want to work), you can also choose whether to
access the database as administrator or as guest (only
The first steps are therefore changed too: the first thing you must do
after unpacking the program and moving the folder in the root
directory of the http server (on linux it depends on the
choices you made installing apache, on windows normally
c:\Programs\Apache Group\Apache\htdocs), is launch from the
sever the page "1_START_AND_DELETE_ME.php" .
Here you must insert name and password of the root mysql user,
necessary for the first access. Normally should be OK the option
I offer: user 'root' and no password.
Then you MUST choose a name and password for the user provided with
administrator rights (the form offers 'admin' with password to
be MANDATORY defined: from the login form users will be unable
to enter the program without a password, in order to avoid that
users access the program as root in systems where the root user
has no password) and for the guest (the form offers 'guest',
'guest' and it can be OK)
You Must also choose the name for the first database created with
orario_elettronico: from the login page the user can access only
databases whose name contains the string defined in file
includes/connect.php (YOU MAY EDIT IT AS YOU LIKE). I chose the string 'orar', therefore only
databases containing this string may be accessed and if no such
database exists the user won't be able to enter the program.
Further databases will be created inside the program and you will no
more need the file "1_START_AND_DELETE_ME.php". I strongly
suggest to throw it away or, at least, move it to a folder
inaccessible from the server: it is the only file which allows
the root user to access the mysql server without a
password. Finally you must choose the highest number of hours
and teachers for class (refer to the class which has the maximum
number of hours and the one with the maximum number of teachers;
this defines the size of the tables).
I say it again: once the users are defined and the first database
created you need no more this file, throw it away. The
administrator will be able to access the first database, add
classes, modify them and create new databases from the program.
Security should be granted by the fact that name and pass of the user
accessing the program aren't written in any file, but stored in
cookies which expire at the end of each session and newly
created at each login.