Σύστημα για on-line δημοπρασίες & πωλήσεις

Σχετικά έγγραφα
Εισαγωγή στις Σελίδες Εξυπηρετητή Java Java Server Pages (JSP)

Περιγραφή της εργασίας

Τεχνολογίες Ανάπτυξης Ηλεκτρονικού Καταστήματος Μικρομεσαίας Επιχείρησης. Μικρομεσαίες Επιχειρήσεις και Καινοτομία

Βασικές Έννοιες Web Εφαρμογών

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

ΜΑΘΗΜΑ: Διαδικτυακές Εφαρμογές

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15

Αξιολόγηση Υπηρεσιών ιαδικτύου µέσω Περιπτώσεων Μελέτης

Τ.Ε.Ι. ΚΡΗΤΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Ηλεκτρονικό Εμπόριο. Πίσσας Δημήτρης ΑΜ:1960 Λυμπεράκης Χάρης ΑΜ:3388

Διαδίκτυο και Εφαρμογές 2η Άσκηση Μετασχηματισμοί XML και XSL. Γιαννέλος Γιάννης ΑΜ: Μαρινέλλης Γιώργος ΑΜ:

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

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Διαδικτυακές Εφαρμογές Ενότητα 5: Servlets και JSPs

ΠΡΟΣΟΧΗ: Οι απαντήσεις πολλαπλής επιλογής µόνο πάνω στο ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ

Πληροφορική Τμήμα Σχεδιασμού & Τεχνολογίας Ξύλου & Επίπλου Αντώνιος Καραγεώργος Ευανθία Τσιλιχρήστου. Μάθημα 5 ο Τεχνολογίες Διαδικτύου: HTML I

Πληροφορίες για το μάθημα

Παρουσίαση Θερινού Σχολείου. Αριστεία ΕΛ/ΛΑΚ ΤΕΙ Αθήνας

Πτυχιακή εργασία. Ανάπτυξη παιχνιδιού πολλών παικτών

Social Network : Programming on FACEBOOK

Τεχνολογίες Διαδικτύου. Server Side Scripting I PHP

Εργαλεία ανάπτυξης εφαρμογών internet Ι

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

ΕΡΓΑΣΙΑ. (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών)

Java & Java EE 2o Μέρος: Διασφάλιση ευκολίας τροποποίησης με το πρότυπο MVC (Model View Controller) Κακαρόντζας Γεώργιος

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 8 η Διάλεξη: Προγραμματισμός στην πλευρά του εξυπηρετητή: Τεχνολογία Java Server Pages (JSP)

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

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Κατανεμημένα Συστήματα. Javascript LCR example

Διαδικτυακές Εφαρμογές. Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Java Servlets: Principles and Programming 1/19

PHP/MySQL και Project

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

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

Java & Java EE 3o Μέρος: Διασφάλιση ασφάλειας σε εφαρμογές Java Enterprise Edition. Κακαρόντζας Γεώργιος

"Ανάπτυξη προηγμένης εφαρμογής απεικόνισης και ενσωμάτωσης Υπηρεσιών Καταλόγου (LDAP) με τη χρήση των τεχνολογιών Web 2.0"

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

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

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

Μιχάλης Μασούρας Επιβλέπων Καθηγητής: Ιγνάτιος Δεληγιάννης

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

6. Εξαιρέσεις στη γλώσσα Java

Τεχνικός Εφαρμογών Πληροφορικής

XAMPP Apache MySQL PHP javascript xampp

Σύστημα διαχείρισης περιεχομένου (Content Management System)

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

ΚΑΤΑΝΕΜΗΜΕΝΟ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΣΥΣΚΕΥΩΝ ΑΣΗΜΑΚΟΠΟΥΛΟΣ ΣΩΤΗΡΗΣ ΑΜ : 3021

Δίκτυα. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Εκπαιδευτικές συνεδρίες κατάρτισης:

Κατανεµηµένα Συστήµατα ΙΙ Μάθηµα Ελεύθερης Επιλογής, Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #15

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

