Added externalCourseID attribute.
[kic.git] / enrolment_status.tex
blob8eb3d72df051c83bc139624a029d7b0cfa79cf5f
1 \documentclass[12pt,a4paper]{article}
2 \usepackage[nolists,nomarkers]{endfloat}
3 %\usepackage[english]{babel}
4 \usepackage{textcomp}
5 \usepackage[utf8x]{inputenc}
6 \usepackage[T1]{fontenc}
7 \usepackage{color}
8 \usepackage{graphicx}
9 \usepackage{chngpage}
10 \usepackage{ifthen}
11 \usepackage{gitinfo}
12 %\enabledraftstandard
13 \usepackage[firstpage]{draftwatermark}
14 \usepackage[hidelinks]{hyperref}
15 \usepackage{url}
16 \usepackage{breakurl}
17 \usepackage{xcolor,soul,lipsum}
18 \usepackage{lineno}
19 %\usepackage{adjustbox}
20 %\usepackage{fancyvrb}
21 %\usepackage{verbatim}
22 \usepackage{rotating}
23 \usepackage{listings}
25 \newcommand{\myul}[1]{\ul{#1}}
27 %\SetWatermarkText{ENTWURF}
28 \SetWatermarkText{DRAFT}
29 \SetWatermarkScale{4}
30 \SetWatermarkAngle{50}
31 \SetWatermarkLightness{0.90}
33 \sloppy
34 %\hoffset-3mm
35 \parindent0mm
37 \newcommand{\da}{DA}
38 \newcommand{\sa}{SA}
39 \newcommand{\ecs}{ECS}
40 \newcommand{\ilias}{ILIAS}
41 \newcommand{\cces}{\texttt{cc/enrolment\_status\ }}
42 \newcommand{\button}[1]{\fbox{\texttt{#1}}}
43 \newcommand{\jsToAppletComUrlA}{\mbox{http://stackoverflow.com/questions/7278626/javascript-to-java-applet-communication}}
44 \newcommand{\jsToAppletComUrlB}{\mbox{http://docs.oracle.com/javase/tutorial/deployment/applet/invokingAppletMethodsFromJavaScript.html}}
45 \newcommand{\appletToDom}{\mbox{http://docs.oracle.com/javase/tutorial/deployment/applet/manipulatingDOMFromApplet.html}}
47 \lstset{basicstyle=\ttfamily}
48 \newcommand{\includecode}[1]{\lstinputlisting[numbers=left, numberstyle=\tiny, stepnumber=1, numbersep=5pt, breaklines, breakatwhitespace, linewidth=1.1\textheight, xleftmargin=1cm]{#1}}
50 \begin{document}
51 \linenumbers
52 \title{Mahara/Moodle enrolment status}
53 \author{David Boehringer\\Universit\"at Stuttgart \and Heiko Bernl\"ohr\\FreeIT.de}
54 \maketitle
55 \begin{center}
56 % Version: 2.0
57 Version: \gitVtag\\
58 % Commit-id: \gitAbbrevHash
59 \end{center}
60 \begin{abstract}
61 New ECS resource providing enrolment status for users subscribed/enroled to
62 external courses (via courselinks). The course providing participant (e.g.
63 Moodle) informs the courselink providing participant of the subscribed user
64 (e.g. Mahara) about every change of its enrolment status in the course.
65 \end{abstract}
67 %\vspace{\fill}
68 %\begin{center}
69 %\includegraphics[scale=1.0]{vip_lms}
70 %\end{center}
71 %\vspace{\fill}
73 \newpage
75 \section{Enrolment status}
77 The \cces resource describes an enrolment status of a
78 remotly subscribed user (via courselinks) to a course.
80 \subsection{Events}
82 Moodle has to send the user enrolment status to Mahara on these events:
83 \begin{itemize}
84 \item A user clicks on a courselink on Mahara for the first time and tries to
85 consume the linked course on Moodle (sequence diagram on
86 page \pageref{seq:initial_enrolment_status}).\\
87 \texttt{status $\rightarrow$ subscribed | pending | rejected}
88 \item A user subsequently clicks a courselink on Mahara and consumes an already
89 subscribed course on Moodle (see page \pageref{seq:subsequent_enrolment_status}).
90 This guarantees to have a status even if Mahara just
91 forget/loose\footnote{We don't make the \cces resource persistent, so
92 loosing the status somehow on Mahara it will be refreshed after next
93 click on a courselink.} it somehow.\\
94 \texttt{no status change}
95 \item The user get unsubscribed on Moodle e.g. from the course admin.\\
96 \texttt{status $\rightarrow$ expelled}
97 \end{itemize}
99 \subsection{Redirect querystring parameters\label{subsec:redirect_querystring_parameters}}
101 Our present specification of redirecting a user is defined in
102 \cite{specRedirectProcedure} and the procedure how to compute the redirect hash
103 (for securing the redirect parameters) in \cite{specHashCumputing}. As
104 described in the document \cite{specBoehMaharaMoodle} Moodle has to provide an
105 interface to define for each participant and its community participation what
106 personal data should be appended as query strings. Of course to allow this we
107 have to enhance our specs in \cite{specRedirectProcedure} and
108 \cite{specHashCumputing}. This still needs to be done.
110 \begin{figure}[p]
111 \includegraphics[scale=0.8]{enrolment_status_seq}
112 \caption{\label{seq:initial_enrolment_status}Sending enrolment status
113 after initially consuming a courselink. For the \textit{params} in the
114 \textit{redirect} of the \textit{consume courselink} block see subsection
115 \ref{subsec:redirect_querystring_parameters} at page
116 \pageref{subsec:redirect_querystring_parameters}.}
117 \end{figure}
119 \begin{figure}[p]
120 \includegraphics[scale=0.8]{subsequent_enrolment_status_seq}
121 \caption{\label{seq:subsequent_enrolment_status}Sending enrolment status
122 after subsequently consuming a courselink. The \textit{consume courselink} block is the same as in figure \ref{seq:initial_enrolment_status} on page \pageref{seq:initial_enrolment_status}.}
123 \end{figure}
125 \subsection{Resource attributes}
127 For the json schema of \cces see page \pageref{schema:enrolment_status}.
128 Following description write on \cces resource attributes for which a user
129 status has changed or asked for:
130 \begin{description}
131 \item[courseURL] It's the course url. It's also used as a unique id.
132 \item[personID] Unique id of the user.
133 \item[personIDtype] Class/type of \texttt{personID}. It's a controlled
134 vocabulary / enumeration (see page \pageref{schema:enrolment_status} for
135 possible values).
136 \item[status] Status of the user's course subscription. It's a controlled
137 vocabulary / enumeration (see page \pageref{schema:enrolment_status} for
138 possible values).
139 \end{description}
141 \begin{sidewaysfigure}[p]
142 \includecode{cc_enrolment_status.schema.json}
143 \caption{JSON-Schema definition of enrolment\_status resource}
144 \label{schema:enrolment_status}
145 \end{sidewaysfigure}
147 \begin{thebibliography}{99}
148 \bibitem{specRedirectProcedure} \url{http://freeit.de/documents/ecsa/index.html#_redirect_procedure_protocol_when_consuming_courselinks}
149 \bibitem{specHashCumputing} \url{http://freeit.de/documents/ecsa/index.html#_courselinks}
150 \bibitem{specBoehMaharaMoodle} David Boehringer. \textit{Mahara and Moodle Specification Version 03}
151 \end{thebibliography}
153 \end{document}