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 orario_elettronico.
    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!


    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 apache 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 configuration operations.
    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 every teacher.
    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 opened menu, 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 windows or linux 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 alessandro.brunelli@poste.it in order to take agreements.

    Or you can go back to italian page of orario_elettronico.
    Good job.

    mail me SourceForge.net Logo

    Change log

    Changes in version 5.0

    1. 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!

    2. With version 5.0 you can assign more than one subject to the same teacher in the same class.

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

    4. 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)

    5. 'Control panel' is interely rewritten

    Changes in version 4.2

    Import/export files updated to FET - Free Evolutionary Timetabling version 3.12.24

    Changes in version 4.1

    author's email updated
    added legenda to 'dopplets'' page.

    Changes in version 4.0

    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.

    Changes in version 3.5

    Import/export files updated to FET - Free Evolutionary Timetabling version 3.6.6

    Changes in version 3.4

    Minor changes in order to take advantage of the new constraint ConstraintTeachersNoMoreThanXHoursDaily in version 3.6.1 of FET - Free Evolutionary Timetabling

    Changes in version 3.3 and over

    Only for linux

    I have integrated the program with FET - Free Evolutionary Timetabling, 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

    Changes in 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.
    This 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 command line.

    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 consultation).
    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.