Δυναμικές Ιστοσελίδες Προγραμματισμός στην πλευρά του client

Στοιχεία παρουσίασης. Εισαγωγή Θεωρητικό υπόβαθρο Υλοποίηση λογισμικού μέρους συστήματος Συμπεράσματα Μελλοντικές Επεκτάσεις

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Προγραμματισμός στην πλευρά του εξυπηρετητή: Τεχνολογία Servlet

Δομή παρουσίασης. Σχεδιασμός και υλοποίηση συστήματος παρακολούθησης και ελέγχου πωλητών και δημιουργία εφαρμογής σε έξυπνο κινητό

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

ΕΡΓΑΣΙΑ. (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών)

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα

ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java

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

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

Περιεχόμενα ΕΥΧΑΡΙΣΤΙΕΣ ΕΙΣΑΓΩΓΗ Σχετικά με τους συγγραφείς...24

Cloud Computing with Google and Microsoft. Despoina Trikomitou Andreas Diavastos Class: EPL425

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ:

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

Προγραμματισμός ΙΙ (Java) 6. Διαχείριση δεδομένων

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

Η HTML 5 θα αλλάξει το Web?

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet.

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

Κωνσταντίνος Παρασκευόπουλος Καθηγητής Πληροφορικής (ΠΕ19 MSc) Ελληνικό Κολλέγιο Θεσσαλονίκης

Προγραμματισμός διαδικτυακών εφαρμογών με PHP

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Αξιολόγηση της επίσημης Moodle Mobile εφαρμογής

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Σχεδίαση και Ανάπτυξη Ιστότοπων

Ψηφιακό Σχολείο 2.0. Βασικές έννοιες Υποδομές Ηλεκτρονική Μάθηση Διαχείριση Ηλεκτρονικής Τάξης Οργάνωση Ηλεκτρονικού Μαθήματος

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά

Σεμινάριο Wordpress CMS (Δημιουργία Δυναμικών Ιστοσελίδων)

Μηχανή αναζήτησης βασισμένη σε AJAX και Soundex. Πτυχιακή Εργασία

8ο Πανελλήνιο Συμποσιο Ωκεανογραφίας & Αλιείας 637

Γενικά (για τις γραπτές εξετάσεις)

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack

άσκηση Hide UI Elements 7.2 Try and Catch

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

Εισαγωγή στις ΤΠΕ ΙΙ Γιάννης Βρέλλης ΠΤΔΕ-Πανεπιστήμιο Ιωαννίνων. World Wide Web. Παγκόσμιος Ιστός

/software/web_tools/webapps/speller/.

ίκτυα - Internet Υπηρεσίες Internet O Παγκόσµιος Ιστός (World Wide Web) Ηλεκτρονική Αλληλογραφία ( ) Υπηρεσία FTP (File Transfer Protocol)

BPMN Abstraction Tool ΠΑΡΟΥΣΙΑΣΗ ΕΡΓΑΛΕΙΟΥ ΑΦΑΙΡΕΣΗΣ ΕΠΙΧΕΙΡΗΣΙΑΚΩΝ ΔΙΑΔΙΚΑΣΙΩΝ

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΙΑΤΜΗΜΑΤΙΚΟ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ (Master in Information Systems)

Τίτλος Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης. Συντάκτης. Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης Τηλεκπαίδευσης

Διδάσκων: Παναγιώτης Ανδρέου

Βασικά της γλώσσας JAVA

Transcript:

Τ.Ε.Ι. ΚΡΗΤΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Σύστημα για on-line δημοπρασίες & πωλήσεις Γρηγοράκης Φώτιος Α.Μ. 3040 Χαμηλάκης Εμμανουήλ Α.Μ. 3111 Μασέλης Αλέξανδρος Α.Μ. 3019 Επιβλέπων Καθηγητής : Νίκος Παπαδάκης Ηράκλειο Κρήτης, 2015

