ORARIO_ELETTRONICO
Versione per windows.


Il programma è nato per rispondere al fatto che non esistono applicazioni per formulare l'orario scolastico su piattaforma linux, tuttavia, in quanto sfrutta la capacità di un server web, del linguaggio php e del database mysql, tutti disponibili anche per windows, è pienamente utilizzabile anche su sistemi windows.
Come era immaginabile, l'installazione dei programmi richiesti è, sul sistema di Gates, addirittura più semplice che su linux, sebbene tutto sia misterioso, capriccioso e molto meno configurabile che su linux. Questi appunti vi guideranno in pochi semplici passi ad installare prima le applicazioni richieste, poi il programma.
Parto evidentemente dal presupposto che non abbiate installato nè un server web (situazione ovvia su windows 95, 98 e me , non su windows NT o 2000. Di xp non so niente, nè voglio informarmi, tocca a voi informarvi della configurazione del vostro sistema :-), nè mysql nè php .

Dunque, prima di tutto di cosa avete bisogno:

  1. Il server apache, cliccando andate alla homepage (si veda anche la licenza), dove potete scaricare la versione per windows
  2. php , (la licenza può essere vista qui), il linguaggio di scripting utilizzato (non temete, non lo dovete imparare, è però indispensabile sia installato). Seguite il link "download" e scaricate la versione per windows. Io consiglio di scaricare "PHP x.x.x installer"; non avete bisogno del pacchetto completo.
  3. Il database mysql, anch'esso un programma gratuito rilasciato sotto la GNU General Public Licence (GPL). Andate alla homepage, seguite il link "download" e scaricate la versione per windows.

