21

tiNts Dokumentation

Embed Size (px)

DESCRIPTION

Dokumentation für das Ticketsystem tiNts

Citation preview

Page 1: tiNts Dokumentation

Autoren: Andre Lannert, Denis Hamann, Patrick MeyhöferDatum: 22.04.2010Version: 1.0Status: fertig zur Auslieferung

TiNts ist unter der EUPL lizenziert.Webseite: hp://sourceforge.net/projects/tints-system/

TiNts - Dokumentation

Page 2: tiNts Dokumentation

Dokumentation TiNts is not a ticket system

Inhaltsverzeichnis

Abbildungsverzeichnis III

1 Allgemeines 1

2 Installation 12.1 Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.2 Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.3 Logindaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22.4 VMWare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

3 Layout 33.1 User-Interface und deren Funktionen . . . . . . . . . . . . . . . . . . . . 3

3.1.1 Startoberfläche (index.php) . . . . . . . . . . . . . . . . . . . . . 33.1.2 Gastoberfläche . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43.1.3 Registrierter User-Oberfläche . . . . . . . . . . . . . . . . . . . . 73.1.4 Administratoroberfläche . . . . . . . . . . . . . . . . . . . . . . . 10

3.2 Drucklayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4 Datenbankschema 12

5 Besondere Lösungsansätze 135.1 Sicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135.2 Social Media Konzept . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145.3 Automatisierte Installation . . . . . . . . . . . . . . . . . . . . . . . . . . 14

6 Diagramme 156.1 Use-Case Diagramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156.2 Aktivitätsdiagramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

II

Page 3: tiNts Dokumentation

Dokumentation TiNts is not a ticket system

Abbildungsverzeichnis

1 Startseite - Aufteilung der Bereiche . . . . . . . . . . . . . . . . . . . . . 32 Suche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Tickets im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Ticket anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 AddThis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Link zum Registrierungsformular . . . . . . . . . . . . . . . . . . . . . . 67 Registrierungsoberfläche . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Übersichtsmenü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Neues Ticket erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 810 Kommentare hinzufügen . . . . . . . . . . . . . . . . . . . . . . . . . . . 811 Profilansicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 912 Adminfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013 User anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1114 Verwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1115 Entity-Relationship-Modell . . . . . . . . . . . . . . . . . . . . . . . . . . 1216 Use Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1517 Registriervorgang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1618 Ticket anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1719 Setup.php ausführen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

III

Page 4: tiNts Dokumentation

Dokumentation TiNts is not a ticket system

1 Allgemeines

TiNts 1 ist ein Open source Ticket System mit vielen Funktionen, um fehlerhafte Funk-tionen in Programmen und Projekten zu verwalten. Das System ist gebaut, um denAnwendern schnelle Unterstützung zu ermöglichen und für Programmierer schnell aufeingehende Anfragen reagieren zu können.Mit TiNts wird sichergestellt, dass keine Nachricht verloren geht und ein Gesamtüber-blick über die zu bearbeitenden Vorgänge jederzeit möglich ist. Es wird unter derEuropean Public Licence (EUPL)2 verteilt.

2 Installation

2.1 Anforderungen

TiNts wurde erfolgreich unter folgenden Systembedingungen getestet:

• PHP Version 5.2

• MySQL Datenbankserver Version 5.1

• Lighttpd Webserver 1.4

• Mozilla Firefox 3.5 und höhere Versionen; IE ab Version 8; Chrome ab Version 5.0,Opera ab 10.5

• Bildschirmauflösung von

– 1280*800

– 1024*768

2.2 Setup

Zum Installieren von TiNts können Sie die setup.php nutzen, die sich im Projektver-zeichnis befindet. Notwendig hierbei ist die config.php in der Sie die notwendigenParameter, wie Datenbankname, Host, Datenbankuser- und Passwort, sowie weitereParameter angeben können (betreiben Sie TiNts auf einem Webserver erhalten Sie dieDaten entweder von Ihrem Administrator bei einem lokalen Netzwerk, bei öffentlichenAnbietern bei den Providern). Die Datei config.php finden Sie im Projektverzeichnis imOrdner config. Nachdem Sie die notwendigen Parameter korrekt gesetzt haben können

