Browse Source

Merge branch 'feature/3-2-user-categories' into develop

develop
Apostolos Fanakis 3 years ago
parent
commit
a765481048
  1. 65
      chapters/3.application-design/3.2.user-categories.tex
  2. 6
      custom-commands/custom-spheading.tex
  3. 7
      misc/packages.tex
  4. BIN
      thesis.pdf

65
chapters/3.application-design/3.2.user-categories.tex

@ -1,50 +1,51 @@
\section{Κατηγορίες χρηστών} \label{section:3-2-user-categories} \section{Κατηγορίες χρηστών} \label{section:3-2-user-categories}
Κατηγορίες: Οι χρήστες της πλατφόρμας χωρίζονται σε πρωτεύοντες ή ενεργούς και δευτερεύοντες ή παθητικούς. Πρωτεύοντες χρήστες είναι εκείνοι που εκκινούν διεργασίες στο σύστημα. Δευτερεύοντες είναι οι χρήστες με τους οποίους αλληλεπιδρά το σύστημα αλλά οι ίδιοι δεν εκκινούν διεργασίες σε αυτό. Συνολικά οι χρήστες που συμμετέχουν στο σύστημα είναι οι:
1. Επισκέπτες
2. Εγγεγραμμένοι χρήστες
3. Δημιουργοί κοινοτήτων ?
\subsection{Πρώτο μέρος} \label{subsection:4-4-first-part}
Όπως προειπώθηκε, το πρώτο μέρος της πλατφόρμας θα είναι ανοιχτό σε όλους. Ωστόσο, οι χρήστες του μπορούν να διακριθούν
στις εξής δύο κατηγορίες:
\begin{itemize} \begin{itemize}
\item Έμπιστα μέλη του δικτύου (trusted users) \item Επισκέπτες
\item Μη έμπιστα μέλη (untrusted users) \item Εγγεγραμμένα μέλη
\item Δημιουργοί κοινοτήτων
\item Συμβόλαιο υποκοινότητας
\end{itemize} \end{itemize}
Βασική διαφορά των δύο κατηγοριών είναι πως ενώ οι trusted users θα αποζημιώνονται αυτόματα από το (ενν. φορτισμένο) \subsection{Ενεργοί χρήστες}
smart contract και άρα θα είναι απαλλαγμένοι από τέλη, οι δεύτεροι θα πρέπει να καταβάλουν μόνοι τους τα τέλη τους
(fees) για κάθε ενέργεια (π.χ. posting).
Η εμπιστοσύνη ενός χρήστη (trust) μπορεί να οριστεί ως ένας ακέραιος αριθμός με κάποιο κατώφλι, πάνω από το οποίο ο Οι ενεργοί χρήστες στο σύστημα είναι οι επισκέπτες, τα εγγεγραμμένα μέλη και οι δημιουργοί κοινοτήτων.
χρήστης θα θεωρείται trusted. Το trust θα μπορεί να αυξομειώνεται ανά πάσα στιγμή, με τους χρήστες να δίνουν και να
παίρνουν βαθμούς trust σε/από άλλους.
Αξίζει να σημειωθεί επίσης ότι επειδή όλες οι συναλλαγές καταγράφονται, είναι δυνατό να υπολογιστεί το συνολικό ποσό του Όλοι οι χρήστες στο σύστημα είναι αρχικά επισκέπτες. Οι επισκέπτες έχουν τη δυνατότητα να βλέπουν το περιεχόμενο της κοινότητας αλλά δεν μπορούν να συμμετέχουν δημιουργώντας νέο περιεχόμενο (δημοσιεύοντας νέα θέματα ή μηνύματα). Επίσης, δεν μπορούν να συμμετέχουν στις ψηφοφορίες της κοινότητας ή να ψηφίσουν τα μηνύματα.
Ethereum που έχει ξοδέψει ένας common user μέχρι να γίνει trusted και έτσι μπορεί σταδιακά να του επιστραφεί μέσω του
contract. Αυτό δίνει κίνητρο στους χρήστες να διατηρούν σωστή συμπεριφορά και να συμβάλλουν θετικά στην πλατφόρμα.
\subsection{Δεύτερο μέρος} Όταν ένας επισκέπτης εγγράφεται στο σύστημα, αποκτά έναν μοναδικό, αύξων αριθμό χρήστη και αποτελεί πλέον εγγεγραμμένο μέλος της κοινότητας. Τα εγγεγραμμένα μέλη έχουν τα δικαιώματα των επισκεπτών και μπορούν επιπλέον να προσθέσουν περιεχόμενο στην πλατφόρμα μέσω της δημιουργίας νέων θεμάτων, της δημοσίευσης μηνυμάτων και της ψήφισης στις ψηφοφορίες στις οποίες έχουν δικαίωμα.
Για το δεύτερο μέρος της πλατφόρμας, οι χρήστες του μπορούν να διακριθούν στις εξής κατηγορίες: Οι δημιουργοί κοινοτήτων είναι οι χρήστες οι οποίοι χρησιμοποιούν την δυνατότητα του συστήματος να δημιουργήσει υποκοινότητες τα μέλη των οποίων διαφοροποιούνται με βάση ένα token. Το token που ορίζει τα μέλη μίας κοινότητας προέρχεται από ένα έξυπνο συμβόλαιο το οποίο ορίζεται κατά τη δημιουργία της κοινότητας. Οι δημιουργοί κοινοτήτων πρέπει να είναι εγγεγραμμένα μέλη της κοινότητας. Ένας δημιουργός κοινότητας δεν έχει παραπάνω δικαιώματα από αυτά των απλών εγγεγραμμένων χρηστών.
\begin{itemize} \subsection{Παθητικοί χρήστες}
\item Πιστοποιημένα μέλη του Α.Π.Θ. (verified users)
\item Μη πιστοποιημένα μέλη του Α.Π.Θ. (untrusted users)
\end{itemize}
Σχετικά με το δικαίωμα ψήφου για αυθεντικές δημοκρατικές αποφάσεις σχετικές με το ΑΠΘ, αυτό θα το έχουν μόνο οι verified Παθητικοί χρήστες τους συστήματος είναι τα συμβόλαια των υποκοινοτήτων. Τα συμβόλαια αυτά δεν εκκινούν διεργασίες στο σύστημα και δεν αλληλεπιδρούν με αυτό άμεσα. Ωστόσο, μέσω της διάθεσης των token της υποκοινότητας στην οποία χρησιμοποιούνται ορίζουν τους χρήστες της υποκοινότητας αυτής. Συγκεκριμένα, μέσω του διαμοιρασμού των token καθορίζουν ποιοι χρήστες της πλατφόρμας έχουν δικαίωμα ψήφου στις ψηφοφορίες που αφορούν την υποκοινότητα.
χρήστες του δικτύου. Οι verified χρήστες θα μπορούν επιπλέον να αλληλεπιδρούν με την πλατφόρμα εξαρχής χωρίς την
καταβολή τελών (θα ξεκινάνε ως trusted), πράγμα βέβαια που δε σημαίνει ότι χάνοντας trust δε θα μπορούν να χάσουν αυτό
το προνόμιο.
\subsection{Σύνοψη χρηστών} \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] \begin{figure}[H]
\centering \centering

