WzCzW/Disseny tècnic

De GERMINADOR wiki

Dreceres ràpides: navegació, cerca

< PLANTER + Disseny interacció
de sistemes i projectes de creació col·lectiva en xarxa.

m.Lloc on hi ha les plantes nades, on es crien les plantes petites, destinades a ésser trasplantades; les mateixes plantes. (Diccionari IEC).

Disseny tècnic i Desenvolupament


-- veure també WzCzW/Desenvolupament --

El desenvolupament de Wikipool es pot afrontar amb un enfocament modular. Això té algunes avantatges:

  • desenvolupament tipus layering, cada mòdul o capa sap com es comunica amb les altres però es pot desenvolupar autònomament (facilita col·laboració de diferents programadors)
  • re-aprofitament dels mòduls en altres programes (especialment pensant en Casual, però igualment podria ser per coses tipus pppFlickr_toys)
  • possibilitat d'afegir o substituir mòduls

D'entrada podem pensar en 4 grans parts del programa:

  • pools_hall: sistema multipools que gestiona la presentació d'informació, creació i accés a les diferents pools o canals.
  • pool: funcionament de la pròpia pool, comportament dels retalls (snips) en la composició, registre d'informació relativa a aquests en la base de dades
  • user: control de sessions d'usuari, registre dades usuari a la base de dades
  • user_tools: referent a les eines personals de l'usuari en l'entorn de treball i dels mecanismes necessaris en servidor; sistema de cerca, galeria de resultats, mecanisme d'incorporació de continguts.

A continuació s'esbossen els mòduls de Wikipools agrupats en aquests 4 blocs. Això és un document de treball preliminar, a la pràctica pot ser que hi hagi canvis.


Imatge:CzWzC ico multicanal.png

[edita] Pools_hall

Conjunt de mòduls del sistema de gestió de pools o canals de wikipool.

[edita] mostrar pools obertes

show_pools
client/server (Ajax/PHP/MySQL)

mòdul que consulta a la base de dades les pools obertes (i les seves característiques) per mostrar-les en portada

  • s'ha d'executar en consulta periòdica per si s'esborra o crea una nova pool

[edita] crear/esborrar pool

pool_live
server (PHP/MySQL)

mòdul que serveix per:

  • crear una una nova pool:
    • crea una entrada a la taula pool de la base de dades
    • se li han de passar les propietats de la pool
    • quan es fa servir? Quan algú decideix crear una pool nova enlloc d'entrar en una d'oberta
  • esborrar una pool existent
    • elimina una pool i tot el que hi està relacionat
    • base de dades:
      • elimina l'entrada de la pool a esborrar a la base de dades
      • elimina totes les referències pool2content (o pool2box)
      • ¿? elimina els continguts vinculats a la pool

[edita] Propietats d'una pool

pool_properties
server/client

mòdul que serveix per:

  • definir les propietats que tindrà una pool. Per exemple:
    • Tema visual i/o color de fons de la composició
    • Mida de la composició (si no és relativa)
    • Nombre màxim de snips o caixes
    • Reciclatge/acumulació de snips: si cada contingut incorporat crea un nou snip o es substitueix el contingut del més vell
    • Continguts acceptats: imatges referenciades, càrrega d'arxius gràfics (formats i pes), text, vídeo
    • Possibles restriccions d'accés
    • Mode d'inici:
      • Blank: comença amb una composició buida sense continguts
      • Casual: fa una cerca de continguts i els disposa aleatòriament
      • Reclycle: reaprofita pool anterior o un determinat estat d'aquesta

Imatge:Arrow right.png simulació interface

[edita] Bloquejar/desbloquejar una pool

pool_status
server (PHP/MySQL)

mòdul que serveix per:

  • bloquejar una pool
    • tanca l'accés a una pool
    • es pot escalar: hide (dades enregistrades però no visible), noedit (és visible, es pot consultar i veure historial, no es pot seguir editant)
    • s'utilitzaria un camp de la base de dades per aquest propòsit
    • Quan es fa servir? Quan es vol deixar una pool tancada o "adormida". Potser passada una estona que ningú hi entra.
  • desbloquejar una pool
    • torna a permetre que es vegi i/o s'editi
    • Quan es fa servir? No està clar que ho fem servir, però està bé que hi sigui, encara que només es faci servir a nivell d'administrador.

[edita] Casual

wpool_casual
server

Casual és un programa independent. Però està previst que la seva nova versió comparteixi alguns mòduls amb aquesta versió de Wikipool.