Adesso si tratta di installare e configurare questi programmi. La buona notizia è che, a differenza di quanto accade con le versioni linux, gli installatori fanno quasi tutto da soli secondo alcune opzioni "normali" che vi vengono quasi imposte e funzionano egregiamente. Seguite dunque i seguenti passi per installarli e controllare che tutto funzioni:

  1. Installate il server apache (si badi che potete comunque usare qualunque altro server abilitato a php - cioè credo tutti - generalmente a pagamento e meno robusto, ma questi sono fatti vostri). Dunque, doppio clic sul file dell'installatore apache e lasciate fare a lui.
    ATTENZIONE! L'installazione avviene in due fasi, prima l'installatore esamina il sistema, poi vi chiede di riavviare e installa i file. Io l'ho installato più volte su windows98 e alla fine tutto è sempre andato a buon fine, tuttavia in un caso ho dovuto superare un paio di crash di sistema, riavviare il computer manualmente, aspettare scandisk ecc. Non so dire se questo sia uno dei tanti misteriosi capricci di windows o dipenda dall'installatore, in ogni caso io suggerirei di disattivare l'antivirus quando si comincia l'installazione e, SOPRATTUTTO, di disattivare nell'antivirus l'opzione che lo lancia automaticamente all'avvio di windows; sospetto che sia stato questo a sollevare dei conflitti. Terminata l'installazione (entrambi i passi!) riattivate l'antivirus.
  2. A questo punto assumo che abbiate installato apache senza cambiare le opzioni presentate dall'installatore. Il server è dunque installato nella cartella "c:\Programmi\Apache\Groups". La prima cosa da fare è lanciare il server (su windows 98/me non si lancia automaticamente all'avvio), andate dunque nel menu start (quello strano menu che serve per spegnere il computer ;-)) e sotto programmi troverete la cartella "Apache HTTP Server". Scegliete l'opzione "start Apache in console", dovrebbe partire una finestra di dos che dice : "Apache/version running ..."; NON CHIUDETELA, se vi dà fastidio minimizzatela. Adesso lanciate il browser (certamente avete internet explorer, ma per i migliori risultati con orario_elettronico consiglio di installare Firefox ) e digitate nella barra degli indirizzi: http://localhost. Dovrebbe apparire una pagina di benvenuto, complimenti, siete diventati un server.
    Bisogna notare una cosa importante: le pagine non devono essere aperte dal browser indicando il percorso del disco rigido; il file di configurazione stabilisce una directory root che corrisponde all'indirizzo htttp://localhost, da essa partono i percorsi alle altre pagine.
    Su windows tale directory è "c:\Programmi\Apache Groups\Apache\htdocs"; se ad esempio ho creato un sito web nella cartella "scuola" dovrò spostarla in tale directory root e poi la raggiungerò digitando http://localhost/scuola/index.html . E 'orario_elettronico' è a tutti gli effetti un sito web.
  3. Bene, adesso che il server funziona tocca a php; questa è l'operazione più noiosa perchè richiede una semplice configurazione manuale. Prima di tutto installate il programma lanciando l'installatore e non cambiate niente nelle opzioni che vi vengono proposte; php verrà installato nella cartella c:\php. Qui trovate un file di testo chiamato "install": se le mie istruzioni non funzionano provate a leggerlo e trovare lì la soluzione ai vostri problemi. La mia esperienza è la seguente:
    a) bisogna configurare il file php.ini che si trova in c:\windows (attenzione, se non avete detto a windows di mostrare i suffissi dei file, windows cerca di facilitarvi la vita, e vi confonde le idee, nascondendo il suffisso ".ini", dunque vedrete solo il nome "php"; comunque nella cartella windows non ci sono altri file con quel nome). Dunque aprite il file php.ini e cercate la riga dove si trova "extension_dir" (se non volete leggere tutto il file potete usare l'opzione cerca del block notes). Probabilmente troverete extension_dir=./, CAMBIATE LA RIGA IN extension_dir=c:\php in questo modo php saprà dove cercare le proprie librerie (ovviamente se avete cambiato l'opzione relativa alla cartella di installazione dovrete indicare un altro percorso).
    Per evitare di essere disturbati da noiosi avvisi conviene modificare anche il livello di avviso degli errori. Sempre in php.ini cercate la sezione "Error handling and logging"; troverete alcune spiegazioni (le righe inizianti con un punto e virgola ";"), l'unica riga che vi interessa è la prima non commentata (senza punto e virgola all'inizio). Probabilmente nella versione per windows troverete la riga:
    error_reporting = E_ALL
    vi consiglio di cambiarla in
    error_reporting = E_ALL & ~E_NOTICE
    Se non lo fate a volte riceverete nelle pagine di orario elettronico degli avvisi che non implicano il non funzionamento del programma e servono solo ai programmatori. Potete tranquillamente ignorarli.
    Se volete usare l'assegnazione automatica delle ore è necessario aumentare generosamente il tempo massimo di esecuzione e il quantitativo di memoria utilizzabile. In entrambi i file andate alla sezione
    . ; Resource Limits ;
    e cambiate le seguenti voci:
    max_execution_time = 30 --> aumentate generosamente; io, avendo anche bisogno di fare il debug, l'ho portato a 172800 pari a 48 ore; se vi sembra eccessivo diminuite, ma non credo possa far male
    max_input_time = 60 --> aumentate generosamente; io l'ho portato a 6000 (100 minuti).
    memory_limit = 128M ---> aumentate anche questo, tenendo anche conto della vostra disponibilità di ram; io l'ho portato a 300M
    ho anche cambiato (ma forse non è necessario) la riga
    mysql.connect_timeout = 60 trasformandola in
    mysql.connect_timeout = -1 che indica che non ci sono limiti
    Un'ultima avvertenza: per usare gli apostrofi dovete probabilmente assicurarvi che nel file php.ini l'opzione 'magic_quotes_gpc' non sia attiva:
    magic_quotes_gpc = Off
    come ho trovato nelle ultime versioni installate di default da php
    b) Modificate il file ."c:\Programmi\Apache Groups\Apache\conf\httpd.conf"; andate dunque alla cartella "c:\Programmi\Apache Groups\Apache\conf" e cliccate sul file httpd.conf; ATTENZIONE! è un file generico, windows vi chiederà con che applicazione volete aprirlo, scegliete WORDPAD e DESELEZIONATE L'OPZIONE "Utilizza sempre questa applicazione per aprire il file"; una volta aperto il file copiate alla fine della "section 2" queste righe:

    ScriptAlias /php/ "c:/php/"
    AddType application/x-httpd-php .php
    Action application/x-httpd-php "/php/php.exe"

    CONSIGLIO: cercate con "trova" l'espressione "section 3" e copiate queste righe immediatamente sopra.
    c) A questo punto dovrebbe essere tutto a posto. Per verificare che tutto funzioni rilanciate windows, scompattate 'orario_elettronico', copiate la cartella che avete ottenuto dentro la cartella "c:\Programmi\Apache Groups\Apache\htdocs", rinominatela con un nome di vostro gusto. Qui si assume che la chiamiate "orario_elettronico". Lanciate Apache come spiegato sopra (start ecc.), lanciate il browser e digitate nella barra degli indirizzi "http://localhost/orario_elettronico/index.php". Se vi appare la pagina di login di orario_elettronico il server apache e php funzionano e avete quasi finito. Se non funziona provate a spostare (o copiare) il file php.ini dalla cartella c:\windows alla cartella c:\php; se anche questo non funzionasse guardate bene la documentazione che è arrivata con il programma, io non posso aiutarvi oltre.
  4. L'ultima operazione da compiere è l'installazione di mysql. Decomprimete (unzip) il file mysql-3.23.46a-win.zip, entrate nella cartella ottenuta e cliccate su "setup", quindi riavviate il computer. Una buona notizia: non richiede alcuna configurazione, lasciate fare tutto all'installer e verrà creata la cartella c:\mysql contenente i programmi. Sarebbe bene imparare a usare il database e sul sito mysql trovate un'abbondante e chiara documentazione, ma non è affatto indispensabile per l'uso di orario_elettronico, tutto quello che dovete fare è lanciare il programma (windows, a differenza di linux, non vi dà l'opzione di lanciarlo all'avvio, immagino tuttavia che ci sia un modo per ovviare all'inconveniente o che oggi la situazione sia cambiata). Il file che vi interessa è "mysqld" che si trova in "c:\mysql\bin".
    CONSIGLIO: trascinate sulla scrivania da "c:\mysql\bin" i due file "mysqld" e "mysql" (possono avere il suffisso ".exe" se windows ve lo fa vedere) in modo da avere sottomano il collegamento ai programmi. A questo punto cliccate su "mysqld"; dovrebbe apparire brevemente una finestra dos che si chiuderà automaticamente, per essere sicuri che tutto sia a posto cliccate su "mysql" (senza la 'd' finale); se appare una finestra dos con il prompt "mysql>" avete finito; potete provare a digitare l'istruzione "show databases;" (il ";" finale è necessario) e vedrete i database che il programma ha creato al momento dell'installazione.

