Χρήστος Καφρίτσας - sdi1800072 Αντώνης Καλαμάκης - sdi1800056
Παρουσίαση εργασίας: https://www.youtube.com/watch?v=pEDM0Zy1gc8
Στην εργασία έχει γίνει χρήση react για το frontend και django στο backend.
Για να γίνει deploy το project θα πρέπει ο χρήστης να έχει ήδη εγκατεστημένο το npm, python και το pip.
Το πρόγραμμα έχει δοκιμαστεί μόνο σε python3.10
Μετά στον φάκελο frontend θα πρέπει να εκτελέσει: npm install
και npm run start
Εδώ θα εμφανιστεί η σελίδα στο localhost:3000
Έπειτα στον φάκελο backend θα πρέπει να εκτελέσει:
pip install pipenv
,
pipenv install -r requirements.txt
,
pipenv shell
,
python manage.py runserver
Εδώ θα τρέξει ο server στο localhost:8000
To backend έχει υλοποιθεί με django. Η επιλογή έγινε γιατί η django είναι ισχυρή, δημοφιλής και εύκολη στην χρήση.
Στην βάση υπάρχει ο πίνακας user όπου αποθηκεύονται οι χρήστες με όλα τους τα στοιχεία. Ο πίνακας country, Ο πίνακας university, όπου αποθηκεύονται τα πανεπιστήμια με foreign key στην χώρα που ανήκουν O πίνακας department, όπου αποθηκεύονται τα τμήματα με foreign key στο πανεπιστήμιο που ανήκουν. Τέλος υπάρχει ο πίνακας application, όπου αποθηκεύονται οι αιτήσεις του χρήστη.
Υπάρχει ασφάλεια στην βάση, ώστε να μην μπορεί ο χρήστης να αλλάξει δεδομένα κάποιου άλλου.
Τα αρχεία που στέλνει ο χρήστης αποθηκεύονται σε ξεχωριστό φάκελο και όχι μέσα στην βάση.
Υπάρχουν απαιτήσεις για τον κωδικό που θα βάλει ο χρήστης όταν κάνει την εγγραφή, ώστε να μην είναι ευάλωτος σε hacking.
Ο κωδικός που βάζει ο χρήστης κρυπτογραφείται και δεν αποθηκεύεται σε plaintext.
Το frontend υλοποιήθηκε με reactJS
Ο χρήστης έχει την δυνατότητα να δει ότι πληροφορία θέλει
Επίσης ο χρήστης έχει την δυνατότητα να ξεκινήσει να φτιάχνει μια νέα αίτηση χωρίς να έχει λογαριασμό. Αφού φτάσει στο τελευταίο στάδιο αν θέλει να συνεχίσει μπορεί να κάνει σύνδεση, να φτιάξει λογαριασμό ή να συνδεθεί στον λογαριασμό του και αυτόματα θα επιστρέψει στην αίτηση και θα μπορεί να κάνει προσωρινή αποθήκευση ή οριστική υποβολή.
Κατά την έγγραφη ο χρήστης πρέπει να δώσει κωδικό >=8 χαρακτήρων και ο κωδικός δεν πρέπει να είναι μόνο ψηφιά
Στο προφίλ του χρήστη μπορεί να αλλάξει ότι πληροφορία θέλει και μόνο αν θέλει να αλλάξει κωδικό πρόσβασης ο χρήστης πρέπει να συμπληρώσει τον παλιό του κωδικό για λόγους ασφαλείας.
Στην σελίδα οι αιτήσεις μου ο χρήστης μπορεί να δει όλες τις αιτήσεις που έχει φτιάξει(οριστικοποιημένες ή μη), να διαγράψει αν θέλει κάποια αίτηση που είναι προσωρινά αποθηκευμένη ή να την επεξεργαστεί. Επίσης ο χρήστης μπορεί να δει λεπτομέρειες για την κατάσταση της αίτησης που έχει υποβάλει οριστικά και κάνοντας hover στο εικονίδιο δίπλα από την κατάσταση της αίτησης μπορεί να δει κάποιες πληροφορίες που μπορεί να έχει προσθέσει για την κατάσταση της αίτησης.
Κατά την δημιουργία μιας αίτησης αν ο χρήστης έχει συμπληρώσει όλα τα πεδία του πρώτου βήματος τότε ενεργοποιούνται τα άλλα δυο βήματα
Το δεύτερο βήμα είναι προαιρετικό επειδή ο χρήστης δεν χρειάζεται να συμπληρώσει το πανεπιστήμιο που θέλει να κάνει αντιστοίχηση.
Ο admin κάνοντας login πάει αυτόματα στην λίστα με τις υποβληθεισες αιτήσεις, επιλέγοντας μια αίτηση μπορεί να δει τα ήδη συμπληρωμένα πεδία
Στο βήμα "πανεπιστήμιο προς αντιστοίχηση" ο χρήστης αν θέλει μπορεί να έχει συμπληρώσει τα πεδία άλλα είναι στο χέρι του admin να βάλει τις σωστές τιμές σε αυτά τα πεδία καθώς εκείνος ξέρει να συμπληρώσει σε ποιο πανεπιστήμιο της Ελλάδας μπορεί να κάνει αντιστοίχηση ο χρήστης.
Μπορεί στο τελευταίο βήμα να επιλέξει μαθήματα τα οποία ο χρήστης πρέπει να πάρει για να γίνει η αποδοχή της αίτησης. Αν έχουν συμπληρωθεί τα πεδία στο βήμα "πανεπιστήμιο προς αντιστοίχηση" και έχουν επιλέγει μαθήματα τότε η επιλογή Εκκρεμής ενεργοποιείται και η κατάσταση μπορεί να πάει σε κατάσταση "Σε εκκρεμότητα".
Αλλιώς, αν έχουν επίσης συμπληρωθεί τα πεδία στο βήμα "πανεπιστήμιο προς αντιστοίχηση" και δεν έχει συμπληρωθεί ούτε λόγος απόρριψης ούτε επιπλέον μαθήματα ο admin μπορεί να εγκρίνει την αίτηση
Τέλος, αν ο admin έχει βάλει λόγο απόρριψης τότε μπορεί να απορρίψει την αίτηση.
χρηστης: [email protected] user12345678
admin: [email protected] foo