Wikipool té específicament un mòdul Casual que li serveix per si es vol començar una pool sense començar en blanc (veure #Propietats d'una pool).

Aquest mòdul serveix per:

  • Fer una meta-cerca o cerca múltiple (en diferents fonts) a partir d'una expressió entrada per l'usuari creador de la pool (això es fa utilitzant el mòdul multi-cerca
  • Escollir aleatòriament entre els resultats obtinguts els continguts dels retalls (snips)
  • Disposar aleatòriament (o algoritme "casual") els retalls en la composició inicial
  • Quan es fa servir? Quan l'usuari creador de la pool escull el mode d'inici "casual"


Imatge:CzWzC ico users.png

[edita] Control d'usuari

user_mg o user_management
server (PHP)

mòdul que serveix per:

  • gestionar sessions d'usuari (quan accedeix, quan deixa)
  • guardar informació d'usuari a la taula users de la bd
  • recuperar informació d'usuari de la taula users de la bd
  • mostrar nombre usuaris connectats en la interfície d'una pool o bé en les caselles d'informació de pools en portada


reaprofitable: és un mòdul que es pot compartir amb Casual i amb qualsevol altre programa que necessiti gestió d'usuaris


Imatge:CzWzC ico caixeditables.pngImatge:CzWzC ico historial.pngImatge:CzWzC ico dinamic.png

[edita] Pool

Conjunt de mòduls relacionats amb el funcionament d'una pool o canal de Wikipool; principalment amb el funcionament dels retalls (snips) i del seu contingut.

[edita] Entrar pool

pool_builder
client (javaScript/Ajax)

aquest mòdul serveix per:

[edita] Registre pool

pool_stats
server/client

aquest mòdul hauria de permetre fer un registre de l'evolució de la pool a nivell d'events que s'hi produeixen de manera que després es pogués re-produir una sessió (o un fragment) com una seqüència animada. Cal resoldre tant qüestions de disseny d'interacció com de disseny tècnic. De moment la opció està contemplada en el disseny de la base de dades.

[edita] Gestió retall/contingut

snip_manager, snip_management o snip_mg
client/server

és un mòdul referent als retalls (snips) o "caixes" (boxes) i al seu contingut (content)que serveix per:

  • moure els retalls: això ja ens ve donat per les funcions de Script.ocul.us i s'incorpora en construir la pool amb el pool_builder, segurament no calen uns scripts de codi específics. Faran falta en tot cas si s'implementa el sistema de bloqueix de snip quan algú l'està movent.
  • consultar la posició i actualitzar-la: perquè tots els participants vegin els moviments que han fet els altres [Actualment: funció viewer() de lib/wikipool.js que mitjançant Ajax.PeriodicalUpdater crida /lib/pool_update.php]
  • incorporar snips: mecanisme per crear nous snips (vinculat a #User_tools) si la opció està disponible
  • canviar contingut snip: mecanisme per substituir el contingut del snip més antic pel nou incorporat (vinculat a #User_tools) si aquesta és la opció escollida


[edita] Registre/Historial retalls

snip_hist
client/server

aquest mòdul serveix per:

  • Historial: crear un registre de continguts i posicions d'un snip al llarg d'una sessió
    • Cada cop que algú canvia de posició un retall (snip) la nova posició es guarda en la taula snip (o box) de la base de dades
      • La posició que hi havia en aquesta taula passa a la taula "pos2snip_old" (o "pos2box_old") junt amb un timestamp (seguint proposta db-alt1)
    • Cada cop que algú canvia el contingut d'un retall (snip) el nou contingut es guarda en la taula snip (o box) de la base de dades o a la taula "content2snip" (segons l'enfoc que finalment adoptem).
      • La referència al contingut antic es passa a la taula "content2snip_old" (o "content2box_old") junt amb un timestamp (seguint proposta db-alt1)
  • Mostrar i recuperar historial: de moment aquesta part no està resolta ni a nivell de disseny d'interacció ni de disseny tèncic
    • Caldria estudiar com es mostra a l'usuari l'historial, si és per cada retall o és de conjunt de la pool
    • Caldria estudiar com es mostra visualment i si és "navegable"
    • Caldria estudiar si es pot restaurar un contingut a una "snip", si es pot tornar a una versió anterior de tota la "pool", si es pot crear una nova pool a partir d'un punt de l'historial, si es pot "reproduïr" una sessió en seqüència
  • Provisionalment es pot desenvolupar la primera part del mòdul per assegurar el registre i deixar la segona part per quan s'hagi resolt a nivell de disseny

Imatge:CzWzC ico cerca.pngImatge:CzWzC ico galeria.png

[edita] User_tools

Conjunt de mòduls relacionats amb les eines personals (no compartides, no multiusuari) del participant en l'entorn de treball. Principalment els mecanismes de cerca, la galeria de resultats i els mecanismes d'incorporació de continguts.

[edita] multi-cerca

mmsearch
server

mòdul que serveix per:

  • cercar imatges a partir d'una petició
    • s'ha de pensar per poder utilitzar vàries fonts (peticions search-engine's, API's, ...) i que l'usuari o la configuració de la pool determini quines s'utilitzaran
    • s'ha de poder definir el nombre de resultats
  • cercar textos ¿?
    • similar a les imatges però cal veure si s'utilitzarà, pot ser bo que estigui previst encara que no s'utilitzi perquè és una component de Casual


reaprofitable: és un mòdul compartit amb Casual


[edita] galeria

gallery o user_tools_box
client (javascript/Ajax)

és un mòdul que bàsicament defineix el funcionament d'un element d'interface: la barra d'eines de cerca i galeria per incorporar continguts

  • resol com es fa la cerca i com es decideixen els paràmetres que es passen al mòdul multi-cerca
  • resol com es mostren els continguts i com es fullegen
  • resol com s'incorporen els continguts a la pool
  • resol com es mostra informació "estadística" a l'usuari (nombre usuaris connectats i altres dades de la pool)


Disseny interacció
Imatge:Arrow right.png Aquest disseny tècnic implementa el següent: disseny d'interacció

Desenvolupament
Imatge:Arrow right.png Wikipool en funcionament (versió pública)
Imatge:Arrow right.png Versió en desenvolupament (demo pública)

Imatge:Arrow right.png Eines GForge per Planter a lafarga
Imatge:Arrow right.png Codi font
(Feu servir usuari Anonymous i contrassenya en blanc)

Contingut