Linux Inside
71
πλήρως τα πάντα. Χρησιμοποιήσαμε τη βιβλιοθήκη
ldap_groups, που είχε ό,τι χρειαζόμασταν, αν και έπρεπε να
την πειράξουμε λίγο. Με λίγα λόγια, το Django σου επιτρέπει
τη χρήση ενός διαφορετικού authorization backend από αυτό
του δικού του ModelBackend, απλά προσθέτοντας αυτά στο
settings.py:
AUTHENTICATION_BACKENS = (
'
path.to.custom.backend',
'
django.contrib.auth.backends.ModelBackend',
)
Τη στιγμή που συνδέεται ένας χρήστης, το custom backend
(
υποθέτουμε ότι είναι ένα LDAP backend) ψάχνει για το χρή-
στη στη βάση δεδομένων του django πρώτα και, αν δεν τον
βρει, ψάχνει στον LDAP server. Αν ο χρήστης βρεθεί εκεί, τα
δεδομένα του μεταφέρονται στη βάση του Django. Με αυτό
το σύστημα, τα δεδομένα θα μείνουν στον LDAP server (και
θα χρησιμοποιούνται εύκολα) ακόμα και αν η βάση δεδομέ-
νων διαγραφεί. Παρομοίως, το σύστημα εγγραφής έψαχνε
για διπλές εγγραφές μόνο στον LDAP server. Το σύστημα εγ-
γραφής έγινε λίγο πιο πολύπλοκο βέβαια. Το σύστημα ζητού-
σε τους λογαριασμούς από τον dionyso, το e-class (προαιρε-
τικά) και από το webmail (προαιρετικά) και για να τα κάνει
verify, τα χρησιμοποιεί αμέσως, κάνει ένα pycurl και κάνει
parse το output. Αν είναι επιτυχές, κάνει επίσης parse τα δε-
δομένα του φοιτητή, όπως το όνομα, το εξάμηνο, τον αριθμό
μητρώου του, τους βαθμούς και τα μαθήματα στα οποία έχει
εγγραφεί στο e-class, και τα προσθέτει στον ldap server.
Χρησιμοποιώντας το django syndicator module ήμασταν
στη θέση να δημιουργήσουμε ένα ενοποιημένο RSS feed από
όλες τις ανακοινώσεις. Οι σελίδες που δημιουργήθηκαν είναι
οι παρακάτω:
•
Η πρώτη σελίδα που περιέχει μερικές προσωπικές πληρο-
φορίες.
•
Η syndicator-like σελίδα με όλες τις ανακοινώσεις.
•
Μία σελίδα συγκεκριμένα για το e-class, που δείχνει τα μα-
θήματα που ακολουθεί ένας φοιτητής, αρχεία που έχουν
«
ανέβει» πρόσφατα και διάφορα deadlines για τα projects.
•
Σελίδα Webmail.
•
Αναζήτηση βιβλιοθήκης (μέσω του library.teilar.gr).
•
Λίστα με όλους τους καθηγητές, με τη σχολή που ανήκουν,
και τα e–mails τους.
•
Μία σελίδα About.
•
Σελίδα ρυθμίσεων, που ο φοιτητής μπορεί να αλλάξει τον
κωδικό του, τα credentials από άλλες σελίδες, να κάνει
update τη λίστα των βαθμών/δηλώσεων/μαθημάτων στο e-
class, καθώς και να επιλέξει τους καθηγητές/άλλες ανακοι-
νώσεις που θέλει να παρακολουθεί.
Η εφαρμογή ονομάστηκε cronos.teilar.gr, ώστε να ταιριάζει
με τις υπόλοιπες αρχαιοελληνικές ονομασίες.
Extensions και βιομηχανικά ψυγεία!
Μετά από πολλές δοκιμές από φοιτητές διαφόρων σχολών
και πολλά θετικά σχόλια, ο Cronos υπέστη πολλές αλλαγές
και βελτιώσεις. Πλέον οι πιο σημαντικές σελίδες του ΤΕΙ πα-
ρέχουν RSS, οπότε έχει γραφτεί ανάλογα και μία RSS
syndication βιβλιοθήκη. Τα cron jobs έχουν ξαναγραφτεί και
έχουν βελτιωθεί δραστικά και από 50 λεπτά το καθένα πλέον
κάνουν 7 λεπτά σύνολο για να τρέξουν όλα μαζί. Το σύστημα
εγγραφής καταργήθηκε και πλέον ο φοιτητής μπορεί να κάνει
είσοδο με το dionysos account του και στη συνέχεια από τη
σελίδα ρυθμίσεών του να προσθέσει και τα υπόλοιπα
accounts από άλλες υπηρεσίες. Η βάση δεδομένων πέρασε
από μία μεγάλη αναδιοργάνωση, κάτι που έπαιξε μεγάλο ρό-
λο στην ταχύτητα της υπηρεσίας. Μετά από αρκετή ανάπτυ-
ξη, τα παραπάνω στοιχεία είναι έτοιμα για την επόμενη έκδο-
ση 0.3, το νέο εξάμηνο.
Όμως τα παραπάνω ήταν απλώς βελτιώσεις σε υπάρχοντα
συστατικά. Το σημαντικό που προέκυψε από την παραπάνω
υπηρεσία ήταν τα extensions. Η ιδέα των extensions δεν ήρθε
από εμάς, αλλά από συμφοιτητές μας! Η πρώτη ιδέα ήρθε
από τους Στέφανο Χρούση και Γιώργο Τσιώκο, οι οποίοι σκό-
πευαν να δημιουργήσουν, στο πλαίσιο της πτυχιακής εργα-
σίας τους, μία εφαρμογή που θα έλυνε το πολύ σημαντικό
πρόβλημα της ηλεκτρονικής εγγραφής εργαστηρίων, επίσης
σε Django. Η αρχική ιδέα μας ήταν να δημιουργηθεί η υπηρε-
σία ως extension του cronos, αλλά λόγω της πολυπλοκότητας
(
και πίεσης χρόνου) έγινε διαφορετική εφαρμογή, η οποία
όμως μοιραζόταν πολλά κοινά με το Cronos, κυρίως στο σύ-
στημα αυθεντικοποίησης. Το όνομα αυτής: Διογένης
(
Λόγω του Διογένη και της σπουδαιότητάς του, τα παιδιά κα-
τάφεραν να εξασφαλίσουν νέο server από το ΤΕΙ (HP ProLiant
ML750), ο οποίος βρίσκεται υπό τη συντήρηση του LinuxTeam
του ΤΕΙ Λάρισας και, εκτός από τις υπηρεσίες cronos και
diogenis, σερβίρει και την ιστοσελίδα του LinuxTeam και άλ-
λες υπηρεσίες του.
Το ακόμα πιο σημαντικό επίτευγμα, όμως, ήταν τα
extensions που προήλθαν από φοιτητές εκτός πληροφορικής.
Έχει ήδη μπει ως extension η υπηρεσία «Βιομηχανικά ψυγεία»
ως αποτέλεσμα πτυχιακής εργασίας των Ηλία Σπανού και
Βαγγέλη Παναγιώτου, η οποία υπολογίζει την ενέργεια που
απαιτείται για την ψύξη βιομηχανικών ψυγείων και λύνει σημα-
ντικό πρόβλημα πολύπλοκων υπολογισμών για τους φοιτητές
της Μηχανολογίας.
Υπάρχουν επίσης αρκετές ακόμα ιδέες για καινούργια συ-
στατικά (βάση δεδομένων με φυτολόγιο, δυαδικός/δεκαεξαδι-
κός υπολογιστής, Αndroid application κ.λπ.), καθώς και για
βελτίωση των υπαρχόντων (admin panel, Dashboard).
Το σημαντικό είναι, ωστόσο, ότι οι παραπάνω υπηρεσίες
κατάφεραν να αλλάξουν σημαντικά τον τρόπο λειτουργίας
του ΤΕΙ, ειδικότερα η υπηρεσία Διογένης που έλυσε ένα πολύ
σημαντικό πρόβλημα πολλών ετών στη σχολή μας. Ας μην ξε-
χνάμε, τέλος, το γεγονός ότι δημιουργήθηκαν, τρέχουν και
συντηρούνται εξ ολοκλήρου από φοιτητές, γεγονός που αυ-
ξάνει εκθετικά την επιτυχία τους.
•
Linux Labs – Cronos