Περιγραφή του EcoTruck

Σχετικά έγγραφα
Εισαγωγή στο django. Αλέξανδρος Αλτάνης. 21 Οκτωβρίου 2010

Σχεδιασμός Βάσεων Δεδομένων

Εισαγωγή στην Ανάπτυξη Εφαρμογών Web με Χρήση της Python, του Apache και του mod_python

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

ΔΟΜΗ. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Δ. Ζήνδρος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 3:

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

Ανάπτυξη διαδικτυακών εφαρμογών με την Python Το εργαλείο Flask

H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων

Εργαστήριο Σημασιολογικού Ιστού

Θέματα Προγραμματισμού Διαδικτύου ~ MySQL & PHP ~

Ρύθμιση λογαριασμού αποστολής Εmail. Η Google χρησιμοποιεί πλέον το μηχανισμό xoauth2 για την πιστοποίηση χρηστών gmail.

2 ο Σύνολο Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι

Η SQL αποτελείται από δύο υποσύνολα, τη DDL και τη DML.

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.

Python 2. IT. ture/hardware as a Service) PaaS (Platform as a Service) 1. Web. Python Web. Operating System (OS) (DB) 2.1 IT IT.

Ανάκτηση Δεδομένων (Information Retrieval)

ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ Relational Model. SQL Μαθ. #11

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 9β: SQL (Διαχείριση εγγραφών, Όψεις, Περιορισμοί, Εναύσματα) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Εργαστήριο Βάσεων Δεδομένων. Triggers

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ηλεκτρονικοί Υπολογιστές II

Βάσεις Δεδομένων. Βασίλειος Βεσκούκης Εισαγωγή στη γλώσσα SQL (Structured Query Language) Η γλώσσα SQL

Αντώνης Χρυσόπουλος Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης ΔΟΜΗΣΗ ΚΩΔΙΚΑ. Μαθαίνω παίζοντας

A J A X AJAX Γιάννης Αρβανιτάκης

MySQL + Γλώσσα Προγραμματισμού. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Τμήμα Διοίκησης Επιχειρήσεων

Διαχείριση Πολιτισμικών Δεδομένων

Βάσεις Δεδομένων 2η εργαστηριακή άσκηση

Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Βάσεις Περιβαλλοντικών Δεδομένων

Τεχνολογία Πολιτισμικού Λογισμικού

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

PayByBank RESTful API GUIDE

Βάσεις Δεδομένων Ι SQL Μέρος 3 ο. (Constraints & Joins) Φώτης Κόκκορας (MSc/PhD) Τμήμα Μηχανικών Πληροφορικής ΤΕ

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 4ο Μάθημα: SQL - Παράδειγμα. Δρ. Κωνσταντίνος Χ.

Εφαρµογές και Περιβάλλοντα Εργασίας AJAX

MySQL + Γλώσσα Προγραμματισμού. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΕΠΛ 342 Βάσεις εδοµένων

9η Εργαστηριακή Άσκηση: Stored Procedures - Triggers. Αποθηκευμένες Διαδικασίες (Stored Procedures):

10 η Διάλεξη Python Βάσεις δεδομένων στη python

Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου]

Τι είναι η Spring. Η Spring είναι ένα ελεύθερο (open source) περιβάλλον εργασίας για εφαρμογές Java. Μπορεί να περιγραφεί ως:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #3

Προγραμματισμός Παγκόσμιου Ιστού

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

Βάσεις Δεδομένων. Εισαγωγή για το Εργαστήριο. Δρ. Τιάκας Ελευθέριος. Τμήμα Πληροφορικής ΑΠΘ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

Ενεργές ΒΔ. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Βάσεις Δεδομένων Ενεργές ΒΔ 1

Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου]

Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

Τεχνολογία Πολιτισμικού Λογισμικού

Αντικειµενοστρεφής Προγραµµατισµός

Εργαστήριο Βάσεων Δεδομένων

