Giter VIP home page Giter VIP logo

datenschutz-chatbot's Introduction

Botty - der Datenschutz-Chatbot

Willkommen!

"Botty - der Datenschutz-Chatbot" ist ein Projekt im Rahmen des Praktikums "IT-basiertes Lernen gestalten" des Lehrstuhls i17 der TU München im Wintersemester 2021/22. Ziel ist die Ausgestaltung einer digitalen Unterrichtsstunde, welche Schüler*innen der gymnasialen Oberstufe zum Thema Datenschutz informiert.

Dieses Repository enthält die primäre App-Komponente von Botty, implementiert in Flutter.

App ausführen

Um die App selbst auszuführen, führe die folgenden drei Commands in einer Umgebung aus, in der Git und Flutter verfügbar sind:

git clone https://github.com/gereonelvers/datenschutz-chatbot.git
cd ./datenschutz_chatbot
flutter run

Achtung: Aktuell hat das Unity Flutter Integrations-Plugin einen Bug, welcher Builds verhindert, wenn einer der Order-Namen ein Leerzeichen enthält! Dies beinhaltet insbesondere auch alle übergeordneten Order-Namen.

Hinweise

Unity

Die Integration der Minispiele wird durch Unity (und insbesondere durch das Flutter Unity Widget) realisiert. Platziere dazu den Unity Projekt Ordner in ./datenschutz-chatbot/unity. Deine finale Ordnerstruktur sollte so aussehen:

- datenschutz-chatbot
	- unity
		- <Unity Projekt Ordner>
			- ...
		- FlutterUnityIntegration-xxxx.unitypackage
	- ...

Um danach das Unity-Projekt erfolgreich in die App zu integrieren, führe die folgenden Schritte aus:

  1. In Unity, wähle Flutter > Build Android aus
    • Hinweis: iOS Build Status ist aktuell ungetestet
    • Denk daran, vorher alle Scenen deines Projects unter File > Build Settings... in Scenes in Build auszuwählen. Die oberste Scene wird als erstes vom Unity Player geladen werden (Sortierung via Drag-and-Drop).
    • Solltest du keinen "Flutter"-Eintrag in deiner Menu-Bar haben, musst du vermutlich FlutterIntegration-xxx.unitypackage neu hinzufügen. Dazu
      • Wähle Assets > Import Package > Custom Package aus
      • FlutterUnityIntegration-xxxx.unitypackage auswählen
      • Im weiteren Verlauf JSONDotNet deselektieren
      • Optional: Unity neustarten
  2. In Android Studio einen Build auslösen
    • Hinweis: Unity unterstützt aktuell leider keine Emulation durch Android Studio AVDs.

Hinweis: Damit das Laden der Scene eines Mini-Games korrekt funktioniert, muss jede Scene ein Objekt mit Namen Scene Loader enthalten, welches über eine Sceneloader-Methode die ID der zu ladende Scene entgegennimmt. Beispielimplementierung:

    public void Sceneswitcher(string args)
    {
        string name = SceneManager.GetActiveScene().name;
        if (!(String.Equals("GameScene"+args, name)))
        {
            SceneManager.LoadSceneAsync (sceneName:"GameScene"+args);
        }
    }

Da jeder Build in Android Studio einen Release-Build in Unity auslöst, sind Build-Zeiten von >15 Minuten nicht unüblich. Die gute Nachricht: Der Unity-Build wird gecached, d.h. nachfolgende Builds in Android Studio sind signifikant schneller. Extrem langsame Build Zeiten unter Windows 10 & 11: Erstelle in Windows Defender eine Ausnahme für den gesamten datenschutz-chatbot-Ordner. Anleitung dazu.

Für Projekte, welche das Android NDK voraussetzen (wie unser eigenes), wirst du im der Datei ./datenschutz_chatbot/android/local.properties vermutlich den Pfad zu deinem eigenen NDK ändern müssen. Idealerweise kannst du dazu einfach das NDK wiederverwenden, welches bereits in den Unity Android Build Tools installiert wurde. Gehe dazu in Unity auf Preferences > External Tools und kopiere den dort unter "Android NDK installed with Unity (recommended)" hinterlegten Pfad in den Eintrag in local.properties. Falls du Windows verwendest, denk daran, deinen Path zu escapen. Der korrekte Eintrag sollte so aussehen:

Linux/Unix:

ndk.dir=/path/to/ndk

Windows:

ndk.dir=C:\\path\\to\\ndk

Rasa

Um die App mit deinem eigenen Rasa Chatbot-Back-End zu verknüpfen, ändere die hinterlegte Domain in ./datenschutz_chatbot/lib/chat_screen.dart:

final String chatRequestUrl = <Deine URL>; // Base URL chatbot requests are made to.

Alternativ kannst du auch einfach unsere Rasa-Instanz weiterverwenden. Das zugehörige Repository findest du hier.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.