SuTeCo – Gruppenverwaltung, Activity Stream, Suche

29 Dez

Erweiterung der „Gruppenverwaltung“

Da die Gruppenverwaltung der zu entwickelnden Applikation SuTeCo um einige neue Funktionen erweitert wurde, möchte ich diese nun kurz erläutern.
Das Konzept „Gruppenkreis“, das ähnlich wie bei Google+ realisiert wurde, sieht vor, dass die Fotos der Mitglieder der Gruppen am Rand des Kreises auch in Kreisform (mit abgerundeten Ecken) angezeigt werden (Abbildung 1).
Da es aber unmöglich ist, die Fotos aller Mitglieder der Gruppe im Gruppenkreis darzustellen, werden nur acht Mitgliederfotos angezeigt, die in der jeweiligen Gruppe am aktivsten sind. Um ihre Aktivität festzustellen muss man mit dem Mauszeiger über das Profilfoto gehen. Es erscheint ein Tooltip, das die Aktivität des Mitglieds anzeigt (vgl. Abbildung 1).
Die Tag Cloud wurde auch mit einer Tooltipfunktion versehen, damit man sofort feststellen kann, wie oft der Einzelne mit einem Tag in Verbindung gebracht wurde (Abbildung 2).

Gruppenverwaltung SuTeCoAbbildung 1. Gruppenverwaltung in SuTeCo

Tag Cloud Gruppenverwaltung SuTeCoAbbildung 2. Tag Cloud in der Gruppenverwaltung SuTeCo

Activity Stream Spezifikation
Activity Stream ist eine Liste der Aktivitäten einer Person, in der Regel auf einer Webseite, die ausgeführt wurden. Ein Beispiel dafür ist Facebook mit der sogenannten „Timeline“.
Activity stream ist ein offener Standard, der für das Sozialweb spezifiziert wurde. Eine detaillierte Beschreibung findet man unter http://activitystrea.ms

Für die Implementirung wurde Activity Schema als Basis für die Datenstruktur des Activity Stream verwendet. Der Activity Stream wird in der Datenbank gespeichert und hat folgende Datenstruktur:

  • ID – Identification Number (increment)
  • Actor – Objekt, das die Aktion durchführt
  • Verb – die Verb Phrase, die die Wirkung der Aktivität identifiiert (z.B. tag, create, add etc.)
  • Target – Das Objekt, über das die Aktivität durchgeführt wird
  • Object – Objekt, das an die Aktivität angebunden ist
  • Object_type – Type des Objektes, das an die Aktivität angebunden ist
  • timestmp – Zeitstempel

Anhand des folgenden Beispiels soll deutlich werden, wie das Tagging einer Person (People Tagging) in der Activity Stream Datenstruktur abgebildet wird.
Aktivität: Juri Kostik die Person Franziska Reichelt mit „hni“ und „pr-team“ getagt (Abbildung 3).

Activity Stream BeispielAbbildung 3. Ein Eintrag in Activity Stream (SuTeCo)

Activity Stream:

  • ID: 234
  • Actor: Juri Kostik
  • Verb: tag
  • Target: Franziska Reichelt
  • Object: 34 (ObjectID in der Tabelle, in der Tags gespeichert werden)
  • Object_type: person
  • Timestmp: 28/12/2012 04:20

Darstellung vom Activity Stream in SuTeCo
Die Activity Stream Liste erscheint auf der Profilseite eines jeden Benutzers. In dieser Liste werden alle eigene Aktivitäten des Nuters abgebildet und die Aktivitäten der Benutzer und Gruppen, die er beobachtet bzw. denen er folgt (Abbildung 4).

Activity Stream SuTeCo

Abbildung 4. Activity Stream in SuTeCo

Diese Activity Stream Liste lässt sich filtern. Es kann eine von drei Optionen ausgewählt werden:

  • alle Aktivitäten anzeigen. Das Bedeutet, dass sowhl eigene als auch die beobachteten Aktivitäten dargestellt werden.
  • Nur eigene Aktivitäten anzeigen. Es werden nur die Aktivitäten des Benutzers angezeigt (keine beobachtete (followed) Personen bzw. Gruppen).
  • Nur beobachtete Aktivitäten anzeigen. Es werden nur beobachtete Obekte wie Personen und Gruppen angezeigt, keinerlei eigenen Aktivitäten des Nutzers.

Die Anzahl von darzustellenden Aktivitäten auf einer Seite wurde aus Usability-Grunden auf zehn begrenzt. Wenn man aber ältere Aktivitäten des Benutzers sehen möchte, muss man die Activity Stream Liste ganz nach unten scrollen und an Ende der Liste den Button „Show more“ anklicken. Danach erscheinen weitere zehn.

Suchfunktion nach Benutzer bzw. Gruppen, Bildung virtueller Gruppen
Die Suchfunktion befindet sich gerade in der Entwicklungsphase. Es ist aber vorgesehen, eine Volltextsuchplattform auf Apache Solr Bais zu implementieren. Für das das Framework Django wurde eine Applikation Haystack entwickelt, die für die Volltextsuche eingesetzt wird und Apache Solr und viele andere Search Engines verwendet.

Wenn jemand schon damit Erfahrung hat, würde ich mich über Tipps oder Code Snippets freuen!

2 Antworten to “SuTeCo – Gruppenverwaltung, Activity Stream, Suche”

  1. Julian Maicher 6. Januar 2013 um 14:26 #

    Wie ich sehe, hast du activitystrea.ms schon gefunden. Vielleicht sollte ich den RSS-Feed das nächste mal von oben nach unten lesen :-)

    • Juri Kostik 7. Januar 2013 um 15:31 #

      Danke Julian für deine Tipps! :) Ich habe vor Weihnachten Wolfgang nachgefragt und er hat mir damit geholfen. Ich habe tatsächlich activitystream.ms als Grunkkonzept in meiner Web-Anwendung verwendet.

      Darüber hinaus habe ich eine fertige Extension für Django gefunden, die das Konzept realisiert (https://github.com/justquick/django-activity-stream). Sie war aber ziemlich komplex für mich und ich habe mich entschieden das selbst zu implementieren, da es ziemlich einfach war!

      In Django sollte ich aber komplexe Anfragen an die DB bauen wie:

      for item in followers:
      argument_list.append( Q(**{‚actor__icontains‘:item.follower} ) )

      for item in follower_groups:
      argument_list.append( ( Q(target__icontains=item.group_id) & Q(objekt_typ=’group‘) ) )

      for item in own_groups:
      argument_list.append( ( Q(target__icontains=item.id) & Q(objekt_typ=’group‘) ) )

      ,
      Aber vielen Dank für deine Antwort! :)

      Kennst du dich wahrscheinlich mit Solr aus? ;) Habe gerade paar Schwierigkeiten mit. :)

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: