|
|
|
|
|
# Λήψη και εγκατάσταση κώδικα
|
|
|
|
|
|
Μπορείτε να κατεβάσετε τον κώδικα της εφαρμογής από το [επίσημο αποθετήριο, git.minedu.gov.gr/itminedu/e-epal](https://git.minedu.gov.gr/itminedu/e-epal.git) ή από το [αντίγραφο στο github, github.com/itminedu/e-epal](https://github.com/itminedu/e-epal).
|
|
|
|
|
|
Για το υπόλοιπο των οδηγιών αυτών, θεωρείται ότι η εγκατάσταση του κώδικα της εφαρμογής έγινε στο φάκελο `e-epal/`
|
|
|
|
|
|
|
|
|
## Δομή φακέλων
|
|
|
|
|
|
* `source/`
|
|
|
Περιλαμβάνει τον κώδικα (Angular) για την εφαρμογή (πελάτη).
|
|
|
* `actions/`
|
|
|
* `components/`
|
|
|
* `director/`
|
|
|
* `footer/`
|
|
|
* `header/`
|
|
|
* `infoviews/`
|
|
|
* `main/`
|
|
|
* `minister/`
|
|
|
* `navbar/`
|
|
|
* `student-application-form/`
|
|
|
* `students/`
|
|
|
* `containers/`
|
|
|
* `guards/`
|
|
|
* `pipes/`
|
|
|
* `services/`
|
|
|
* `store/`
|
|
|
Περιλαμβάνει αρχεία σχετικά με το Redux.
|
|
|
* `epalclasses`
|
|
|
* `logininfo`
|
|
|
* `regionschools`
|
|
|
* `sectorcourses`
|
|
|
* `sectorfields`
|
|
|
* `studentdatafields`
|
|
|
* `drupal/` Σε αυτό το φάκελο θα πρέπει να γίνει η εγκατάσταση του Drupal 8.
|
|
|
* `modules/` Στους υποφακέλους περιλαμβάνονται επεκτάσεις του Drupal που αφορούν την εφαρμογή (εξυπηρετητή).
|
|
|
* `casost/` Επέκταση για σύνδεση με την υπηρεσία SSO του Πανελλήνιου Σχολικού Δικτύου.
|
|
|
* `epal/` Κύριος κορμός της εφαρμογής.
|
|
|
* `epaldeploysystem/` Επέκταση για τις αρχικές ρυθμίσεις της εφαρμογής. Πρέπει να ενεργοποιηθεί **έπειτα από** τις επεκτάσεις `epalreadydata` και `epal`.
|
|
|
* `epalreadydata/` Βασικά entities της εφαρμογής.
|
|
|
* `oauthost/` Επέκταση για σύνδεση με την υπηρεσία πιστοποίησης της ΑΑΔΕ (TaxisNet).
|
|
|
* `myschool/` Περιέχει αρχεία σχετικά με το theme της εφαρμογής (scss, fonts κλπ).
|
|
|
* `node_modules/` Θα δημιουργηθεί όταν γίνει η εγκατάσταση της εφαρμογής (πελάτη)
|
|
|
* `dist/` Θα δημιουργηθεί όταν γίνει μεταγλώττιση της εφαρμογής (πελάτη)
|
|
|
|
|
|
|
|
|
# Εγκατάσταση πελάτη (client)
|
|
|
|
|
|
## Προαπαιτούμενα
|
|
|
|
|
|
* Εγκατεστημένο [node.js](https://nodejs.org) στην τελευταία έκδοση.
|
|
|
|
|
|
* Εγκατεστημένο [npm](https://www.npmjs.com) στην τελευταία έκδοση.
|
|
|
|
|
|
* Εγκατεστημένη [TypeScript](https://www.typescriptlang.org) στην τελευταία έκδοση.
|
|
|
|
|
|
|
|
|
## Εγκατάσταση εξαρτήσεων
|
|
|
|
|
|
Μετά την εγκατάσταση του κώδικα της εφαρμογής θα πρέπει να εγκατασταθούν node modules τα οποία χρησιμοποιούνται από την εφαρμογή. Η εγκατάσταση γίνεται με χρήση του npm. Μέσα στο φάκελο της εφαρμογής (`e-epal/`) εκτελέστε την εντολή:
|
|
|
```
|
|
|
npm install --no-save
|
|
|
```
|
|
|
|
|
|
Σε περίπτωση που αντιμετωπίσετε προβλήματα δοκιμάστε την παρακάτω αλληλουχία εντολών:
|
|
|
|
|
|
```
|
|
|
rm ./package-lock.json
|
|
|
rm -rf ./node_modules
|
|
|
npm cache clear --force
|
|
|
npm install --no-save
|
|
|
```
|
|
|
|
|
|
|
|
|
## Ρύθμιση και προετοιμασία της εφαρμογής
|
|
|
|
|
|
### Αρχεία ρυθμίσεων
|
|
|
|
|
|
Το αρχείο `source/app.settings.deployment.ts` περιέχει απαραίτητες ρυθμίσεις για την επικοινωνία της εφαρμογής πελάτη με το πληροφοριακό σύστημα εξυπηρετητή.
|
|
|
Αντιγράψτε το αρχείο `source/app.settings.deployment.ts` σε ένα νέο αρχείο με όνομα `source/app.settings.ts` και επεξεργαστείτε το αρχείο app.settings.ts ενημερώνοντας τα στοιχεία για πρόσβαση στα REST endpoints του Drupal, όπως στο παράδειγμα που ακολουθεί. _Θα πρέπει να έχετε προαποφασίσει που θα γίνει η εγκατάσταση του εξυπηρετητή._
|
|
|
|
|
|
```javascript
|
|
|
export const API_ENDPOINT = "https://backend.server/";
|
|
|
export const API_ENDPOINT_PARAMS = "";
|
|
|
export class AppSettings {
|
|
|
|
|
|
public static get API_ENDPOINT(): string {
|
|
|
return "https://backend.server/";
|
|
|
}
|
|
|
public static get API_ENDPOINT_PARAMS(): string {
|
|
|
return "";
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
### Δημιουργία αρχείων εφαρμογής πελάτη
|
|
|
|
|
|
Για να δημιουργηθούν όλα τα απαραίτητα αρχεία για πρόσβαση στην εφαρμογή, εκτελέστε τη διαδικασία μεταγλώττισης της εφαρμογής εκτελώντας στο φάκελο `e-epal/` την εντολή:
|
|
|
```
|
|
|
npm start
|
|
|
```
|
|
|
|
|
|
Μετά από επιτυχή μεταγλώττιση της εφαρμογής, τα παραγόμενα αρχεία που είναι και τα μόνα απαραίτητα για χρήση στον web server θα βρίσκονται μέσα στο φάκελο `e-epal/dist/`.
|
|
|
|
|
|
Τα αρχεία αυτά θα πρέπει να μετακινηθούν στο επιθυμητό web root.
|
|
|
|
|
|
|
|
|
# Εγκατάσταση εξυπηρετητή (server)
|
|
|
|
|
|
## Προαπαιτούμενα
|
|
|
|
|
|
* Εγκατεστημένο [Composer](https://getcomposer.org) στην τελευταία έκδοση.
|
|
|
|
|
|
* Εγκατεστημένη [php](http://php.net) στην τελευταία έκδοση με ενεργοποιημένα modules: curl, PDO, PDO\_mysql, καθώς και τα απαραίτητα modules για τη λειτουργία του Drupal 8 _TODO_
|
|
|
|
|
|
* Εγκατεστημένη [MariaDB](https://mariadb.org/) ή [
|
|
|
MySQL](https://www.mysql.com)
|
|
|
|
|
|
* Εγκατεστημένο **web server** και **κατάλληλα ρυθμισμένο virtual host** για τον εξυπηρετητή
|
|
|
|
|
|
## Εγκατάσταση του Drupal 8
|
|
|
|
|
|
Η εγκατάσταση του Drupal 8 πρέπει να γίνει στο φάκελο `e-epal\drupal\`. Η τελευταία έκοση του Drupal 8 είναι διαθέσιμη στο https://www.drupal.org/docs/8/install.
|
|
|
|
|
|
Ο φάκελος `e-epal\drupal\` περιλαμβάνονται ήδη απαραίτητες για τη λειτουργία της εφαρμογής επεκτάσεις (drupal modules) που αναπτύχθηκαν ειδικά για την εφαρμογή (δείτε _Δομή φακέλων_). Αυτά τα υποσυστήματα θα πρέπει να εγκατασταθούν στο Drupal όταν ολοκληρώσετε την εγκατάσταση του. Εφίσταται η προσοχή σας αφενός να μην αφαιρεθούν οι απαραίτητες επεκτάσεις, περίπτωση κατά την οποία πρέπει να τα επαναφέρεται από τον κώδικα της εφαρμογής, αφετέρου στο να εγκαταστήσετε στο Drupal τις επεκτάσεις αυτές. Με την ολοκλήρωση της εγκατάστασης του Drupal 8 και των επεκτάσεων που περιλαμβάνονται στον κώδικα της εφαρμογής, πρέπει να καθαρίσετε την cache του Drupal.
|
|
|
|
|
|
_TODO ανάλυση drupal post install, ποια modules εγκαθιστούμε / εντολές drush_
|
|
|
|
|
|
|
|
|
## Ρύθμιση και προετοιμασία
|
|
|
|
|
|
### Αρχεία ρυθμίσεων
|
|
|
|
|
|
Δημιουργήστε ένα αρχείο με όνομα `app.txt` και τοποθετήστε το ένα επίπεδο πάνω από το **web root**. Το αρχείο αυτό θα πρέπει να περιλαμβάνει ένα ορμανθό 136 χαρακτήρων και θα χρησιμοποιηθεί για τις ανάγκες κρυπτογράφησης στοιχείων στην βάση δεδομένων της εφαρμογής. |