ΠΕΡΙΛΗΨΗ Η διπλωματκή αυτή εργασία έχει στόχο το σχεδιασμό, την ανάλυση, και την υλοποίηση ενός συστήματος online δημοπρασιών και πωλήσεων. Το σύστημα αυτό θα προσφέρει δυνατότητες διαξαγωγής δημοπρασιών, στις οποίες ο χρήστης μπορεί να συμμετάσχει κάνοντας προσφορές για το εκάστοτε προιόν. Στο τέλος της δημοπρασίας, το προϊόν καταχωρείται στον χρήστη με τη μεγαλύτερη προσφορά. Γρηγοράκης Φώτιος Χαμηλάκης Εμμανουήλ Μασέλης Αλέξανδρος Page 2

1. Εισαγωγή 1.1 Ηλεκρονικό Εμπόριο Ως ηλεκρονικό εμπόριο ορίζεται η διαδικασία αγορων και πωλήσεων μέσω του διαδικτύου. Έτσι, ως ηλεκρονικό εμπόριο μπορούμε να χαρακτηρήσουμε πράξεις αγοραπωλησίας μέσω ηλεκρονικού ταχυδρομίου, μέσω ηλεκρονικών καταστημάτων, μέσω εφαρμογών κινητών συσκευών, ή μέσω άλλων εφαρμογών του διαδικτύου. 1.2 Ηλεκρονικές Δημοπρασίες Οι ηλεκτρονικές δημοπρασίες είναι ένα κομμάτι του ηλεκρονικού εμπορίου. Μέσα από ειδικές διαδικτυακές πλατφόρμες ή εφαρμογές, οι χρήστες συμμετέχουν (συνήθως αφού δημιουργήσουν κάποιο λογαριασμό στην πλατφόρμα) κάνοντας προσφορές για το εκάστοτε προϊόν ή υπηρεσία που δημοπρατείται, προσπαθώντας να έχουν την μεγαλύτερη προσφορά μέχρι τη λήξη της δημοπρασίας. Στο τέλος της δημοπρασίας, το προϊόν καταχωρείται στον χρήστη με τη μεγαλύτερη προσφορά. 1.3 Πλατφόρμες ηλεκρονικών δημοπρασιών Η πιο δημοφηλής και εξελιγμένη πλατφόρμα ηλεκτρονικών δημοπρασιών παγκοσμίως είναι το ebay. Σε αυτή είναι εγγεγραμμένοι εκατομμύρια χρηστών, οι οποίοι πουλάνε ή αγοράζουν προϊόντα χρησιμοποιώντας τη μέθοδο των δημοπρασιών. Επίσης μεγάλο μερίδιο των ηλεκτρονικών δημοπρασιών ανήκει στην Amazon, ενώ το ricardo.com είναι η δεύτερη σε χρήση πλατφόρμα δημοπρασιών στην Ευρώπη μετά το ebay. 1.4 Κίνδυνοι και σημεία κριτικής Παρά την δημοφιλία αυτών των πλατφόρμων, υπάρχουν ακόμα σκεπτικιστές που στέκονται στους κινδύνους του ηλεκτρονικού εμπορίου. Υπάρχουν επιχειρήματα για περιπτώσεις απάτης, με πωλητές που δεν αποστέλουν ποτέ τα προϊόντα, και αγοραστές που χάνουν τα λεφτά τους. Όλες οι μεγάλες εταιρίες εργάζονται σκληρά για την αντιμετώπιση τέτοιων φαινομένων, ενώ συχνά έχουν ελαστικές πολιτικές επιστροφής χρημάτων. Επίσης υπάρχουν και γενικότερα προβλήματα του ηλεκτρονικού εμπορίου που επεκτείνονται στις ηλεκτρονικές δημοπρασίες, όπως το κόστος δημιουργίας τέτοιων εφαρμογών για τους επιχειρηματίες, ή η έλειψη εμπιστοσύνης στα προϊόντα απο τη μεριά των χρηστών. Γρηγοράκης Φώτιος Χαμηλάκης Εμμανουήλ Μασέλης Αλέξανδρος Page 3