6
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[<degrees_rotation>][<width>]{<stuff>}

7
misc/packages.tex

@ -12,6 +12,7 @@
% --- Languages & Fonts --- % --- Languages & Fonts ---
\usepackage{polyglossia} \usepackage{polyglossia}
\input{misc/polyglossia-setup} \input{misc/polyglossia-setup}
\usepackage{fontawesome5}
% --- Styling --- % --- Styling ---
\usepackage{hyperref} % Extensive support for hypertext \usepackage{hyperref} % Extensive support for hypertext
@ -23,10 +24,13 @@
\usepackage [autostyle]{csquotes} \usepackage [autostyle]{csquotes}
\usepackage{listings} %TODO: unused atm (remove?) \usepackage{listings} %TODO: unused atm (remove?)
\usepackage{tabularx} % Support for break lines inside table cells \usepackage{tabularx} % Support for break lines inside table cells
\usepackage{booktabs} % Useful table styling commands \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{minted} % Source code highlighting (make sure to add -shell-escape flag!)
\usepackage{tcolorbox} % Colored boxes \usepackage{tcolorbox} % Colored boxes
\tcbuselibrary{minted} % Make tcolorbox work with minted \tcbuselibrary{minted} % Make tcolorbox work with minted
\usepackage{graphicx}
% --- TikZ and UML diagrams % --- TikZ and UML diagrams
\usepackage{pgf-umlsd} \usepackage{pgf-umlsd}
@ -41,6 +45,7 @@
\input{custom-commands/custom-enumitem} \input{custom-commands/custom-enumitem}
\input{custom-commands/srs-commands} \input{custom-commands/srs-commands}
\input{custom-commands/use-case-commands} \input{custom-commands/use-case-commands}
\input{custom-commands/custom-spheading}
% --- Custom styles --- % --- Custom styles ---
\renewcommand{\arraystretch}{1.2} % Streches the table row height so text is not crammed between the lines \renewcommand{\arraystretch}{1.2} % Streches the table row height so text is not crammed between the lines

BIN
thesis.pdf

Binary file not shown.
Loading…
Cancel
Save