1Rekursives Akronym: Tints is no ticket system2http://ec.europa.eu/idabc/servlets/Doc?id=31977

1

Page 5: tiNts Dokumentation

Dokumentation TiNts is not a ticket system

Sie die setup.php in ihrem Browser ansteuern. Sie erhalten eine Rückmeldung ob dieInstallation erfolgreich war, oder ob Fehler aufgetreten sind.Neben der Möglichkeit der Neuinstallation ist es ebenfalls möglich eine bestehendeDatenbank über die setup.php zurückzusetzen. Voraussetzung hierfür ist, dass Sie alsAdministrator eingeloggt sind.Zum Zurücksetzen der Datenbank rufen Sie die setup.php nach folgendem Muster auf:

setup.php?reset=true

Diese Methode können Sie insbesondere dann einsetzen, wenn die Oberfläche nichtmehr erreichbar ist. Das Zurücksetzen der Datenbank kann auch über das Adminpanelerreicht werden. Wenn man als Administrator eingeloggt ist, finden Sie das Adminpanelauf der linken Seite, in der die Anmeldemaske gewesen ist. Die Abfrage ob Sie dieDatenbank wirklich in den Ursprungszustand initialisieren wollen müssen sie dann mitJa beantwortet. Sollten Sie Javascript ausgeschaltet haben, was nicht die Empfeh-lung der Autoren ist, wird die Datenbank sofort bei Bestätigung des Buttons in denAusgangszustand initialisiert.

2.3 Logindaten

Zum Betrieb von TiNts benötigen Sie einige Logindaten für die verschiedenen Benut-zeraccounts. Diese finden sie in den nachfolgenden Abschnitten.

Umgebung Benutzername Passwort

Virtuelle Maschine web start123

WebinterfaceAdmin

admin admin

WebinterfaceNormaler User

user user

Datenbank web web

Tabelle 1: Logindaten für TiNts

2.4 VMWare

Alle benötigten Dateien sind auf der mitgelieferten DVD in einem VMWare-Imageenthalten. Wenn die VM über einen geeigneten VMWare-Player gestartet ist, wirdautomatisch der Login-Bereich für das Betriebssystem Ubuntu 9.10 starten. Hier geben

2

Page 6: tiNts Dokumentation

Dokumentation TiNts is not a ticket system

Sie die Daten aus dem Kapitel Login ein. Nachdem Sie am System angemeldet sindstartet automatisch das bereits komplett eingerichtete Webprojekt im Mozilla Firefox.Alle benötigten Dateien finden Sie im Verzeichnis /var/www/tints .

3 Layout

3.1 User-Interface und deren Funktionen

Im folgenden Kapitel werden die elementaren Funktionen des Ticketsystems TiNts erläutert.Dabei werden Punkte wie Registrierung oder Ticketverwaltung anhand verschiedenerScreenshots illustriert bzw. werden die verschiedenen Benutzer-Sichten wie Gast, Nor-maluser und Administrator vorgestellt.

3.1.1 Startoberfläche (index.php)

Abbildung 1: Startseite - Aufteilung der Bereiche

Die TiNts -Startseite besitzt ein klassisches Boxlayout. Der Header besteht aus demTiNts -Logo, dem Banner und der Navigationsleiste, welche zu den wichtigen Funk-

3

Page 7: tiNts Dokumentation

Dokumentation TiNts is not a ticket system

tionen des Systems führt. Im Content-Bereich werden je nach Situation verschiedeneTabellen, Profilinformationen, etc. angezeigt. Im linken Bereich der Seite befindet sichdie Login-Box. Hier sind Funktionen wie Anmeldung, Registrierung, Passwortwiederher-stellung und AddThis-Funktionen untergebracht.