2. Ανάπτυξη Εφαρμογής 2.1 Μεθοδολογία ανάπτυξης Η εφαρμογή σχεδιάστηκε και χωρίστηκε σε επιμέρους κομμάτια, τόσο σχετικά με τα επίπεδα υλοποίησης (βάση δεδομένων, εφαρμογή εξυπηρετητή(server), διαπαφή χρήστη), όσο και σχετικά με τις λειτουργίες (λειτουργίες διαχειριστή, λειτουργίες τελικού χρήστη, λειτουργίες συντήρησης). Κάθε ένα από αυτά τα κομμάτια σχεδιάστηκε αρχικά ξεχωριστά, και όταν έφτανε σχεδόν σε τελική μορφή, ενωννόταν με τα υπόλοιπα κομμάτια. Χρησιμοποιήθηκαν αντικειμενοστραφείς τεχνικές (και τεχνολογίες που τις υποστηρίζουν), ενώ δόθηκε μεγάλη έμφαση στην επαναχρησιμοποίηση κώδικα: ομαδοποίηση λειτουργιών με τρόπο ώστε να μπορούν να χρησιμοποιούνται ξανά και ξανά εξοικονομώντας χρόνο. 2.2 Γλώσσες προγραμματισμού, τεχνολογίες, και εργαλεία - HTML - Java o Java Servlets o JSP - Javascript - AJAX - JSON - MySQL - Apache Tomcat - Netbeans Η εφαρμογή που υλοποιήθηκε είναι ένα σύστημα πελάτη-εξυπηρέτητη (clientserver). Ο πελάτης περιηγείται στην εφαρμογή, και οι λειτουργίες που επιλέγει εξυπηρετούνται από τον server, ο οποίος στην περίπτωσή μας είναι ο Apache Tomcat. Για την αποθήκευση των δεδομένων, χρησιμοποιήθηκε το σύστημα διαχείρησης βάσεων δεδομένων MySQL. 2.2.1 JSP Οι σελίδες τις εφαρμογής έχουν υλοποιηθεί με jsp, μία συμπληρωματική Java τεχνολογία που επιτρέπει συνδιασμό HTML με κώδικα Java. Οι jsp σελίδες στη ουσία είναι σελίδες δυναμικού περιεχομένου, σε αντίθεση με το στατικό περιεχόμενο της HTML. Γρηγοράκης Φώτιος Χαμηλάκης Εμμανουήλ Μασέλης Αλέξανδρος Page 4

2.2.2 Java Servlets Τα Java Servlets αποτελούν κλάσεις Java, οι οποίες μπορούν να εξυπηρρετούνται από web servers και να παρέχουν το ζητούμενο αποτέλεσμα μετά από κάποια επεξεργασία. 2.2.3 HTML (Hyper Text Markup Language) H HTML είναι η βασική γλώσσα κατασκευής ιστοσελίδων. Είναι μία περιγραφική γλώσσα, την οποία μπορεί και αναγνωρίζει ο φυλλομετρητής (browser), και τη μεταφράζει σε στυλιζαρισμένο κείμενο, εικόνες ή πολυμέσα (ήχος, βίντεο). 2.2.4 Javascript H JavaScript είναι μια αντικειμενοστραφής γλώσσα προγραμματισμού που χρησιμοποιείται για την κατασκευή διαδραστικών ιστοσελίδων. Επιτρέπει τη μετατροπή μίας στατικής σελίδας σε δυναμική, με τη δυνατότητά της να επικοινωνεί με τον εξυπηρετητή για να λάβει δεδομένα και να αλλάζει το περιεχόμενο του HTML κώδικα της σελίδας. 2.2.5 Ajax Ως Ajax ορίζουμε μία τεχνική που χρησιμοποιείται για την επικοινωνία πελάτηεξυπηρετητή στο παρασκήνιο, χωρίς να είναι δηλαδή εμφανές στον χρήστη. Υλοποιείται κυρίως με Javascript, και χρησιμοποιεί κυρίως JSON ή XML για την ανταλλαγή μυνημάτων 2.2.6 JSON Το JSON (JavaScript Object Notation) είναι ένα πρότυπο ανταλλαγής δεδομένων (μηνυμάτων). Είναι σχεδιασμένο έτσι ώστε ένα μήνυμα να είναι εύκολα επεξεργάσιμο από άλλες γλώσσες (π.χ. Javascript), αλλά και σχετικά εύκολα κατανοήσιμο από τον άνθρωπο. Είναι ανεξάρτητο από τη γλώσσα προγραμματισμού στην οποία χρησιμοποιείται, κάτι που το κάνει ιδιαίτερα ευέλικτο. 2.2.7 MySQL Μία βάση δεδομένων είναι μία δομημένη συλλογή δεδομένων. Το MySQL είναι ένα σύστημα διαχείρησης βάσεων δεδομένων, μέσα από το οποίο μπορούμε να εκτελούμε ερωτήματα στη βάση δεδομένων, να ανακτούμε δεδομένα, να εισάγουμε ή να διαγράφουμε δεδομένα, να ενημερώνουμε τις εγγραφές μας, να δημιουργούμε ή να διαγράφουμε πίνακες ή ακόμα και ολόκληρες βάσεις δεδομένων, Γρηγοράκης Φώτιος Χαμηλάκης Εμμανουήλ Μασέλης Αλέξανδρος Page 5