ΘΕΜΑΤΑ. Ερώτηση 1 Κατά τη Φυσική Αποθήκευση (Physical storage) μιας ΒΔ αποθηκεύονται στον δίσκο τα:

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

Τμήμα Πληροφορικής ΑΠΘ

Εργαστήριο #10 (Ε10) 1

Paybybank RESTful API GUIDE

Παράδειγμα Insert Update Delete Alter.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (2)

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

Διάλεξη 07: Σχεσιακό Μοντέλο II (Relational Data Model) Διδάσκων: Παναγιώτης Ανδρέου

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Επιλέγει όλες τις πλειάδες, από μια σχέση R, που ικανοποιούν τη συνθήκη επιλογής.

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Joomla! with K2 - User Guide

Συνέδριο ΕΛΛΑΚ Open Source λογισμικό σε εφαρμογές του δημόσιου και ιδιωτικού τομέα

Τμήμα Πληροφορικής ΑΠΘ

Speed-0 WMP: Web and Mobile Platform Software Requirements Specification

Ανοικτά Ακαδημαϊκά Μαθήματα

Postgress ΣΤΟΧΟΣ ΣΧΕΤΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ ΥΛΙΚΟ. ΠΕΡΙΒΑΛΛΟΝ ΓΙΑ ΕΞΑΣΚΗΣΗ pgadmin ΥΠΟΒΑΘΡΟ. Συναρτήσεις στην PostgreSQL. 1. Γενικά

SQL Τύποι Δεδομένων Δημιουργία Πίνακα Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (1)

Εισαγωγή στην πληροφορική

Σχεδιασμός Πληροφοριακών Συστημάτων. Σημειώσεις

Γκέγκα Ευρώπη Κωστοπούλου Ειρήνη

PHPMyAdmin: Σύντομος οδηγός για αρχάριους

Οπτικοποίηση με Prefuse. Δομή / Βασικά Χαρακτηριστικά / Παράδειγμα

Προγραμματισμός για το Web

Το σχεσιακό μοντέλο βάσεων δεδομένων

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία. AtYourService CY : Create a REST API. Δημήτρης Χριστοδούλου

Εργαστήριο βάσεων δεδομένων. Εισαγωγή στη MySQL (2)

ΤΕΙ Σερρών Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πληροφορικής & Επικοινωνιών. Επώνυμο Όνομα: Α.Μ. : Εξάμηνο : Αίθουσα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

PayByBank RESTful API

Βάσεις Δεδομένων (Databases)

ΜΑΘΗΜΑ Άνοιγμα Της Εφαρμογής Υπολογιστικών Φύλλων. 2. Κύρια Οθόνη Της Εφαρμογής Υπολογιστικών Φύλλων ΣΤΟΧΟΙ:

Φορολογική Βιβλιοθήκη. Θανάσης Φώτης Προγραμματιστής Εφαρμογών

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων

Εργαστήριο βάσεων δεδομένων. Εισαγωγή στη MySQL (2)

8. ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ ΔΕΔΟΜΕΝΩΝ

Ξεκινώντας την εκτέλεση της εφαρµογής εκτελείται ο παρακάτω κώδικας

Code Quality Assurance. Η εκτίμηση βασίζεται πάντα σε δύο ειδών κριτήρια. Στα αντικειμενικά και στα ειδικά.

Transcript:

...... Πανεπιστήμιο Μακεδονίας 16 Μαΐου 2010

. Με λίγα λόγια Online εφαρμογή για τη διαχείριση ανακύκλωσης και επαναχρησιμοποίησης της χάρτινης ύλης Η ιδέα δημιουργήθηκε για τη συμμετοχή στον Πανελλήνιο Διαγωνισμό Λογισμικού xirafia.gr Θέμα του Διαγωνισμού: Ψηφιακή Προστασία του Περιβάλλοντος 1ο Βραβείο