3.1.2 Gastoberfläche

Ein Gast genießt auch ohne Registrierung verschiedene Funktionen. So kann er z.B.mit dem Übersichts-Button der Nav-Leiste eine Zusammenfassung der bisher erstelltenTickets ansehen, oder durch Eingabe eines Suchbegriffes in der Navigation

Abbildung 2: Suche

die Ticketauswahl einschränken.

Abbildung 3: Tickets im Überblick

Hier werden Informationen wie Ticket-Nr., Projekttitel, Betreff, Status und Verfasserangezeigt. Durch den Klick auf den Betreff eines Tickets wird dieses aufgerufen.

4

Page 8: tiNts Dokumentation

Dokumentation TiNts is not a ticket system

Abbildung 4: Ticket anzeigen

5

Page 9: tiNts Dokumentation

Dokumentation TiNts is not a ticket system

Der Gast/Nutzer kann sich nun alle relevanten Informationen des Tickets betrachten,jedoch nichts kommentieren. Ein weiteres Feature, welches der Gast benutzen kann

ist einen sogenannten RSS- Feed zu abonnieren welcher über den Button in derNavigationsleiste des Browsers aufgerufen wird. Außerdem kann er über die Login-Boxmit der Funktion „AddThis“ die Seite TiNts weiterempfehlen.

Abbildung 5: AddThis

Dort stehen unter anderem die obigen Social-Networks etc. zur Verfügung. Um denweiteren Funktionsumfang der Seite genießen zu können, muss sich der Gast zuerstregistrieren.

Abbildung 6: Link zum Registrierungsformular

6

Page 10: tiNts Dokumentation

Dokumentation TiNts is not a ticket system

Im darauf folgenden Formular werden die Information bezüglich der Registrierungabgefragt (Benutzername, Passwort und Email-Adresse).

Abbildung 7: Registrierungsoberfläche

Nach dem Bestätigen der Daten mit Klick auf „Registrieren“, wird ein Email an die obenangegebene Email-Adresse mit Aktivierungslink versendet, mit der der Gast sein Kontoaktivieren kann. Ist der Account aktiviert, kann sich der Benutzer anmelden, indem erseine Login-Daten in die Login-Box einträgt und mit „Anmelden“ bestätigt.

3.1.3 Registrierter User-Oberfläche

Folgende Funktionen stehen dem User nun zur Verfügung:

1.) Ticket erstellenMöchte der User ein Ticket zu einem bestehenden Projekt verfassen, kann er diesüber den Button „Neues Ticket“ (Nav-Leiste) oder durch Klick auf den linken Button derÜbersichts-Ansicht tun.

Abbildung 8: Übersichtsmenü

7

Page 11: tiNts Dokumentation

Dokumentation TiNts is not a ticket system

In beiden Fällen öffnet sich folgender Dialog:

Abbildung 9: Neues Ticket erstellen

Um ein Ticket zu erstellen sollten alle Informationen diesbezüglich im obigen Fensterausgefüllt und mit „Erstellen“ bestätigt werden. Daraufhin wird der Nutzer zur Ticket-übersicht (siehe Gast- Funktionen) weitergeleitet, wo er sein Ticket wiederfinden kann.

2.) Kommentare verfassenJetzt kann der Nutzer zu seinem oder zu Tickets anderer User Kommentare erstellen.Als erstes muss ein bestehendes Ticket geöffnet werden.

Abbildung 10: Kommentare hinzufügen

Hier kann er nun in der Textarea (rot markiert) ein Kommentar verfassen und mithinzufügen speichern.

8

Page 12: tiNts Dokumentation

Dokumentation TiNts is not a ticket system

3.) Profil anpassenMöchte der Nutzer Einstellungen bezüglich seines Profil vornehmen, muss er den Punkt„Profil“ oder den mittleren Button der Übersichts-Ansicht anwählen.

