Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

YoussefKaabachi/echolot

Open more actions menu

Repository files navigation

Echolot

Echolot ist ein interaktives Social-Media-Spiel aus dem Software-Entwicklungspraktikum. Es macht Filterblasen und Empfehlungslogiken anhand eines simulierten Feeds sichtbar und wertet die Entscheidungen der Spieler:innen anschließend aus.

Die öffentliche Live-Demo läuft vollständig im Browser mit vorbereiteten Beispieldaten. Der vollständige Quellcode in diesem Repository enthält zusätzlich das produktive FastAPI-Backend, die Datenbanklogik und die lokale LLM-Anbindung.

Repo-Struktur

code/
├── backend/                  # Python FastAPI Backend
│   └── app/
│       ├── api/              # Controller-Schicht (API-Endpunkte, Routen & Request-Handling)
│       ├── core/             # Zentrale Konfigurationen (Datenbank-Setup, globale Variablen)
│       ├── data/             # Statische Spieldaten (z. B. Skripte zur Post-Initialisierung)
│       ├── models/           # Daten-Schicht (SQLAlchemy ORM-Datenbankmodelle)
│       ├── schemas/          # Validierungs-Schicht (Pydantic-Datenstrukturen & Enums)
│       ├── services/         # Anwendungs-Schicht (Spiellogik & LLM-Anbindung)
│       └── main.py           # Haupteinstiegspunkt der FastAPI-Anwendung
│
├── frontend/                 # React Frontend (Vite)
│   └── src/
│       ├── api/              # API-Clients für die Kommunikation mit dem Backend
│       ├── components/       # Wiederverwendbare React-UI-Komponenten
│       ├── logic/            # Clientseitige Berechnungen und Zustandssteuerungen
│       ├── pages/            # Hauptansichten/Seiten des Spiels (z. B. Feed, Evaluation)
│       ├── styles/           # CSS/Styling-Dateien
│       ├── App.jsx           # Zentrale React-Hauptkomponente & Client-Routing
│       └── main.jsx          # Einstiegspunkt für das DOM-Rendering
│
├── .gitignore                # Schließt temporäre Dateien (z. B. .venv, node_modules) von Git aus
├── deploy.sh                 # Shell-Skript zur Automatisierung des Deployments (Build & Start)
└── README.md                 # Projektdokumentation und Installationsanleitung

Getting started with PyCharm

  1. Virtual Environment einrichten
  • Unten rechts auf "Python" klicken
  • "add new interpreter" -> "Add local Interpreter" -> Python 3.14.0 auswählen
  1. PyCharm Terminal öffnen -> "pip install -r backend/requirements.txt"
  2. Im Terminal "pre-commit install"

start API routes

  1. uvicorn backend.app.main:app --reload
  2. url auf /docs ändern

Lokale LLM-Analyse mit Ollama

Für die Inhaltsanalyse der Posts nutzen wir das lokale Modell Llama 3 aus dem Framework Ollama. Dafür wird keine API-Credits oder eine Internetverbindung benötigt.

Vorgehen mit Ollama:

  1. Installation: Lokal die Ollama-Anwendung installieren ollama.com
  2. Modell einmalig laden: Das Modell mit folgendem Befehl im Terminal laden:
   ollama run llama3

Datenbank mit Posts füllen

(Am Besten vorher echolot.db Datei einmal löschen) Vom Code Ordner aus im Terminal ausführen: python3 -m backend.app.data.seed

About

Interaktives Social-Media-Spiel zu Filterblasen und Empfehlungslogiken

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.