diff options
author | Camil Staps | 2015-04-18 13:44:44 +0200 |
---|---|---|
committer | Camil Staps | 2015-04-18 13:44:44 +0200 |
commit | 6a44b074f0169a1b0f9e92347af929c5e471746e (patch) | |
tree | ae5663fe7c69881bf4ecfedbef99c2505f8ec964 /Week9 Webshop/docs | |
parent | Added copyright to docs (diff) |
Reorganised projects
Diffstat (limited to 'Week9 Webshop/docs')
-rw-r--r-- | Week9 Webshop/docs/Makefile | 7 | ||||
-rw-r--r-- | Week9 Webshop/docs/png/Activity_diagram_adding_article_to_cart.png | bin | 0 -> 119492 bytes | |||
-rw-r--r-- | Week9 Webshop/docs/png/Sequence_diagram_adding_article_to_cart.png | bin | 0 -> 173558 bytes | |||
-rw-r--r-- | Week9 Webshop/docs/png/com.camilstaps.shop.png | bin | 0 -> 585627 bytes | |||
-rw-r--r-- | Week9 Webshop/docs/solution.tex | 126 |
5 files changed, 133 insertions, 0 deletions
diff --git a/Week9 Webshop/docs/Makefile b/Week9 Webshop/docs/Makefile new file mode 100644 index 0000000..bd1f10f --- /dev/null +++ b/Week9 Webshop/docs/Makefile @@ -0,0 +1,7 @@ +all: tex view + +tex: + pdflatex solution.tex + +view: + gnome-open solution.pdf
\ No newline at end of file diff --git a/Week9 Webshop/docs/png/Activity_diagram_adding_article_to_cart.png b/Week9 Webshop/docs/png/Activity_diagram_adding_article_to_cart.png Binary files differnew file mode 100644 index 0000000..7e212f7 --- /dev/null +++ b/Week9 Webshop/docs/png/Activity_diagram_adding_article_to_cart.png diff --git a/Week9 Webshop/docs/png/Sequence_diagram_adding_article_to_cart.png b/Week9 Webshop/docs/png/Sequence_diagram_adding_article_to_cart.png Binary files differnew file mode 100644 index 0000000..db2e3a1 --- /dev/null +++ b/Week9 Webshop/docs/png/Sequence_diagram_adding_article_to_cart.png diff --git a/Week9 Webshop/docs/png/com.camilstaps.shop.png b/Week9 Webshop/docs/png/com.camilstaps.shop.png Binary files differnew file mode 100644 index 0000000..4b89905 --- /dev/null +++ b/Week9 Webshop/docs/png/com.camilstaps.shop.png diff --git a/Week9 Webshop/docs/solution.tex b/Week9 Webshop/docs/solution.tex new file mode 100644 index 0000000..6102aa1 --- /dev/null +++ b/Week9 Webshop/docs/solution.tex @@ -0,0 +1,126 @@ +% Copyright (c) 2015 Camil Staps <info@camilstaps.nl> +% See the LICENSE file for copying permission. + +\documentclass[a4paper,11pt]{article} + +\usepackage[margin=2cm,bottom=2.5cm]{geometry} +\usepackage[hidelinks]{hyperref} +\usepackage[dutch]{babel} +\usepackage[utf8]{inputenc} +\usepackage{graphicx} +\usepackage{fourier} +\usepackage{pdflscape} +\usepackage{textcomp} +\usepackage{fancyhdr} +\renewcommand{\headrulewidth}{0pt} +\fancypagestyle{plain}{% + \fancyhead[L,C,R]{}% + \fancyfoot[C]{Copyright {\textcopyright} 2015 Camil Staps}% + \fancyfoot[R]{\thepage}% +} +\pagestyle{plain} + +\author{Camil Staps} +\title{De RU-webwinkel} + +\begin{document} + +\maketitle + +\emph{Allereerst worden de vereenvoudigingen t.o.v. de originele opdracht besproken. Vervolgens zal een beknopte documentatie van de beschikbare commando's volgen. Ten slotten zal een klasse-, sequentie- en activiteitsdiagram worden gegeven.} + +\section*{Vereenvoudigingen} + +\subsection*{Geen webinterface} +In plaats van een webinterface schrijven we een Java-applicatie waarbij alle interactie op de command line plaatsvindt. +We gebruiken geen database backend maar een aantal bestanden die lokaal opgeslagen worden. + +\subsection*{Per onderdeel} + +\begin{description} +\item[Registreren] Een gebruiker registreert zich vanaf de command line. Het wachtwoord wat gegenereerd wordt, wordt niet naar het emailadres van de gebruiker verstuurd, maar naar \texttt{stdout} geschreven. Het wachtwoord zal niet beveiligd worden opgeslagen. +\item[Aanbieden van een product] Het zal niet mogelijk zijn voor een gebruiker om multimedia te \emph{uploaden}. Het zal wel mogelijk zijn om multimedia toe te voegen aan een product: hierbij geeft de gebruiker het pad naar het multimediabestand op. Producten zullen niet automatisch na 30 dagen verdwijnen. +\item[Zoeken van een product] Een gevolg van het werken op de command line is dat we geen multimedia grafisch kunnen weergeven. In plaats daarvan zullen we, als er multimedia aan een product is gekoppeld, het pad naar het bestand weergeven. Het zal slechts mogelijk zijn te zoeken op naam en beschrijving. Het zal niet mogelijk zijn deze zoekopdracht verder te verfijnen. +\item[Kopen van een product] We voeren geen vereenvoudigingen door op dit onderdeel. +\item[Afhandeling van de koop] Betalingen worden niet in het systeem verwerkt. In plaats daarvan gaat de gebruiker akkoord met het betalen, waarna hij verwacht wordt langs te komen om te betalen. Hierna zal de beheerder in het systeem kunnen aangeven dat een order is betaald. Er zullen geen extra kosten (als bezorgings- of administratiekosten) in rekening worden gebracht. De klant geeft verder geen afleveradres op. Hij wordt geacht langs te komen om het artikel op te halen. +\item[Controle op naleving van de regels] We zullen geen reglement gebruiken. De gebruiker hoeft bij registratie nergens mee in te stemmen, en er wordt dus ook niets vastgelegd. De beheerder zal nog wel gebruikers kunnen blokkeren. Hij wordt hierbij niet gebonden door een reglement, en mag dus iedereen naar believen blokkeren. +\item[Loggen] Er zullen geen transacties worden gelogd. Op het moment dat een gebruiker uitcheckt, en dus akkoord gaat met de betaling van de artikelen in de winkelwagen, wordt er wel een bestelling aan de database toegevoegd. +\item[Beheer] Het zal niet mogelijk zijn bestaande artikelen aan te passen. In plaats daarvan zal de beheerder ófwel de lokale bestanden die als database fungeren handmatig moeten aanpassen, of het artikel moeten verwijderen en een nieuw artikel in de plaats zetten. Het zal niet mogelijk zijn personen voor bepaalde tijd te blokkeren, waarbij ze automatisch worden gedeblokkeerd. Het zal wel mogelijk zijn personen handmatig te (de)blokkeren. De beheerder zal geen gebruikers kunnen toevoegen. Gebruikers worden geacht zich zelf te registreren. +\end{description} + +\section*{Interface} +Bij het opstarten van het programma wordt een Shell-achtige interface getoond. Een overzicht van de beschikbare commando's: + +\subsection*{Sessiebeheer} +\begin{description} +\item[login] Inloggen als gebruiker. +\item[logout] Uitloggen (inloggen vereist). +\item[exit] De Shell verlaten en de Database opslaan. +\end{description} + +\subsection*{Artikelen} +\begin{description} +\item[addArticle] Artikel toevoegen (inloggen vereist). +\item[setArticleDescription] De beschrijving van een artikel veranderen, dan wel toevoegen (inloggen vereist). +\item[setArticleMultimedia] Het multimedia bestand gelinkt aan een artikel veranderen, dan wel een multimedia bestand linken (inloggen vereist). +\item[removeArticle] Artikel verwijderen (inloggen vereist). +\item[listArticles] Overzicht van de artikelen in de database weergeven. +\item[searchArticle] Zoek een artikel met een regular expression op de naam en beschrijving. +\item[showArticle] Toon gedetailleerde informatie over een artikel. +\end{description} + +\subsection*{Categorieën} +\begin{description} +\item[addCategory] Categorie toevoegen (inloggen als administrator vereist). +\item[listCategories] Overzicht van de categorieën weergeven. +\end{description} + +\subsection*{Winkelwagen} +\begin{description} +\item[addToCart] Voeg een artikel toe aan de winkelwagen (inloggen vereist). +\item[listCart] Toon een overzicht van de winkelwagen (inloggen vereist). +\item[removeFromCart] Verwijder een artikel uit de winkelwagen (inloggen vereist). +\item[clearCart] Verwijder alle artikelen uit de winkelwagen (inloggen vereist). +\item[checkout] Ga door naar de kassa. +\end{description} + +\subsection*{Bestellingen} +\begin{description} +\item[listOrders] Toon een overzicht van de bestellingen (inloggen vereist). +\item[showOrder] Toon gedetailleerde informatie over een bestelling (inloggen vereist). +\item[setOrderPaid] Geef aan dat een bestelling betaald is (inloggen als administrator vereist). +\end{description} + +\subsection*{Gebruikers (zie ook Sessiebeheer bovenaan)} +\begin{description} +\item[register] Registreer een nieuwe gebruiker. De eerste gebruiker toegevoegd is altijd administrator. +\item[listUsers] Overzicht van de gebruikers weergeven. Administrators krijgen een geavanceerd overzicht, waarbij emailadressen worden weergegeven, `\texttt{++}' administrators aanduidt, en `\texttt{-!-}' geblokkeerde gebruikers aanduidt. +\item[blockUser] Blokkeer een gebruiker (inloggen als administrator vereist). +\item[unblockUser] Deblokkeer een gebruiker (inloggen als administrator vereist). +\end{description} + +\newgeometry{margin=1cm,bottom=2.2cm} +\begin{landscape} + +\begin{figure}[h] +\centering +\includegraphics[height=0.8\textheight,width=\textwidth,keepaspectratio]{{png/com.camilstaps.shop}.png} +\caption{Klassediagram -- getters, setters en triviale constructoren zijn weggelaten om het schema enigszins compact te houden. Tenzij anders aangegeven is het return-type \texttt{void}.} +\end{figure} + +\begin{figure}[h] +\centering +\includegraphics[height=0.95\textheight,width=\textwidth,keepaspectratio]{{png/Sequence_diagram_adding_article_to_cart}.png} +\caption{Sequentiediagram voor het toevoegen van een artikel aan de winkelwagen van een gebruiker die nog niet is ingelogd.} +\end{figure} + +\end{landscape} +\restoregeometry + +\begin{figure}[h] +\centering +\includegraphics{{png/Activity_diagram_adding_article_to_cart}.png} +\caption{Activiteitsdiagram voor het toevoegen van een artikel aan de winkelwagen van een gebruiker die nog niet is ingelogd.} +\end{figure} + +\end{document}
\ No newline at end of file |