. Ιδέα Χρήση της web τεχνολογίας Συντονισμός της διαδικασίας Επιτάχυνση της διαδικασίας Θα μπορούν να συμμετέχουν ιδιώτες και επιχειρήσεις με μικρότερη προσφορά ύλης Άρα η ανακύκλωση γίνεται πιο μαζικά Δεν θα χρειάζονται κάδοι!

. Περιγραφή Εταιρίες, ιδιώτες και φορτηγά μπορούν να κάνουν εγγραφή Δηλώνουν την τοποθεσία τους Αποστέλλουν τη προσφορά τους για ανακύκλωση ή κάνουν αίτηση για επαναχρησιμοποίηση Τα φορτηγά συλλέγουν την ύλη Μεταφορά της στα εργοστάσια

. Εφαρμογή Η εφαρμογή λειτουργεί online σε έναν κεντρικό server Real-time ενημέρωση της εξέλιξης της διαδικασίας ανακύκλωσης Real-time ενημέρωση του μποτιλιαρίσματος στους δρόμους Επιλογή από τα φορτηγά της βέλτιστης διαδρομής (με χρήση A*)

. Βελτίωση της εφαρμογής Πτυχιακή Εργασία Η εφαρμογή να είναι πιο real Τα φορτηγά να γίνουν agents. Με αυτό τον τρόπο θα υπάρχει αυτονομία, αξιοπιστία και ταχύτητα (οι υπολογισμοί θα γίνονται client-side) Τα real φορτηγά μέσω της εφαρμογής θα στέλνουν δεδομένα για το μποτιλιάρισμα και ο server θα εξάγει στατιστικά στοιχεία

. Συστατικά Αρκετή Python (simplejson, python-graph) Λίγη Javascript Django SQLite AJAX JSON Google Maps API

. Συστατικά Αρκετή Python (simplejson, python-graph) Λίγη Javascript Django SQLite AJAX JSON Google Maps API

. Django

. Django Web framework γραμμένο στην Python Ακολουθεί την αρχή DRY (Don t Repeat Yourself) Tα Django projects χρησιμοποιούν το μοτίβο MTV (Model Template View) Προσφέρει έτοιμες πακεταρισμένες εφαρμογές για reuse Πολλές επεκτάσεις με τη χρήση middleware κλάσεων

. Συστατικά Κάποια βασικά μέρη-συστατικά του: ORM (Object-Relational Mapper) Admin interface URL dispatcher βάση κανονικών εκφράσεων Template σύστημα (Jinja) Cache σύστημα

. Τι είναι το MTV; Βασικά είναι πιο γνωστό ως MVC (Model View Controller) Το Django το ονομάζει MTV (Model Template View) Κάθε web εφαρμογή που γράφουμε - ανεξαρτήτως framework - μπορεί να χωριστεί σε 3 βασικά μέρη τα models, views και templates

. Models Τα δεδομένα της εφαρμογής θα αποθηκεύονται σε κάποια βάση δεδομένων (δεν μας ενδιαφέρει τι είδους βάση) Αλλά θα αναπαριστώνται με τον ίδιο ακριβώς τρόπο Η μοντελοποίηση είναι αντικειμενοστρεφής Έτσι δημιουργείται μια εικονική βάση αντικειμένων

. Models - Παράδειγμα Listing 1: Αρχείο models.py class Post ( models. Model ): author = models. CharField ( max_length =100) title = models. CharField ( max_length =30, unique = True ) text = models. CharField ( max_length =1000) date = models. DateField () active = models. BooleanField ( default = True )

. ORM Δημιουργεί τη σύνδεση μεταξύ της εικονικής βάσης αντικειμένων και της σχεσιακής βάσης δεδομένων μας (Object-Relational Mapping) Κλάση <-> Πίνακας Attributes <-> Πεδία Αντικείμενα <-> Καταχωρήσεις

