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
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
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
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
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
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
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
Dokumentation TiNts is not a ticket system
Abbildung 4: Ticket anzeigen
5
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
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
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
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
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
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
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
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
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
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
Dokumentation TiNts is not a ticket system
6.2 Aktivitätsdiagramme
Abbildung 17: Registriervorgang
16
Dokumentation TiNts is not a ticket system
Abbildung 18: Ticket anzeigen
17
Dokumentation TiNts is not a ticket system
Abbildung 19: Setup.php ausführen
18