Skip to content

Activity stream design doc

okvivi edited this page Sep 28, 2012 · 5 revisions

Overview

Acest document este mai degrabă un brain dump cu gânduri despre cum ar putea fi implementat activity stream-ul pentru politicieni și care sunt fișierele care ar trebui editate pentru asta.

Arhitectură generală

Există mai multe opțiuni pentru cum ar putea fi implementat sistemul care produce activity stream-ul, dar în acest moment cred că cel mai bine este în felul următor.

Design edit here

În stânga sunt chestiile care sunt deja implementate și produc date în tabelele din mijloc.

Ce trebuie implementat

  • rulează periodic, probabil o dată pe zi.

  • rulează un loop care trece prin diversele clase care implementează un ActivityStreamProducer. Fiecare clasă este domain specific și știe să se uite în alte tabele și să agregheze ceea ce trebuie pentru a produce un ActivityStream item care are sens.

  • un ActivityStreamItem ar trebui să fie un blob de HTML care reprezintă ce apare în stream, persoana politică al cărei activități este asta, și data la care a fost produs. Este okay dacă HTML-ul este pur static. O dată produs un activity stream item, nu avem nevoie să îl actualizăm, în cel mai rău caz îl putem șterge și înlocui.

Ce mai simplu este să se înceapă cu doar doi producători de astfel de activity stream items:

  • cel pentru news, care operează doar pe două tabele, și care ar putea să înceapă doar prin a spune "Xulescu a apărut azi în N știri, de obicei împreună cu următorii trei politicieni:...".

  • cel pentru voturile din parlament, care ar trebui să fie foarte asemănător, să spună câte voturi au fost exprimate în ziua respectivă și dacă politicianul a fost prezent sau nu, la câte din ele a votat sau nu.

Pentru vizualizarea acestor activity stream items pe site

Vizualizarea pe site ar trebui să fie o alternativă la cum arată în momentul ăsta pagina unui politician.

Ambele feluri de a vedea un politician (ca activity stream, sau ca sumar de date) vor trebui să rămână accesibile.

Pentru asta, trebuiesc schimbate următoarele fișiere:

  • /www/person.php - cam în jurul liniei 126, unde sunt acum afișate mod-urile principale, trebuie adăugat un IF pentru a afișa fie mod-urile principale ca acum, fie un template pentru activity stream.

  • adăugate un template în /www/templates pentru a afișa lista de activity items. Ăsta ar trebui să fie simplu, din moment ce activity_items în baza de date vor fi deja stocate ca și static html, și acum tot ce trebuie să facem este să le afișăm.

Pe termen scurt asta este tot ce trebuie implementat pentru vizualizarea ca activity stream. Restul feature-urilor care ar putea și trebui implementate pot fi adăugate ulterior, după ce sunt puse bazele.