Abbildung 11: Profilansicht

Hier kann er folgendes anpassen:

• Avatarbild einstellen (durch das Hinterlegen einer Bild-URL im Feld „ExterneBild-URL“)

• Anzeigenamen ändern

• Passwort ändern

• Zeitzone seines Aufenthaltsortes einstellen

• Eigene Sprache auswählen

• Benutzerkonto löschen (!Achtung! Ein gelöschter Account kann nicht wiederher-gestellt werden.)

9

Page 13: tiNts Dokumentation

Dokumentation TiNts is not a ticket system

3.1.4 Administratoroberfläche

Den kompletten Funktionsumfang genießt jedoch nur der Tints-Administrator. Zusätzlichzu den Funktionen von Gast und Mitglied kann er die Informationen der bestehendenTickets ändern,

Abbildung 12: Adminfunktionen

10

Page 14: tiNts Dokumentation

Dokumentation TiNts is not a ticket system

Folgende Funktionen stehen dort zur Verfügung:

Datenbank resettenMit dem Befehl „Datenbank resetten“ wird die Datenbank zurückgesetzt (Alle Ticketsetc. werden gelöscht)

User anzeigenUnter „User anzeigen“ findet der Admin eine Auflistung aller Mitglieder, sowie dieMöglichkeit Benutzer zu sperren.

Abbildung 13: User anzeigen

4.) Projekte, Kategorien und Betriebssysteme verwaltenDer Admin hat außerdem die Möglichkeit Projekte, Kategorien und Betriebssysteme zuverwalten, zu löschen und zu erstellen.

Abbildung 14: Verwaltung

Obiges Bild zeigt eine solche Verwaltungsmöglichkeit anhand des Beispiels „Projekt“.

3.2 Drucklayout

Beim Drucklayout wurde Wert darauf gelegt, dass nur die zentralen Informationenzum Drucken in der Druckvorschau angezeigt werden. Deshalb wurden alle grafischenElemente wie der Header oder Loginmasken entfernt.Des Weiteren werden Links automatisch mit dem absoluten Pfadangabe ergänzt unddie Farben auf ein druckerfreundliches Schwarz gestellt.

11

Page 15: tiNts Dokumentation

Dokumentation TiNts is not a ticket system

4 Datenbankschema

Abbildung 15: Entity-Relationship-Modell

Im, in Abbildung 1 vorliegenden ERM-Diagramm, wird die Datenbankstruktur beschrie-ben, wie diese in der Datenbank vorliegt.Die Tabelle tints_tickets enthält alle von den Benutzern erstellten Tickets, welche nebenden Ticket typischen Attributen (status,percentage) auch den jeweiligen Projekten, Ka-teogrien, sowie Betriebssystemen zugeordnet werden können.Diese zusätzlichen Attribute sind in der Tabelle tints_tickets jeweils als Fremdschlüsselvorhanden und sind jeweils mit einer 1:n Beziehung in den Tabellen tints_categories,tints_os, sowie tints_projects gespeichert.Für zukünftige Funktionen wurden bereits Dinge wie ’created_timestamp’ (für denErstellzeitpunkt des Tickets relevant), sowie die Beschreibungen der jeweiligen Pro-jekte,Kategorien und Betriebsysteme implementiert, welcher aber in den aktuellenUsecases noch nicht verwendet wird.In der Tabelle tints_users werden die Benutzerkonten gespeichert, welche für eine An-meldung benötigt werden. Neben den normalen Attributen wie ’username’ und ’passwd’

12

Page 16: tiNts Dokumentation

Dokumentation TiNts is not a ticket system

gibt es zusätzlich auch das Attribut ’nickname’ welches dem User ermöglicht einenanderen Benutzernamen anzuzeigen, anstelle seines Logins.Für Nutzer außerhalb unserer Zeitzone gibt es die Variable timezone_utc, welche derBenutzer im Profil selbst anpassen kann. Diese kann bei zukünftigen Anwendungen inKombination mit dem ’created_timestamp’ aus ’tints_tickets’ verwendet werden um demNutzer dass korrekte Erstelldatum des Tickets anzuzeigen.Im ’userlevel’ werden die verschiedenen Userrechte definiert.