2.2.8 Apache Tomcat Ο Apache Tomcat είναι μία εφαρμογή - εξυπηρετητής που επιτρέπει την εκτέλεσει κώδικα Java, καθώς επίσεις υλοποιεί τις προδιαγραφές των τεχνολογιών JSP και Java Servlets. 2.2.9 Netbeans To Netbeans είναι ένα εργαλείο περιβάλλον ανάπτυξης εφαρμογών, σχεδιασμένο κυρίως για Java εφαρμογές, αλλά όχι αποκλειστικά. 2.3 Απαιτήσεις συστήματος Η εγκατάσταση του συτήματος προυποθέτει την ύπαρξη των παρακάτω: - Apache Tomcat - MySQL Server - Netbeans (μαζί με τις εξωτερικές βιβλιοθήκες commons-fileupload, commonsio, json-simple που παρέχονται μαζί με τον κώδικα της εφαρμογής μας) 2.4 Εγκατάσταση συστήματος Για την εγκατάσταση του συστήματος, τρέχουμε το αρχείο.sql που παρέχεται μαζί με τον κώδικα της εφαρμογής ώστε να δημιουργηθεί η ζητούμενη βάση δεδομένων. Στη συνέχεια βάζουμε τον φάκελο με το project στον φάκελο με τα project του netbeans, ανοίγουμε το project και το τρέχουμε. 3 Περιγραφή Συστήματος 3.1 Λειτουργίες Συστήματος - Εγγραφή νέου χρήστη - Είσοδος χρήστη - Αναζήτηση δημοπρασιών ανα κατηγορία, εταιρία ή όνομα - Συμμετοχή σε δημοπρασία (κατάθεση προσφοράς) - Εισαγωγή προϊόντος - Εισαγωγή δημοπρασίας - Επεξεργασία δημοπρασίας - Κατακύρωση δημοπρασίας - Αναφορές διαχειριστή Γρηγοράκης Φώτιος Χαμηλάκης Εμμανουήλ Μασέλης Αλέξανδρος Page 6

3.2 Περιγραφή Βάσης Δεδομένων 4 Παρουσίαση Συστήματος 4.1 Διαχειριστής 4.1.1 Λιστα Προϊόντων / Προσθήκη προϊόντος Γρηγοράκης Φώτιος Χαμηλάκης Εμμανουήλ Μασέλης Αλέξανδρος Page 7

4.1.2 Λίστα κατηγοριών / Προσθήκη κατηγορίας 4.1.3 Λίστα εταιριών / Προσθήκη εταιρίας Γρηγοράκης Φώτιος Χαμηλάκης Εμμανουήλ Μασέλης Αλέξανδρος Page 8