. ORM - Παράδειγμα Listing 2: ORM - Παράδειγμα class Post ( models. Model ): author = models. CharField ( max_length =100) title = models. CharField ( max_length =30, unique = True ) text = models. CharField ( max_length =1000) date = models. DateField () active = models. BooleanField (default = True ) BEGIN ; CREATE TABLE main_post ( id integer NOT NULL PRIMARY KEY, author varchar (100) NOT NULL, title varchar (30) NOT NULL UNIQUE, text varchar (1000) NOT NULL, date date NOT NULL, active bool NOT NULL ); COMMIT ;

. ORM - Παράδειγμα <2> Listing 3: ORM - Παράδειγμα from main. models import Post from datetime import date P1 = Post ( author1, title1, text here, date.today ()) P1. title = New Title p1. save () p1. author = New Author p1. save () INSERT INTO main_post VALUES (1, author1, title1, text here, 2010-04 -16,1); UPDATE main_post SET author = New Author WHERE id =1;

. ORM - Παράδειγμα <3> Listing 4: ORM - Παράδειγμα from main. models import Post all_posts = Post. objects.all () oldest_ten_posts = Post.objects.all (). order_by ( date )[:10] active_posts = Post. objects. filter ( active = True ) nicks_newest_posts = Post.objects.filter (author = Nick ). order_by (-date ) some_post = Post.objects.get (title = Nice Title ) SELECT * FROM main_post ; SELECT * FROM main_post ORDER BY date LIMIT 10; SELECT * FROM main_post WHERE active =1; SELECT * FROM main_post WHERE author = Nick ORDER BY DATE DESC ; SELECT * FROM main_post WHERE title = Nice Title ;

. Templates Είναι html αρχεία συνήθως Τα οποία περιέχουν κενά Η template μηχανή γεμίζει αυτά τα κενά με δεδομένα που τις δίνουμε (επεξεργασμένα δεδομένα από την βάση) Template inheritance Έχει δικιά της σύνταξη, μοιάζει αρκετά με Python

. Templates - Παράδειγμα Listing 5: Aρχείο main.html <html > <head ><title > Super Blog </ title ></ head > <body > <h1 > Welcome to the Super Blog </ h1 > {% block main %} {% endblock %} </body > </html > Listing 6: Αρχείο main_home.html {% extends main. html %} {% block main %} {% for post in posts %} <h1 >{{ post. title }} </h1 > <h3 ><i >{{ post. author }}, {{ post. date }} </i ></h3 > <p >{{ post. text }} </p> {% endfor %} {% endblock %}

. Views Python συναρτήσεις Δέχονται ως είσοδο την HTTP αίτηση μαζί με παραμέτρους και επιστρέφουν την HTTP απάντηση Επεξεργάζονται τα δεδομένα της βάσης μέσω των models και τα δίνουν στην template μηχανή για να τα προβάλλει με τον επιθυμητό τρόπο

. Views - Παράδειγμα Listing 7: Αρχείο views.py from django. http import HttpResponse from django. shortcuts import render_ to_ response def homepage ( req ): templ = main_home. html return render_ to_ response ( templ, { posts : Post. objects.all (). order_by ( - date )[:5] }) def postpage (req, post_id ): templ = main_post. html return render_ to_ response ( templ, { post : Post. objects.get(id= post_id ) })

. URL dispatcher Πρόκειται για μία association list που συνδέει κανονικές εκφράσεις διευθύνσεων με τα views Όταν γίνεται μια HTTP αίτηση ο dispatcher προσπαθεί να κάνει match τη διεύθυνση της αίτησης με κάποια από τις κανονικές εκφράσεις της λίστας σύμφωνα με την προτεραιότητά τους Αν γίνει match τότε εκτελείται το view που ταιριάστηκε Αν δεν γίνει match επιστρέφεται 404

. URL dispatcher - Παράδειγμα Listing 8: Αρχείο urls.py urlpatterns = patterns (, (r ^ admin /, include ( admin. site. urls )), (r ^$, blog. main. views. homepage ), (r ^ post /(\ d+)$, blog. main. views. postpage ), )

. Links http://djangoproject.com http://djangobook.com http://djangosnippets.org

. Ερωτήσεις Ευχαριστώ! Ερωτήσεις;