A questo punto siete pronti per cominciare. Riavviate il computer (con windows non si sa mai) e lanciate apache (start ...) e mysqld (se avete seguito il mio consiglio avete un collegamento sulla scrivania), quindi seguite le istruzioni seguenti.

  1. Scompattato l'archivio di orario_elettronico avete ottenuto una cartella chiamata appunto 'orario_elettronico'; vi consiglio di tenerla da qualche parte, comunque può sempre ricreata espandendo l'archivio.
  2. Copiate tale cartella con il nome che volete (consiglio caldamente di chiamarla orario_elettronico, facilitaerà qualche operazione di configurazione) nella directory accessibile al server apache ("c:\Programmi\Apache Groups\Apache\htdocs" se avete lasciato la configurazione originaria).
  3. Dopo che avrete effettuato le prime operazioni configurazione descritte nel prossimo punto potrete accedere al programma lanciando il browser e digitando
    http://localhost/nomedellacartella/index.html
    Vi consiglio caldamente di abilitare la funzione "index.php" nel file "httpd.conf" di configurazione di apache. Da qualche parte troverete almeno questa riga:

    DirectoryIndex index.html

    se dopo "DirectoryIndex" non si trova "index.php" aggiungetelo, in questo modo chi cerca di aprire la cartella sarà mandato al file index.php.
    la riga dovrebbe diventare almeno così:

    DirectoryIndex index.html index.php

    Da qui in poi tutto dovrebbe spiegarsi da solo.
  4. PRIMO ACCESSO (NUOVO NELLA VERSIONE 2): la prima cosa da fare, dopo avere spostato questa cartella nella directory root del server (su linux dipende dalle scelte che avete fatto all'installazione di apache, su windows normalmente c:\Programmi\Apache Group\Apache\htdocs) e averla rinominata "orario_elettronico", è aprire dal server apache la pagina "1_INIZIO_E_BUTTAMI.php". Qui dovrete definire il nome e la password dell'utente root di mysql, necessario per il primo accesso. Nel 99% dei casi dovrebbe andare bene l'opzione offerta nel form: utente "root" e nesuna password.
    Dovrete poi indicare il nome e la password dell'utente dotato dei diritti di amministratore (il form offre "admin" con password DA DEFINIRE OBBLIGATORIAMENTE, il normale form di login impedisce di accedere senza password proprio per evitare che gli ospiti possano accedere come root nei sistemi dove l'utente root non ha password) e dell'ospite (il form offre "ospite", "ospite" e può andare bene). Questi utenti verranno creati da orario_elettronico e dovrete fornire i dati a chi potrà accedere al programma
    Il primo database creato da di orario_elettronico deve chiamarsi orario_elettronico, come proposto nel form, e non deve essere cancellato in quanto oltre a contenere le tabelle per creare l'orario di una scuola (potete dunque usarlo come un qualunque database per la costruzione dell'orario) contiene anche alcuni dati necessari al funzionamento che verranno cercati qualunque database voi creiate dopo il primo. Per quanto riguarda i database che creerete successivamente è importante notare che dal form di login l'utente potrà accedere solo ai database il cui nome contiene una certa stringa definita nel file includes/connect.php. Io ho scelto la stringa 'orar', dunque saranno disponibili i database contenenti tale espressione e se non ne esistono l'utente sarà incapace di accedere al programma. Gli ulteriori database potranno essere creati all'interno del programma senza più tornare a questo file 1_INIZIO_E_BUTTAMI, anzi vi consiglio di buttarlo o spostarlo in una cartella inaccessibile al server: è l'unico file da cui un utente può accedere al database come root senza password. Dovrete infine indicare il numero massimo di ore e di insegnanti della classe che ha più ore o più materie.
    Ripeto, definiti gli utenti e creato il primo database accessibile questa pagina non serve più, buttatela via, l'utente amministratore potrà accedere al database creato, inserire le classi, modificarle e creare database all'interno del programma. La sicurezza dovrebbe (non sono un esperto di sicurezza) essere garantito dal fatto che il nome utente e la password non vengono scritti in nessun file ma sono definiti da cookies che scadono alla fine di ogni seduta e sono rinnovati ad ogni login. Qui sotto fornisco un link che vi permette di accedere alla pagina iniziale, a patto che il vostro host si chiami localhost e che la cartella del programma si chiami orario_elettronico e si trovi nella cartella root del server. Comunque l'indirizzo da fornire al browser sarà qualcosa come : http://localhost/orario_elettronico/1_INIZIO_E_BUTTAMI.php
    cambiando, ovviamente il nome del server e il percorso della cartella.

    Accedi al file 1_INIZIO_E_BUTTAMI.php

    Compiuta questa operazione sarete inviati alle pagine di login; entrate come amministratore, scegliete il database e andate alla pagina "amministra". Lì potrete popolare il database con le classi e gli insegnanti, creare nuovi database ecc. Seguite le istruzioni che seguono.
    Attenzione!! Quando create un nuovo database per poterci lavorare dovrete fare un nuovo login (link "accedi"), fornire nuovamente i dati e scegliere il databse creato, poi tornare alla pagina amministra
    Attenzione!! Il file includes/connect.php contiene la definizione dell'espressione che deve essere contenuta nel nome del databse; il file includes/default.php contiene le opzioni che vengono offerte al momento del login. Potete modificare questi dati secondo il vostro bisogno.
  5. La prima opzione è " crea database e tabelle".
    Si aprirà una pagina che chiede a) il nome da dare al database. b) Il numero massimo di ore giornaliere usato dalla classe che ha il maggior numero di ore. Serve per evitare di avere tabelle di dimensioni eccessive: alcune scuole non hanno mai più di 5 ore al giorno, altre arrivano a 8. Purtroppo non è possibile definire opzioni diverse nelle diverse classi, bisognerà poi classe per classe indicare con ## (una delle voci del menu a comparsa) le ore da non utilizzare.
    c) Il numero massimo delle materie per classe. E' un'opzione di scarso rilievo. La scelta di 15 è fin troppo abbondante, se potete diminuirla avrete pagine più brevi per la definizione della classe.
    A questo punto verranno creati: un database con il nome da voi indicato e otto tabelle di detto database chiamate aule, classi, data, impegni, insegnanti, tutto_aule, tutto_classi e tutto_prof (tutto sommato la cosa non vi riguarda a meno che non vogliate andare a vederle usando mysql).
  6. L'opzione successiva (introdotta con la verisone 3) è '2a) Inserisci o aggiungi i dati grezzi': per evitare errori di battitura dovete inserire qui, alla rinfusa e in qualunque ordine, i nomi di tutte le classi, di tutti gli insegnanti, di tutte le materie e di tutte le aule speciali dellla scuola. Al momento della creazione delle classe sceglierete i dati da menu a comparsa.
  7. La seconda opzione è "aggiungi una classe" : per ogni classe dovrete indicare il nome della classe e il nome, le ore disponibili nella classe, la materia insegnata, il numero totale di ore settimanali per ogni insegnante e l'aula in cui il professore lavora (nel caso sia un'aula speciale, palestra, laboratorio ecc. Se lasciate vuoto verrà automaticamente inserita nel database un'aula dal nome uguale a quello della classe).
    Sarete quindi inviati a una seconda pagina in cui dovrete inserire per ogni materia il numero massimo di ore giornaliere, l'eventuale richiesta di un giorno vuoto tra una lezione e l'altra, l'eventuale richiesta di non usare la materia nello stesso giorno di altre materie, l'eventuale richiesta di 'doppiette'All'invio verranno create le pagine della classe e dell'insegnante e potete già iniziare a usarle tornando all'indice.
  8. La terza opzione è "modifica/rinomina una classe". Può capitare che durante la formulazione dell'orario cambi l'assegnazione di qualche classe, qui potete modificare una classe.Avrete anche la possibilità di assegnare alla classe un nuovo nome, non so a cosa serva ma per completezza ho messo anche questo.
  9. L'opzione '3bis)elimina una classe' vi permette di buttare semplicemente via una classe
  10. L'opzione "4) accesso" vi permette di accedere alle pagine delle classi e dei professori, a due pagine riepilogative contenenti gli orari di tutte le classi e di tutti i professori, a una pagina chiamata verifica che riporta il numero di ore assegnate, dovute e rimanenti per ogni insegnante e infine a una pagina work, utile ma che richiede un intervento manuale. In essa potete indicare utilizzando un editore di testo quali classi e/o quali insegnanti volete vedere contemporaneamente.
  11. Le opzioni "5a) esporta l'orario degli insegnanti" e "5b) esporta l'orario delle classi" permettono di esportare in un file di testo l'orario delle classi e degli insegnanti. Tale file può essere importato in un foglio di calcolo (excel o staroffice, tipicamente. In excel scegliete "apri", selzionate l'opzione "tutti i file" e andate a pescare il file che avete esportato. Nella finestra che si aprirà selezionate "Delimitati" e andate avanti; quindi scegliete "tabulazione" come delimitatore e andate avanti; selezionate la colonna giorno e scegliete "testo" come formato della colonna. Fine, e avrete importato l'orario di classi e insegnanti; poi, con taglia e incolla, organizzerete le colonne come vi è utile). E' indispensabile per stampare l'orario, per rifinire le ore buche mettendo fianco a fianco gli insegnati che interessano e, se non duplicate il database con mysqldump, per salvare i dati che avete inserito fino a un certo punto: una volta inserito nel foglio di calcolo potrete reinserire in orario_elettronico lo scenario che avete salvato.
  12. L'opzione 6)Esporta-importa un database.
    Esporta: con questa opzione potete esportare un database in un file di testo con mysqldump senza ricorrere alla linea di comando. Dovete indicare il nome del database da esportare (di default quello che state usando), il percorso e il nome del file dove volete esportare il database e il percorso di mysqldump (su linux dovrebbe bastare semplicemente il nome del programma, per windows ho indicato un percorso predefinito che dovrebbe funzionare).
    A cosa serve? A un certo punto potete essere provvisoriamente soddisfatti del lavoro svolto e non volerlo piu` modificare; aquesto punto fate un dump con questa opzione nel file, ad esempio, /home/casamia/orario/orario_vecchio.txt; questo file servira` come backup e potra` essere importato in un nuovo database creato da orario_elettronico.
    Importa: serve per importare in un nuovo database i file salvati con l'opzione precedente. Scegliete questa opzione, indicate il nome di un nuovo database (ad esempio orario_nuovo), indicate il percorso e nome del file da importare (ricordate che avevamo creato /home/casamia/orario/orario_vecchio.txt?), il percorso dell'applicazione mysql (provate innanzitutto a accettare i valori inserit) e inviate i dati.
    A questo punto avete creato il nuovo database orario_nuovo e non avete piu` bisogno di usare orario_vecchio che restera` intoccato e sempre accessibile. Andate a "accesso, fate un nuovo login, scegliete orario_nuovo e cominciate a lavorare sul nuovo database.
  13. L'opzione '7)elimina un database' serve a fare pulizia: se avete lavorato su diversi databse via via che il lavoro procedeva potete eliminare dal server nysql i database inutili
    RICORDATE! Non cancellate il database 'orario_elettronico' e non duplicate un database di nuova creazione in un altro chiamato 'orario_elettronico'
  14. Infine l'opzione '8) aggiorna un vecchio database' e per compatibilità con le vecchie versioni di orario_elettronico: contiene 2 script che aggiorneranno un database creato con la versione 0.xx o la versione 1.xx del programma. Se compilate l'orario dall'inizio non ve ne dovete occupare.

Direi che è tutto, buon lavoro.
torna alla alla pagina di accesso a orario_elettronico