4.1.4 Λίστα χρηστών / Προσθήκη χρήστη 4.1.5 Λίστα Δημοπρασιών Γρηγοράκης Φώτιος Χαμηλάκης Εμμανουήλ Μασέλης Αλέξανδρος Page 9

4.1.6 Νικητής δημοπρασίας 4.1.7 Προσθήκη δημοπρασίας Γρηγοράκης Φώτιος Χαμηλάκης Εμμανουήλ Μασέλης Αλέξανδρος Page 10

4.1.8 Επεξεργασία δημοπρασίας 4.1.9 Αναφορές Γρηγοράκης Φώτιος Χαμηλάκης Εμμανουήλ Μασέλης Αλέξανδρος Page 11

4.2 Διεπαφή τελικού Χρήστης 4.2.1 Δημιουργία λογαριασμού 4.2.2 Σύνδεση χρήστη Γρηγοράκης Φώτιος Χαμηλάκης Εμμανουήλ Μασέλης Αλέξανδρος Page 12

4.2.3 Λανθασμένα στοιχεία σύνδεσης 4.2.4 Αρχική σελίδα Γρηγοράκης Φώτιος Χαμηλάκης Εμμανουήλ Μασέλης Αλέξανδρος Page 13

4.2.5 Αποτελέσματα αναζήτησης Γρηγοράκης Φώτιος Χαμηλάκης Εμμανουήλ Μασέλης Αλέξανδρος Page 14

4.2.6 Σελίδα δημοπρασίας 4.2.7 Επιτυχής καταχώρηση προσφοράς Γρηγοράκης Φώτιος Χαμηλάκης Εμμανουήλ Μασέλης Αλέξανδρος Page 15

4.2.8 Κλειστή δημοπρασία Γρηγοράκης Φώτιος Χαμηλάκης Εμμανουήλ Μασέλης Αλέξανδρος Page 16

4.2.9 Αναζήτηση ανά κατηγορία Γρηγοράκης Φώτιος Χαμηλάκης Εμμανουήλ Μασέλης Αλέξανδρος Page 17

4.2.10 Αναζήτηση ανά εταιρία Γρηγοράκης Φώτιος Χαμηλάκης Εμμανουήλ Μασέλης Αλέξανδρος Page 18