• -1 steht hier für gesperrt

• 0 für nicht aktivierter User (kann sich nicht einloggen)

• 1 aktivierter User

• 2 Administrator

Zusätzlich existiert eine Tabelle ’tints_comment’ welcher mit einer 1:n und n:1 Verbin-dung mit den Tabellen ’tints_tickets’ und ’tints_users’ jeweils in Verbindung steht unddie Kommentare zu den Tickets enthält.

5 Besondere Lösungsansätze

TiNts weist einige Besonderheiten auf, die es in diesem Abschnitt näher zu erwähnengilt.

5.1 Sicherheit

Bei der Programmierung wurde dem Aspekt Sicherheit ein hoher Stellenwert eingeräumt.Dies äußert sich insbesondere, dass die gesamte Verbindung mittels dem HyperTextTransfer Protocol Secure (HTTPS3) Durch die Implementierung ist der gesamte Daten-austausch verschlüsselt und bietet somit den aktuellen Sicherheitsstandard um einegesicherte Kommunikation zu ermöglichen. Des Weiteren wurde für die Sicherheit derPasswörter gesorgt, in dem sämtliche Passwörter in der Datenbank mit einem SecureHash Algorithmus (SHA - 1) verschlüsselt werden, der ein besseres Sicherheitsniveaubedeutet, als ein MD5-Hash.

3siehe dazu auch http://tools.ietf.org/html/rfc2818

13

Page 17: tiNts Dokumentation

Dokumentation TiNts is not a ticket system

5.2 Social Media Konzept

Im Rahmen der zunehmenden Bedeutung des sogenannten Web 2.0, in der die Be-nutzer nicht mehr statische Inhalte betrachten, sondern die Inhalte mitgestalten bietetauch TiNts die Möglichkeit interessante Tickets über 264 verschiedene soziale Medienschnell zu verteilen. Dies wird über den Bookmarking-Dienst AddThis4 realisiert.Um den Überblick über die verschiedenen Informationskanäle zu waren, hat sich zu-nehmend die RSS-Technologie durchgesetzt5. Damit man jederzeit über neue Ticketsund Kommentare zu Tickets informiert zu bleiben, bietet TiNts diese Technologie an.Sie können einen RSS-Feed über einen Feed-Reader jederzeit empfangen. Den Feedkönnen Sie einfach über das RSS-Symbol in Ihrem Browser abonnieren.

5.3 Automatisierte Installation

TiNts wurde auf einfache und benutzerfreundliche Bedienbarkeit ausgelegt. Um diesemAnspruch auch gerecht zu werden bieten wir eine automatisierte Installation an, umeine schnelle und korrekte Inbetriebnahme mit wenigen Schritten durchzuführen. DieVerfahrensweise ist bereits in Kapitel 2.2 beschrieben worden.

4siehe dazu auch: http://www.addthis.com/5http://www.rssboard.org/rss-specification

14

Page 18: tiNts Dokumentation

Dokumentation TiNts is not a ticket system

6 Diagramme

Im folgenden finden Sie die wichtigsten Diagramme, die die grundlegenden Funktions-weisen von TiNts visualisieren.

6.1 Use-Case Diagramm

Abbildung 16: Use Case

15

Page 19: tiNts Dokumentation

Dokumentation TiNts is not a ticket system

6.2 Aktivitätsdiagramme

Abbildung 17: Registriervorgang

16

Page 20: tiNts Dokumentation

Dokumentation TiNts is not a ticket system

Abbildung 18: Ticket anzeigen

17

Page 21: tiNts Dokumentation

Dokumentation TiNts is not a ticket system

Abbildung 19: Setup.php ausführen

18