diff --git a/chapters/3.application-design/3.2.user-categories.tex b/chapters/3.application-design/3.2.user-categories.tex index ac42f8b..71fdb5d 100644 --- a/chapters/3.application-design/3.2.user-categories.tex +++ b/chapters/3.application-design/3.2.user-categories.tex @@ -1,50 +1,51 @@ \section{Κατηγορίες χρηστών} \label{section:3-2-user-categories} -Κατηγορίες: -1. Επισκέπτες -2. Εγγεγραμμένοι χρήστες -3. Δημιουργοί κοινοτήτων ? - -\subsection{Πρώτο μέρος} \label{subsection:4-4-first-part} - -Όπως προειπώθηκε, το πρώτο μέρος της πλατφόρμας θα είναι ανοιχτό σε όλους. Ωστόσο, οι χρήστες του μπορούν να διακριθούν -στις εξής δύο κατηγορίες: +Οι χρήστες της πλατφόρμας χωρίζονται σε πρωτεύοντες ή ενεργούς και δευτερεύοντες ή παθητικούς. Πρωτεύοντες χρήστες είναι εκείνοι που εκκινούν διεργασίες στο σύστημα. Δευτερεύοντες είναι οι χρήστες με τους οποίους αλληλεπιδρά το σύστημα αλλά οι ίδιοι δεν εκκινούν διεργασίες σε αυτό. Συνολικά οι χρήστες που συμμετέχουν στο σύστημα είναι οι: \begin{itemize} - \item Έμπιστα μέλη του δικτύου (trusted users) - \item Μη έμπιστα μέλη (untrusted users) + \item Επισκέπτες + \item Εγγεγραμμένα μέλη + \item Δημιουργοί κοινοτήτων + \item Συμβόλαιο υποκοινότητας \end{itemize} -Βασική διαφορά των δύο κατηγοριών είναι πως ενώ οι trusted users θα αποζημιώνονται αυτόματα από το (ενν. φορτισμένο) -smart contract και άρα θα είναι απαλλαγμένοι από τέλη, οι δεύτεροι θα πρέπει να καταβάλουν μόνοι τους τα τέλη τους -(fees) για κάθε ενέργεια (π.χ. posting). +\subsection{Ενεργοί χρήστες} -Η εμπιστοσύνη ενός χρήστη (trust) μπορεί να οριστεί ως ένας ακέραιος αριθμός με κάποιο κατώφλι, πάνω από το οποίο ο -χρήστης θα θεωρείται trusted. Το trust θα μπορεί να αυξομειώνεται ανά πάσα στιγμή, με τους χρήστες να δίνουν και να -παίρνουν βαθμούς trust σε/από άλλους. +Οι ενεργοί χρήστες στο σύστημα είναι οι επισκέπτες, τα εγγεγραμμένα μέλη και οι δημιουργοί κοινοτήτων. -Αξίζει να σημειωθεί επίσης ότι επειδή όλες οι συναλλαγές καταγράφονται, είναι δυνατό να υπολογιστεί το συνολικό ποσό του -Ethereum που έχει ξοδέψει ένας common user μέχρι να γίνει trusted και έτσι μπορεί σταδιακά να του επιστραφεί μέσω του -contract. Αυτό δίνει κίνητρο στους χρήστες να διατηρούν σωστή συμπεριφορά και να συμβάλλουν θετικά στην πλατφόρμα. +Όλοι οι χρήστες στο σύστημα είναι αρχικά επισκέπτες. Οι επισκέπτες έχουν τη δυνατότητα να βλέπουν το περιεχόμενο της κοινότητας αλλά δεν μπορούν να συμμετέχουν δημιουργώντας νέο περιεχόμενο (δημοσιεύοντας νέα θέματα ή μηνύματα). Επίσης, δεν μπορούν να συμμετέχουν στις ψηφοφορίες της κοινότητας ή να ψηφίσουν τα μηνύματα. -\subsection{Δεύτερο μέρος} +Όταν ένας επισκέπτης εγγράφεται στο σύστημα, αποκτά έναν μοναδικό, αύξων αριθμό χρήστη και αποτελεί πλέον εγγεγραμμένο μέλος της κοινότητας. Τα εγγεγραμμένα μέλη έχουν τα δικαιώματα των επισκεπτών και μπορούν επιπλέον να προσθέσουν περιεχόμενο στην πλατφόρμα μέσω της δημιουργίας νέων θεμάτων, της δημοσίευσης μηνυμάτων και της ψήφισης στις ψηφοφορίες στις οποίες έχουν δικαίωμα. -Για το δεύτερο μέρος της πλατφόρμας, οι χρήστες του μπορούν να διακριθούν στις εξής κατηγορίες: +Οι δημιουργοί κοινοτήτων είναι οι χρήστες οι οποίοι χρησιμοποιούν την δυνατότητα του συστήματος να δημιουργήσει υποκοινότητες τα μέλη των οποίων διαφοροποιούνται με βάση ένα token. Το token που ορίζει τα μέλη μίας κοινότητας προέρχεται από ένα έξυπνο συμβόλαιο το οποίο ορίζεται κατά τη δημιουργία της κοινότητας. Οι δημιουργοί κοινοτήτων πρέπει να είναι εγγεγραμμένα μέλη της κοινότητας. Ένας δημιουργός κοινότητας δεν έχει παραπάνω δικαιώματα από αυτά των απλών εγγεγραμμένων χρηστών. -\begin{itemize} - \item Πιστοποιημένα μέλη του Α.Π.Θ. (verified users) - \item Μη πιστοποιημένα μέλη του Α.Π.Θ. (untrusted users) -\end{itemize} +\subsection{Παθητικοί χρήστες} -Σχετικά με το δικαίωμα ψήφου για αυθεντικές δημοκρατικές αποφάσεις σχετικές με το ΑΠΘ, αυτό θα το έχουν μόνο οι verified -χρήστες του δικτύου. Οι verified χρήστες θα μπορούν επιπλέον να αλληλεπιδρούν με την πλατφόρμα εξαρχής χωρίς την -καταβολή τελών (θα ξεκινάνε ως trusted), πράγμα βέβαια που δε σημαίνει ότι χάνοντας trust δε θα μπορούν να χάσουν αυτό -το προνόμιο. +Παθητικοί χρήστες τους συστήματος είναι τα συμβόλαια των υποκοινοτήτων. Τα συμβόλαια αυτά δεν εκκινούν διεργασίες στο σύστημα και δεν αλληλεπιδρούν με αυτό άμεσα. Ωστόσο, μέσω της διάθεσης των token της υποκοινότητας στην οποία χρησιμοποιούνται ορίζουν τους χρήστες της υποκοινότητας αυτής. Συγκεκριμένα, μέσω του διαμοιρασμού των token καθορίζουν ποιοι χρήστες της πλατφόρμας έχουν δικαίωμα ψήφου στις ψηφοφορίες που αφορούν την υποκοινότητα. \subsection{Σύνοψη χρηστών} -Συμπερασματικά προκύπτουν τέσσερις διακριτές κατηγορίες χρηστών με ξεχωριστά δικαιώματα όπως φαίνεται στο παρακάτω -σχήμα (σχήμα \ref{figure:3-2-use-categories-diagram}): +Συμπερασματικά προκύπτουν τρεις διακριτές κατηγορίες ενεργών χρηστών με ξεχωριστά δικαιώματα όπως φαίνεται στο παρακάτω σχήμα (σχήμα \ref{figure:3-2-use-categories-diagram}): + +\begin{threeparttable}[H] + \begin{center} + \begin{tabularx}{\textwidth}{p{2.3cm} X X X X X X X X X} + \toprule + \multirow{7}{2.3cm}{Κατηγορία χρήστη} &\multicolumn{9}{c}{Δικαιώματα} \\ [0.5ex] + & \spheading{70}{6em}{Προβολή θεμάτων} & \spheading{70}{8em}{Προβολή μηνυμάτων} & \spheading{70}{8em}{Προβολή ψηφοφοριών} & \spheading{70}{8em}{Προβολή ψήφων μηνυμάτων} & \spheading{70}{8em}{Δημιουργία θεμάτων} & \spheading{70}{8em}{Δημιουργία μηνυμάτων} & \spheading{70}{8em}{Δημιουργία ψηφοφοριών} & \spheading{70}{8em}{Ψήφιση σε ψηφοφορίες} & \spheading{70}{8em}{Ψήφιση μηνυμάτων} \\ [0.5ex] + \midrule + Επισκέπτες & \textcolor{OliveGreen}{\faIcon{check}} & \textcolor{OliveGreen}{\faIcon{check}} & \textcolor{OliveGreen}{\faIcon{check}} & \textcolor{OliveGreen}{\faIcon{check}} & \textcolor{red}{\faIcon{times}} & \textcolor{red}{\faIcon{times}} & \textcolor{red}{\faIcon{times}} & \textcolor{red}{\faIcon{times}} & \textcolor{red}{\faIcon{times}} \\ [0.5ex] + Εγγεγραμμένα μέλη & \textcolor{OliveGreen}{\faIcon{check}} & \textcolor{OliveGreen}{\faIcon{check}} & \textcolor{OliveGreen}{\faIcon{check}} & \textcolor{OliveGreen}{\faIcon{check}} & \textcolor{OliveGreen}{\faIcon{check}} & \textcolor{OliveGreen}{\faIcon{check}} & \textcolor{OliveGreen}{\faIcon{check}}\tnote{1} & \textcolor{OliveGreen}{\faIcon{check}}\tnote{1} & \textcolor{OliveGreen}{\faIcon{check}} \\ [0.5ex] + Δημιουργοί κοινοτήτων & \textcolor{OliveGreen}{\faIcon{check}} & \textcolor{OliveGreen}{\faIcon{check}} & \textcolor{OliveGreen}{\faIcon{check}} & \textcolor{OliveGreen}{\faIcon{check}} & \textcolor{OliveGreen}{\faIcon{check}} & \textcolor{OliveGreen}{\faIcon{check}} & \textcolor{OliveGreen}{\faIcon{check}}\tnote{1} & \textcolor{OliveGreen}{\faIcon{check}}\tnote{1} & \textcolor{OliveGreen}{\faIcon{check}} \\ [0.5ex] + \bottomrule + \end{tabularx} + \begin{tablenotes} + \item[1] \footnotesize{Μόνο στις υποκοινότητες στις οποίες κατέχει το αντίστοιχο token και σε αυτές οι οποίες δεν έχουν ορισμένο token.} + \end{tablenotes} + \end{center} + \caption{Δικαιώματα χρήσης ανά κατηγορία χρήστη.} + \label{table:3-2-user-category-permissions} +\end{threeparttable} \begin{figure}[H] \centering diff --git a/custom-commands/custom-spheading.tex b/custom-commands/custom-spheading.tex new file mode 100644 index 0000000..d93cef4 --- /dev/null +++ b/custom-commands/custom-spheading.tex @@ -0,0 +1,6 @@ +% Command taken from this stackexchange answer +% https://tex.stackexchange.com/a/96913 +\newcommand{\spheading}[3]{\rotatebox{#1}{\parbox{#2}{\raggedright #3}}} + +% Usage: +% \spheading[][]{} \ No newline at end of file diff --git a/misc/packages.tex b/misc/packages.tex index 9287272..f00d710 100644 --- a/misc/packages.tex +++ b/misc/packages.tex @@ -12,6 +12,7 @@ % --- Languages & Fonts --- \usepackage{polyglossia} \input{misc/polyglossia-setup} +\usepackage{fontawesome5} % --- Styling --- \usepackage{hyperref} % Extensive support for hypertext @@ -23,10 +24,13 @@ \usepackage [autostyle]{csquotes} \usepackage{listings} %TODO: unused atm (remove?) \usepackage{tabularx} % Support for break lines inside table cells -\usepackage{booktabs} % Useful table styling commands -\usepackage{minted} % Source code highlighting (make sure to add -shell-escape flag!) -\usepackage{tcolorbox} % Colored boxes -\tcbuselibrary{minted} % Make tcolorbox work with minted +\usepackage{multirow, booktabs} % Useful table styling commands +\usepackage[flushleft]{threeparttable} % Table footnotes +\usepackage[dvipsnames]{xcolor} % Text colors +\usepackage{minted} % Source code highlighting (make sure to add -shell-escape flag!) +\usepackage{tcolorbox} % Colored boxes +\tcbuselibrary{minted} % Make tcolorbox work with minted +\usepackage{graphicx} % --- TikZ and UML diagrams \usepackage{pgf-umlsd} @@ -41,6 +45,7 @@ \input{custom-commands/custom-enumitem} \input{custom-commands/srs-commands} \input{custom-commands/use-case-commands} +\input{custom-commands/custom-spheading} % --- Custom styles --- \renewcommand{\arraystretch}{1.2} % Streches the table row height so text is not crammed between the lines diff --git a/thesis.pdf b/thesis.pdf index 6098888..5f0c739 100644 Binary files a/thesis.pdf and b/thesis.pdf differ