- PHP 94.4%
- JavaScript 4.8%
- CSS 0.6%
- Dockerfile 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .gitea/workflows | ||
| .vscode | ||
| docker | ||
| htdocs | ||
| utils | ||
| .gitignore | ||
| docker-compose.yml | ||
| Dockerfile | ||
| LICENSE.txt | ||
| README.md | ||
| schema.sql | ||
AVVISO IMPORTANTE
Questo è il ramo di SVILUPPO. È inteso per testare le ultime funzionalità e aiutarmi nello sviluppo. La stabilità e il funzionamento del codice non sono garantiti. Usare a proprio rischio e pericolo.
Orario Scuola
Una piattaforma web per visualizzare gli orari scolastici delle classi, degli insegnanti e dei vari laboratori (se presenti)
Requisiti
- Server web (consigliati nginx o apache2 per Linux, XAMPP per Windows)
- PHP 8.0 o successivo (configurato nel tuo server web)
- Composer
- MariaDB 10/11/12
Installazione
- Clona la repository e copia la cartella htdocs in una cartella accessibile dal server web
- Esempio (Debian):
git clone https://git.vichingo455.com/emmev-code/orario
git checkout dev # Ramo di sviluppo
cp -r orario/htdocs/* /var/www/html/
- Installa
composere le estensioni di php
- Debian:
sudo apt install -y composer php-cli curl php-mysql php-curl php-mbstring php-xml php-zip
- Windows: Scarica il programma di installazione di Composer ed installalo. Assicurati di modificare il file php.ini per abilitare le estensioni mysql, curl, mbstring, xml, zip, cli.
- Installa le dipendenze del pannello d'amministrazione
- Debian:
cd /var/www/html
composer install
- Windows (con XAMPP):
cd C:\xampp\htdocs
composer install
- (opzionale) Genera una password hashata
- Debian
cd orario/utils
php generate_hash.php <password>
- Windows:
cd orario\utils
C:\xampp\php\php.exe generate_hash.php <password>
- Modifica quindi questa linea nel file
schema.sql, sostituendo l'hash predefinito con quello generato prima:
VALUES ('admin', '$2y$10$IS9v8CJNJnRXslV1NWDSquAjJ0GgU1sm6spBmGp6mjTLiNApfGcQi');
- Importa il file
schema.sqlnel tuo database MySQL
- Esempio Debian:
mysql -u root -p < orario/schema.sql
- Crea il file
config/config.phpinserendo i valori richiesti
- Esempio file
config/config.php(trovi il file base sottoconfig/config.sample.php):
<?php
// Impostazioni Database
if (!defined('DB_HOST')) {
define('DB_HOST', '<MYSQL_HOST>'); // Host del database (ad esempio localhost)
}
if (!defined('DB_USER')) {
define('DB_USER', '<MYSQL_USER>'); // Utente del database (ad esempio orario)
}
if (!defined('DB_PASS')) {
define('DB_PASS', '<MYSQL_PASSWORD>'); // Password dell'utente specificato prima (ad esempio password123)
}
if (!defined('DB_NAME')) {
define('DB_NAME', 'school_timetable'); // Nome del database, non modificare se non sai cosa stai facendo.
}
?>
- Apri
http://localhoste goditi il sito
Installazione con Docker
- Installa Curl, Git e Docker
apt install curl git
curl -fsSL https://get.docker.com | bash
- Scarica i file richiesti:
wget https://git.vichingo455.com/emmev-code/orario/raw/branch/dev/schema.sql
wget https://git.vichingo455.com/emmev-code/orario/raw/branch/dev/docker-compose.yml
- Avvia il container:
docker compose up -d
- Il container dovrebbe diventare disponibile su
http://localhost:8080
Personalizzare l'istanza
Per cambiare le impostazioni dell'istanza basta aprire docker-compose.yml con un editor di testo e modificare le variabili d'ambiente:
environment:
DB_HOST: db # Host database
DB_USER: orario # Utente database
DB_PASS: orario # Password dell'utente del database
DB_NAME: school_timetable # Nome del database
Migrazione dello schema
Per usare nuove versioni della piattaforma, potrebbe necessario migrare il database dallo schema vecchio a quello nuovo.
Prima di iniziare la migrazione, assicurarsi di avere un backup del database. Le tabelle vecchie verranno mantenute aggiungendogli il suffisso _legacy.
Requisiti (solo installazione manuale)
Supponendo che la cartella di installazione sia /var/www/html:
- Assicurarsi che la cartella
/var/www/utilsesista e contenga i file richiesti(richiesta solo per la migrazione). Per correggere:
mkdir /var/www/utils
cp -r orario/utils/* /var/www/utils/
- Assicurarsi che il file
/var/www/schema.sql esista(richiesto solo durante la migrazione). Per correggere:
cp orario/schema.sql /var/www/schema.sql
- Una volta eseguita la migrazione questi file possono essere eliminati
Migrazione dal browser (Docker e installazione manuale)
Quando un amministratore accede al dashboard con lo schema legacy ancora attivo, viene aperta automaticamente la pagina admin/migrate.php.
Quella pagina mostrerà una descrizione breve dei cambiamenti effettuati. Basterà premere il pulsante "Avvia aggiornamento" e il database verrà aggiornato.
Migrazione da CLI (solo installazione manuale)
Per migrare da riga di comando, è possibile usare lo strumento incluso con la piattaforma:
php utils/migrate.php
Lo strumento chiederà il permesso a procedere e vi informerà del risultato della migrazione.
Migrazione manuale (Docker e installazione manuale)
Se vuoi fare la migrazione manuale, puoi usare migrate_sql_v1.sql.
Passi consigliati:
- Esegui backup completo del database.
- Rinomina le tabelle legacy:
USE school_timetable;
RENAME TABLE classes TO classes_legacy, subjects TO subjects_legacy, timetable TO timetable_legacy;
- Importa
schema.sql. - Esegui
migrate_sql_v1.sqlper popolare il nuovo modello.
Licenza
Orario Scuola, Copyright (C) 2025-2026 EmmeV.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.