===== Tools ===== In diesem Kapitel werden alle Tools aufgelistet und beschrieben, welche während des Projektverlaufes zum Einsatz kommen. ==== Jitsi ==== Jitsi ist ein OpenSource Video-Conferencing-Tool, welches privat von Herrn Ziermers gehostet wird. Dadurch ist der Datenschutz gewährleistet. Das Tool wird für die regelmäßigen wöchentlichen digitalen Treffen zwischen dem Betreuer und dem Projektteam zum Austausch von Informationen und Fragen genutzt. ==== Telegram ==== Telegram ist ein kostenloser, verschlüsselter Text- und Sprachnachrichten-Dienst, welcher sowohl auf mobilen Geräten als auch Desktop-Ansicht funktioniert. Auch über Telegram kommuniziert das Projektteam über Textnachrichten mit dem Betreuer, falls, in den Tagen vor oder nach dem Meeting in Jitsi, Fragen aufkommen, welche schnellstmöglich beantwortet werden müssen. ==== Discord ==== Discord ist ebenfalls ein kostenloser Onlinedienst mit Chat-, Sprachkonferenz- und Videokonferenz-Funktion. Das Projektteam nutzt Discord, um sich, nach den wöchentlichen Treffen mit dem Dozenten, nochmal untereinander auszutauschen und auch an anderen Wochentagen zusammenzutun um sich zu organisieren. Discord bietet neben der Instant-Messenging Funktion auch noch die Möglichkeit persistente, themenbasierte Unter-Chats bzw. Räume zu eröffnen, so dass besprochene Inhalte trotz der formlosen Kommunikation leicht und dauerhaft auffindbar sind. ==== Jira ==== Jira ist eine von Atlassian entwickelte Webanwendung, welche dem Projektmanagement bzw. Aufgabenmanagement dient. In Jira verfasst das Projektteam die Anforderungen des Projekts in kleineren Tasks, um diese wöchentlich in konstanten Schritten abzuarbeiten. Außerdem werden dort bislang die Stundenaufwände der einzelnen Projektmitglieder dokumentiert. Kernfuntionalitäten, die Jira abbildet sind die wöchentlichen Sprints in Form eines Kanban Boards, der Backlog und Zeitaufschreibung zur Kontrolle des Arbeitsumfangs durch den Dozierenden Jira hat außedem eine App, die es schafft alle Funktionen (die bisher gesucht wurden) in das Mobile Interface zu überführen, so dass es möglich wird unterwegs PM Tasks zu erledigen wie die wöchentliche Sprint Planung. ==== GitHub ==== GitHub ist ein netzbasierter Dienst zur Versionsverwaltung für Software-Entwicklungsprojekte. Er wird für die Zusammenführung der Arbeitsergebnisse des Projektteams genutzt. Durch die Nutzung von Github wird (im Gegensatz zum Einsatz des Beuth-Gitlabs) ermöglicht, dass die Arbeitsergebnisse dieses Projekts auch für außenstehende verfügbar werden, wodurch ein aktiver Beitrag zur **Open Source** Bewegung geleistet wird. Durch die Beteiligung an diesem Proejkt erhalten Projektteilnehmende auf diese Art auch eine gewisse Art von öffentlicher Reputation. Technische Dokumentation wird immer am entsprechenden Projekt-Teil, also dem entsprechenden Repository angelegt. Dadurch findet sich die technische Dokumentation des Bots vor allem auf Github ==== Ziemer's Wiki ==== Im Ziemer's Wiki, welches auf DokuWiki basiert, befindet sich eine große Sammlung an Berichten, Dokumentationen und Information zum BeuthBot und die Arbeit der vorherigen Semester an diesem. Diese große Ansammlung dient dem Projektteam zur Einarbeitung in das Projekt bzw. dem BeuthBot, aber auch zur Inspiration, wie sie bestimmte Dinge angehen und gestalten können. Des Weiteren hält das Projektteam in Ziemer's Wiki allgemeine Notizen zum Überblick, aber auch natürlich den Zwischenbericht und andere Dokumentationen fest. ==== IDEs ==== Im folgenden werden die verschiedensten Entwicklungsumgebungen aufgelistet, welches jedes Projektmitglied nach seinen Vorlieben und Präferenzen nutzt, um am Code des BeuthBot's zu arbeiten und die Anforderungen umzusetzen. * Visual Studio Code * WebStorm / PHPStorm (Jetbrains Produkte) === Postman === Postman ist ein Programm zum Entwickeln, aber auch zum Testen von bereits bestehenden REST API's. Mit diesem Tool kann das Projektteam die Antwort auf ihre Anfragen überprüfen. === NPMJS === npmjs.com ist das Repository für nodejs Anwendungen. Javascript Code, der von mehreren Services / Modulen implementiert werden soll, wird daher über npmjs verteilt.