Skip to content
This repository has been archived by the owner on Oct 4, 2024. It is now read-only.

Anforderungsdokumentation

Integraluminium edited this page Apr 18, 2024 · 39 revisions

Anforderungsdokumentation

Funktionale Anforderungen

In diesem Abschnitt werden die fundamentalen Funktionen erläutert, die von der Anwendung SimpleQ bereitgestellt werden sollen. Zur Erfüllung der Benutzerbedürfnisse werden anschließend die spezifischen Anforderungen erklärt.


Anmeldung

Das System soll mehrere Anmeldemöglichkeiten anbieten.

Vom System muss eine passwortlose Anmeldung implementiert werden. [#16] [#51] Ein konventionelles Passwortsystem wird nicht angeboten. Die Nutzung unsicherer oder mehrfach verwendeter Passwörter durch User soll hierdurch vermieden werden.

Falls eine passwortlose Anmeldung nicht möglich ist, kann ein bereits vorhandener Google Account für die Anmeldung genutzt werden [#10].

Als weitere Anmeldemöglichkeit wird die Anmeldung mit einer Apple-ID angeboten [#11].

Für Github-User wird die Anmeldeoption über den Github-Account angeboten [#17].

Guest-User müssen sich nicht anmelden, um die Seite zu nutzen. Soweit technisch umsetzbar werden User wiedererkannt [#51][#37].

Für eine Erhöhung der Sicherheit kann eine Zweifaktorauthentifizierung eingerichtet werden. [#12]


Frageerstellung

Jeder User kann eine Frage Erstellen. Diese kann von externen Schnittstellen, sowie registrierten Usern beantwortet werden. Jede selbst erstellte Frage wird automatisch abgespeichert und ist dem Autor jederzeit zugänglich. [#31]

Die Frage besteht aus einem Title und einer detaillierten Beschreibung.

Jede Frage muss mit einem oder bis zu 5 Tags versehen werden. Anhand dieser kann die Frage später kategorisiert und von Usern gefunden werden. [#23]

Vor dem Veröffentlichen einer Frage wird diese auf drei Aspekte überprüft.

  • Spam: Einem User sollte es nicht möglich sein zu schnell hintereinander mehrere Fragen zu stellen. [#20]
  • Blacklist: Die Frage wird auf anstößige Inhalte überprüft, um ein Nutzerfreundliches Klima zu gewährleisten. Dazu werden anstößige Schlagwörter in einer Liste gespeichert. Falls eine Frage eine dieser Schlagwörter enthält, ist diese nicht zulässig. [#26]
  • Wiederholungsschutz: Um wiederkehrende Fragen zu vermeiden, wird anhand von Schlagwörtern überprüft, ob eine ähnliche Frage bereits existiert. Sollte dies der Fall sein, erscheint eine Warnung, ob diese wirklich veröffentlicht werden soll. Ähnliche Fragen werden dem User vorgeschlagen. Wird die Frage trotzdem veröffentlicht, wird die Frage als redundant gekennzeichnet. [#33]

Die Erstellung von Fragen ist nicht nur Normal Usern möglich, sondern auch Guest Usern. [#28]


Frage suchen

Jedem User sollte es möglich sein nach Fragen zu suchen. Hierfür gibt es die Filtermöglichkeiten nach Schlagworten oder nach Tags zu filtern, welche bei der Fragestellung als Kategorie hinzugefügt wurde.[#18]


Favorisierung von Fragen

Falls ein registrierter User sich bestimmte Fragen merken möchte, kann dieser Fragen favorisieren. So ist sie jederzeit in einer Liste abgespeichert. Für dieses Feature ist eine Registrierung nötig. Jedoch ist die Anzahl der favorisierten Fragen bei einem Normal User begrenzt, während ein Pro User beliebig viele Fragen speichern kann. [#44]

Falls der User eine E-Mail adresse hinterlegt hat, kann dieser eine Benachrichtigung Via E-Mail bekommen, falls bei einer favorisierten /(eigene?) Frage eine Antwort hinzugefügt wird. [#29]

Verlauf von Fragen

Die Komponente muss selbstgeschriebene Fragen und Antworten dem User seperat anzeigen. Hierdurch ist es möglich eigene Texte auf Plausibilität zu prüfen [#56]


Antworten

Die erstellte Frage eines Users soll entweder von anderen Nutzern oder auch von einer externen Schnittstellen beantwortet werden. Je nach Accounttype (Guest User, Normal User, Pro User) unterscheiden sich die Antwortmöglichkeiten.

Generell können Fragen nur von registrierten Usern beantwortet werden. [#19] Hierbei handelt es sich zu einem um eine Sicherheitsmaßnahme, um Spam-Posts oder irrelevanten Content auf der Plattform zu reduzieren. Zum anderen sollen User dazu angeregt werden sich zu registrieren.

Für den registrierten User wird die Möglichkeit geboten Antworten von externen Schnittstellen zu erhalten. Diese werden besonders graphisch hervorgehoben. [#45] Für die Nutzung der Schnittstellen ist eine Differenzierung nach Preismodell geplant. Hierbei wird der Zugriff auf die Schnittstellen limitiert nach der Nutzergruppe limitiert. [#27] Folgende externe Schnittstellen sind geplant:

  • Die OpenAI Schnittstelle ermöglicht innerhalb weniger Sekunden eine direkte Antwort auf die Frage zu bekommen. Diese automatisch generierte Antwort soll besonders hervorgehoben werden. Die Wahl des AI Models ist jedoch nicht festgelegt, da bei der Wahl eines Modells der Preis, als auch die Qualität der generierten Antwort eine Rolle spielt. Somit ist diesbezüglich eine gewisse Flexibilität bei der Implementierung entscheidend. [#13]

  • Für Pro User soll es möglich sein auch eine externe Schnittstelle für mathematische Frage nutzen zu können. Hierfür wird die Wolfram Alpha Schnittstelle verwendet. Da Wolphram Alpha ein weltweit anerkannter Online-Service ist, welcher komplexe algorithmische Berechnungen lösen kann, empfiehlt sich die Nutzung. [#9]

Falls die gestellte Frage einem User gefällt kann die Frage mit einem "Like" oder "Dislike" bewertet werden. [#42]

Antworten haben einen Index, der für jede Antwort inkrementiert wird. Antworten können auf andere Antworten der Frage/Diskussion verweisen. Der Verweis wird besonders hervorgehoben. [#117] Der Index gilt als Anker, um auf diese Antwort referenzieren zu können. Über eine Schaltfläche kann ein Link zu dieser Antwort mit dem Index in die Zwischenablage gespeichert werden. [#118]


Expertensystem

Jede Antwort die auf eine Frage gegeben wurde, kann von jedem Nutzer mit einem Account bewertet werden. Hier werden die Bewertungsmöglichkeiten "Like" und "Dislike" bereitgestellt, um der Antwort zuzustimmen oder zu widersprechen. [#39] Durch mehrfach gutbewertete Antworten kann der Autor der Antwort zu einem Experten in dieser Kategorie werden. Man kann Experte für mehrere Kategorien werden. Der Expertenstatus ist in den Antworten für jeden User sichtbar, wodurch die Vertrauenswürdigkeit dieser verbessert wird. [#15]

Aktivitätsstatus

Alle registrierten User haben einen Aktivitätsstatus, welcher beschreibt, wie häufig ein User auf der Plattform ist. Dafür wird die Aktivität auf einen Punktestand abgebildet. Für bestimmte Intervalle gibt es unterschiedliche Medaillen(Bronze, Silber, Gold, Platin), die für andere User sichtbar sind. [#40]

Der Aktivitätsstatus wird durch das Erstellen und Beantworten von Fragen erhöht. [#41] Zusätzlich werden wöchentliche Quests angeboten, durch die der Punktestand erhöht werden kann. [#34]

Profil des Nutzers

Jeder User hat ein eigenes Profil. In diesem werden ihm folgende Informationen angezeigt: [#43]

  • Username
  • Registrierungsmöglichkeiten ändern
  • Aktivitätsstatus(Medaille und Punktestand)
  • Expertenstatus
  • Übersicht über gestellte Fragen, Antworten, etc

Produktdifferenzierung

Ein User kann sich in einer der 3 Stufen des Produktes befinden (unangemeldet, angemeldet, premium). Hierbei soll der User jederzeit die Möglichkeit haben sein Benutzerprofil zu upgraden. Dabei soll sich ein unangemeldeter Nutzer registrieren können und dabei ein Benutzeraccount angelegt werden. Außerdem soll es für einen angemeldeten User möglich sein, seinen Benutzeraccount in einen Premiumaccount upzugraden. [#61]

Diskussionen

Das System soll Diskussionen ermöglichen, die gesondert aufgeführt werden. [#111] Der Person, die die Diskussion erstellt hat, wird ermöglicht Personen für die Moderation zu ernennen und zu degradieren, sowie selbst die Funktion der Moderation zu übernehmen. Der Moderation wird es ermöglicht Fragen von Usern zu löschen, sowie die User temporär oder permanent von der Diskussion auszuschließen. [#112]

Wird eine Antwort gelöscht wird der Inhalt entfernt und die Nachricht als gelöscht markiert. [#113]

Diskussionen können öffentlich oder privat sein. [#111] Öffentliche Diskussionen werden in einem seperaten Fenster gelistet und können über die Fragensuche gefunden werden. Die Suche hat eine Schaltfläche, mit der Diskussionen in die Suche einbezogen oder ausgeschlossen werden können. Auf private Diskussionen kann jeder zugreifen, der den Link auf die Frage besitzt. Gespeichert wird der Zugriff auf die Diskussionen in den Favoriten. [#111]

Eine Frage kann jederzeit in eine Diskussion umgewandelt werden, eine Rückumwandlung in eine Frage ist anschließend nicht mehr möglich. [#114]

Guest User können keine Diskussionen erstellen. [#116]

Eine KI-Antwort kann auf Basis der Beschreibung der Diskussion erstellt werden. Die Antwort kann von dem Erstellenden bei der Erstellung angefordert werden. [#118]



Nicht Funktionale Anforderungen

Allgemeine Anforderungen

Kurze Notiz(evtl. für Tom und Joshua):

  • englisch/deutsch
  • starken Fokus auf Sicherheit (Missbrauch der openAI API)
  • Angenehmes Nutzungsgefühl (inkl. keine anstößigen Inhalten => Jugendschutz)
  • verschlüsselte Verbindung
Internationalisierung

Damit ein breites Publikum angesprochen werden kann, soll es möglich sein der Webseite neue Sprachen hinzuzufügen. Das Basissprachangebot des Systems soll mindestens eine deutsche und eine englische Sprache umfassen. [#58]

Datenschutz / Gesetzl. Vorgaben

Für die Verarbeitung und Speicherung benutzerbezogener Daten muss eine Einwilligung bei dem User eingeholt werden. [#65]

Sicherheit

Die Webseite soll über eine sichere Verbindung erreichbar sein. [#62]

Optionale Anforderungen

Weitere Anforderungen, die umgesetzt werden können, allerdings nicht für ein erfolgreiches Beenden des Projektes notwendig sind.

Anbindung von Simplechat

Eine SimpleChat-Einbindung ermöglicht mit anderen SimpleQs direkt zu kommunizieren. Simplechat ist ein selbstimplementierter einfacher Messengerdienst. [#30]

Sichtbarkeit von SimpleQs

Eine Einstellmöglichkeit erlaubt es dem User die Sichtbarkeit einer SimpleQ einzustellen ("Privat" und "Eingeschränkte Sichtbarkeit").

Log von Anmeldeversuchen

Das System soll den Usern die Möglichkeit bieten vergangene Anmeldeversuche anzuzeigen.[#57] Die Übersicht soll als Informationsquelle dienen unbefugte Zugriffe auf das Konto zu erkennen und nachvollziehen zu können.

Tracking von Usern

Abgelehnt: Datenauswertung des Nutzungsverhaltens von Usern [#53]