Saturday, December 8, 2007

Tema 3 - inceputul

Tema 3 cere implementarea unei componente Javascript la alegere.
In continuare vom prezenta temele precum si atribuirea lor membrilor echipei:

a) Implementarea unui calendar pe site (folosind YUI).
[ assigned to Daniel ]

  • varianta simpla - numai javascript: In calendar trebuie sa apara cu o culoare diferita datele cand au fost adaugate posturi pe blogul proiectului si la click pe una din zilele astfel subliniate sa se deschida pagina cu postul respectiv. maparea intre posturi linkuri si date se face static folosind un fisier de configurare.
  • acelasi comportament dar maparea intre posturi, linkuri si date se face dinamic folosind o baza de date si Ajax pentru incarcarea url-ului numai la click
b) Contor (pe langa cel de la trafic sau de la google analytics)
[assigned to Danut]
  • varianta simpla ce foloseste numai javascript: la accesul pe site este afisat tipul browserului utilizatorului si de cate ori a mai accesat site-ul (se folosesc cookies si obiectul navigator http://www.w3schools.com/js/js_browser.asp )
  • varianta complexa - se foloseste ajax pentru a pastra vizitele intr-o baza de date si se actualizeaza live pe site (o data la 30 de secunde) numarul de pagini vizitate si de vizitatori unici
c) Topul articolelor
[ assigned to Andrei ]
  • varianta simpla - numai javascript: intr-o pagina a site-ului este prezentata lista cu titlurile articolelor publicate pana in acel moment. utilizatorul poate sa ordoneze articolele respective dupa preferinta si la sfarsit apasand pe butonul "save" sa reafiseze intr-un tabel linkurile in ordinea data de utilizator
  • varianta mai complicata: la sfarsitul ordonarii utilizatorul sa-si salveze alegerea si folosind AJAX sa i se afiseze lista articolelor in ordinea preferintelor globale ale utilizatorilor (se va folosi un sistem de scor - de exemplu primul primeste 10p, al doilea 8, al treilea 6, etc.) si scorul fiecaruia
d) Autocomplete ( http://www.google.com/webhp?complete=1&hl=en)
[ assigned to Irina ]
  • varianta simpla: intr-un input de tip text se tiparesc caractere. Pe masura ce se tiparesc se cauta articolele dupa titlu intr-o lista initializata static si se ofera utilizatorului o lista cu articolele al caror titlu incepe cu caracterele tastate. dupa selectarea articolului se afiseaza linkul catre articolul respectiv.
  • varianta complexa: acelasi comportament dar cautarea se face intr-o baza de date folosind Ajax.
e) Implementarea unui select cu numele participantilor la proiect
[ assigned to Camelia ]
  • varianta simpla (doar javascript) - la selectarea unuia dintre participanti se afiseaza un tabel cu linkuri catre toate temele sale (dintr-o lista initializata static)
  • varianta complexa - acelasi comportament dar folosind o baza de date si Ajax

Thursday, December 6, 2007

Prezentare proiect , faza a II-a

Prezentarea proiectului in faza a 2-a a avut loc marti la laborator si a consemnat o imbunatatire radicala a numarului de vizitatori datorata in primul rand schimbarii layout-ului site-ului.
O prezentare pe scurt a acestei faze se poate gasi aici. In continuare vom prezenta o scurta analiza a evolutiei traficului pe site .
Evolutia numarului de vizitatori este prezentata in graficul alaturat.

Se observa o tendinta de crestere exponentiala a numarului de utilizatori.
Alte lucruri interesante cum ar fi numarul de vizite , numarul de pagini vazute pe vizita, timpul mediu petrecut pe site etc , pot fi observate din imaginea de mai jos.
Asadar dupa cum se poate observa lucrurile merg intr-o directie buna , insa pana la primul loc in google mai este de lucru.

Tuesday, December 4, 2007

Despre tema 2

Enuntul temei cu numarul 2 presupunea in mare 2 lucruri:

  • crearea unui mic crawler web
  • salvarea datelor obtinute de crawler intr-o baza de date cu structura data.
In cele ce urmeaza voi prezenta o modalitate foarte simpla de crearea unei baze de date folosind python si sqlite.
Sqlite - este un sistem de gestiune a bazelor de date , are o dimensiune redusa si nu are nevoie de dependinte speciale, baza de date fiind stocata intr-un singur fisier.

Exemplu de folosire:
1.Crearea unei baze de date cu care sa lucram
>>> connection = sqlite.connect('test.db')
2.Crearea unui cursor care realizeaza interactiunea cu baza de date
>>>
cursor = connection.cursor()
3.Crearea unei tabele
>>> cursor.execute('CREATE TABLE names (id INTEGER PRIMARY KEY,
name VARCHAR(50)')
4.Inserarea unei inregistrari in tabela
>>> cursor.execute('INSERT INTO names VALUES (null, "JohnDoe"')
5.Salvarea in baza de date
>>> connection.commit()
6.Extragerea datelor din tabela
>>> cursor.execute('SELECT * FROM names')

Isn't it simple?

Unelte de prelucrare a documentelor structurate

Un nou articol isi face aparitia printre interfete. Articolul prezinta pe scurt cateva din modulele existente in python pentru prelucrarea informatiei adnotata cu marcaje dupa care sunt prezentate pe larg facilitatile a doua dintre acestea DOM si SAX.
De asemenea veti gasi si un exemplu simplu care arata cum se folosesc cele doua module pentru extragerea datelor dintr-un fisier XML.

Monday, December 3, 2007

Deadline aproaching (2)

Mai repede decat ne asteptam , deadline-ul este chiar maine.
Prezentarea va trebui sa cuprinda urmatoarele lucruri:

  • modificarile aparute in layout, structura (+justificari)
  • evolutia traficului si a numarului de referinte (analiza motivelor diverselor evolutii)
  • prezentarea evolutiei taskurilor individuale
  • planul pentru ultima etapa a proiectului

Eu o sa fac un articol despre parsarea documentelor xml + lucrul cu baze de date in python ( modulul sqlite ) ( practic lucrurile necesare rezolvarii temei 2 ). De asemenea o sa ofer pentru upload temele 1 si 2 si o sa fac o lista de unelte folosite la laborator sau in rezolvarea temelor.