5 Παράρτημα κώδικα Κλαση Bid.java public class Bid { private int ID; private Auction auction; private User user; private float price; private long time; public Bid(int id, int auction_id, int user_id, float price, long time) throws ClassNotFoundException, SQLException{ this.id = id; this.auction = new Auction(auction_id); this.user = new User(user_id); this.price = price; this.time = time; public Bid(int id) throws ClassNotFoundException, SQLException{ ResultSet rs = Database.selectRows("bid", "*", "`id` = "+id, null, null); while(rs.next()){ this.id = id; this.auction = new Auction(rs.getInt("auction_id")); this.user = new User(rs.getInt("user_id")); this.price = rs.getfloat("price"); this.time = rs.getlong("time"); public int getid() {return ID; public void setid(int ID) {this.id = ID; public Auction getauction() {return auction; public void setauction(auction auction) {this.auction = auction; public User getuser() {return user; public void setuser(user user) {this.user = user; public float getprice() {return price; public void setprice(float price) {this.price = price; public long gettime() {return time; public void settime(long time) {this.time = time; Γρηγοράκης Φώτιος Χαμηλάκης Εμμανουήλ Μασέλης Αλέξανδρος Page 19

Servlet LogoutAction.java public class LogoutAction extends HttpServlet { /** * Processes requests for both HTTP <code>get</code> and <code>post</code> methods. * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processrequest(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { response.setcontenttype("text/html;charset=utf-8"); PrintWriter out = response.getwriter(); try { HttpSession session = request.getsession(false); if(session!= null){ session.invalidate(); response.sendredirect("index.jsp"); finally { out.close(); Main.jsp <%@page import="ecommerce.*"%> <%@page contenttype="text/html" pageencoding="utf-8"%> <div id="container"> <div id="center" class="column"> <div id="content"> <h1 style="text-align: center">welcome to our Auctions Platform!</h1><br /> <h2 style="margin-top: 65px"><u>Latest Auctions</u></h2> <div class="stuff"> <% ArrayList<Auction> auctions = Auction.getOpenAuctions(); Iterator it = auctions.iterator(); Product p = null; Auction a = null; while (it.hasnext()) { a = (Auction)it.next(); p = a.getproduct(); %> <div class="item"> <img src="${pagecontext.request.contextpath/image?image=<% out.print(p.getimage()); %>" alt="" style="max-height:90px;max-width:124px"/> <a href="index.jsp?action=auction&id=<%= a.getid() %>" class="name"><% out.print(p.getname()); %></a> <span style="padding:0"> <% out.print(p.getprice()); %></span><br /> <span style="padding:0">start price: <% out.print(a.getstartprice()); %></span><br /> </div> <% %> </div> </div> </div> <%@include file="categories-bar.jsp" %> <%@include file="sidebar-right.jsp" %> </div> Γρηγοράκης Φώτιος Χαμηλάκης Εμμανουήλ Μασέλης Αλέξανδρος Page 20

Javascipt Handle login form $('#login_form').submit(function(){ $('#uname').css('background-color', 'white'); $('#pass').css('background-color', 'white'); error = false; if (!$('#uname').val()) { $('#uname').css('background-color', 'pink'); error = true; if (!$('#pass').val()) { $('#pass').css('background-color', 'pink'); error = true; if (error) return false; $.ajax({ url: $(this).attr('action'), data: $(this).serialize(), datatype: 'json', method: 'POST', success: function(resp){ if (!resp.success) { $('#login-error').text('username or password is wrong'); else { window.location = window.location; ); return false; ); Javascript Place bid $('form#place-bid').submit(function(){ $.ajax({ url: $(this).attr('action'), type: "POST", data: $(this).serialize(), datatype: 'json', success: function(data) { if (data.success) { alert("bid succesfully placed"); window.location = window.location; else { alert(data.message); ); return false; ); Γρηγοράκης Φώτιος Χαμηλάκης Εμμανουήλ Μασέλης Αλέξανδρος Page 21

JSON message (ανανέωση τιμής δημοπρασίας σε πραγματικό χρόνο) { "price":1000.0, "success":true, "status":"open" 6 Βιβλιογραφία Πηγές - Core Servlets and JavaServer Pages: Core Technologies (Hall Marty, Brown Larry) - Η γλώσσα JavaScript (Γιώργος Λιακέας) - Java API Oracle Documentation - MITLibraries (http://libguides.mit.edu) Ιδιαίτερη βοήθεια πήραμε από το stackoverflow.com, το οποίο αν και πρόκειται για κάποιο ακαδημαικά αναγνωρισμένο site, μας έδωσε λύσεις σε πολλά από τα προβλήματα που συναντήσαμε. 7 Λεξικό Client: είναι ένα σύστημα που αποκτά πρόσβαση ( εξ αποστάσεως) σε ένα άλλο υπολογιστή με κάποιο είδος δικτύου. Server: είναι ένας υπολογιστής, ή ένα λογισμικό, που παρέχει ένα συγκεκριμένο είδος υπηρεσιών στο λογισμικό του client που εκτελείται σε άλλους υπολογιστές. Ο όρος μπορεί να αναφέρεται σε ένα συγκεκριμένο κομμάτι του λογισμικού, όπως ένα web server, ή στη μηχανή στην οποία εκτελείται το λογισμικό. Διεπαφή: ονομάζουμε το κομμάτι μιας εφαρμογής που αλληλεπιδρά με τον τελικό χρήστη. Πλατφόρμα: αναφέρεται συνήθως στο λειτουργικό σύστημα των υπολογιστών ή σε μία εφαρμογή. Γρηγοράκης Φώτιος Χαμηλάκης Εμμανουήλ Μασέλης Αλέξανδρος Page 22