Skip to content

The backend for a web application project called BidderApp. A mini replica of Ebay.

License

Notifications You must be signed in to change notification settings

GiannisApost/BidderApp-Backend

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project - Web Application 2022

Η εργασία έγινε στο πλαίσιο του μαθήματος ΥΣ14 Τεχνολογίες Εφαρμογών Διαδικτύου

Μέλη ομάδας:

Γεώργιος-Κωνσταντίνος Ζαχαρόπουλος

Ιωάννης Αποστολάτος

Πίνακας περιεχομένων:

  1. Introduction

  2. Backend

  3. Security

1.Introduction

Ο στόχος της εργασίας ήταν να δημιουργηθεί μια διαδικτυακή εφαρμογή η οποία προσομοίαζε την γνωστή εφαρμογή δημοπρασιών ebay. Για το frontend χρησιμοποιήθηκε angular ενώ στο backend για την δημιουργία της βάσης (tables) έγινε χρήση sql και η σύνδεση της βάσης με το frontend πραγματοποιήθηκε με το springboot. Στην εργασία έχει υλοποιήθει και security (SSL/JWT).

2.Backend

Οι βασικοί πίνακες στην βάση μας είναι:

  • User: Στον πίνακα αποθηκεύονται οι πληροφορίες του χρήστη όπως (username, password, email, ...). Επίσης στον πίνακα κρατάμε την πληροφορία σχετικά με τους ρόλους που έχει ο χρήστης, δηλαδή αν είναι πωλητής, πλειοδότης ή διαχειριστής.

  • Bidder: Στον πίνακα αποθηκεύονται οι πληροφορίες που χρειάζεται ο πλειοδότης όπως (χώρα, τοποθεσία). Υπάρχει συσχέτιση του πίνακα του User με του Bidder (ένα προς ένα).

  • Seller: Στον πίνακα αποθηκεύονται οι πληροφορίες που χρειάζεται ο πωλητής. Και εδώ όπως με τον Bidder υπάρχει συσχέτιση του πίνακα του User με του Seller(ένα προς ένα).

  • Item: Στον πίνακα αποθηκεύονται όλες οι πληροφορίες ενός αντικειμένου για δημοπρασία(όνομα, τιμή, κατηγορία κλπ.). Υπάρχει συσχέτιση του πίνακα του Seller με του Item(ένα προς πολλά).

  • Bid: Στον πίνακα αποθηκεύονται οι πληροφορίες μιας προσφοράς ενός Bidder για ένα Item(ποσό, ημερομηνία της προσφοράς). Υπάρχει συσχέτιση με τον πίνακα του Bidder (ένα προς πολλά), καθώς και με τον πίνακα του Item(ένα προς πολλά).

  • AuthRequest / AuthResponse: Οι πίνακες βοηθούν στην πιστοποίση του χρήστη όταν γίνεται η είσοδος στη εφαρμογή. Με το AuthRequest γίνεται το αίτημα στην βάση και το AuthResponse επιστρέφει το jwt που χρειάζεται ο χρήστης.

  • UserMessages: Με τον συγκεκριμένο πίνακα επιτυγχάνεται η ανταλλαγή μηνυμάτων μεταξύ των χρηστών. Ο πίνακας έχει συσχέτιση με τον πίνακα User (πολλά προς ένα).

3.Security

Ακολουθήσαμε τις οδηγίες του μαθήματος και εμπεριέχεται στην εργασία security. Συγκεκριμένα προσθέσαμε πρωτόκολλο SSL χρησιμοποιώντας self-signed certificates και jason-web-token (bearer token). Στο token περιέχονται οι εξής ρόλοι:

  • USER_ROLE: Ο κάθε χρήστης κατά την είσοδό του (log-in) έχει αυτό τον ρόλο και είναι απαραίτητος για την βασική πλοήγηση στην εφαρμογή.

  • ADMIN_ROLE: Αυτόν τον ρόλο τον έχει μόνο ο λογαριασμός του διαχειριστή της εφαρμογής και ειναι απαραίτητος για την πλοήγηση του στις σελίδες διαχείρισης (admin pages).

  • SELLER_ROLE: Τον ρόλο τον έχουν μόνο οι χρήστες οι οποίοι έχουν δηλώσει στην εφαρμογή ότι θέλουν να είναι πωλητές.

  • BIDDER_ROLE: Τον ρόλο τον έχουν οι χρήστες οι οποίοι έχουν δηλώσει στην εφαρμογή ότι θέλουν να είναι πλειοδότες(bidders). Το jwt το αποθηκεύουμε στο local storage του web browser οπότε κάθε φορά είναι δυνατή η σύνδεση μοναδικού χρήστη στην εφαρμογή από τον συγκεκριμένο browser. Έχουμε υλοποιήσει guards ώστε ο χρήστης να έχει πρόσβαση μόνο στις δικές του σελίδες βάση του username του, καθώς και σε αυτές που έχει δικαίωμα βάση του ρόλου του.

About

The backend for a web application project called BidderApp. A mini replica of Ebay.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%