Rozdeleni aplikace do casti
survey-web
Tato cast aplikace je zodpovedna za zobrazeni vlastni ankety. Zajisti renderovani ankety podle prislusneho nastaveni typu ankety:
- basic - nekolika strankova ankteta pro nekolik klientu
- single - nekolikastrankova anketa pro jednoho klienta
Soucasti teto aplikace je rozhrani zajistujici sber informaci z ankety.
survey-web-admin
Tato cast aplikace, ktera zajistuje nastaveni anket. Umoznuje vytvoreni otazky, spravu klientu atd.
survey-web-client
Cast aplikace zajistujici transport leadu smerem k odberateli. Muze byt reseno:
- automatickym emailem
- automatickym odeslanim v GET/POST formatu
- automatickym odeslanim v jinem formatu, napr. XML,csv a pod
- rucnim stazenim klientem
- rucnim stazenim a odeslanim nasim BackOfficem
survey-web-core
Tajna cast aplikace, o ktere nikdo nic nevi :). Ale v podstate je to spolecne jadro, nad kterym bezi vyse zminene aplikace. Je vyclenene proto, aby nedochazelo k duplikaci kodovani.
Mozne obchodni modely
- Primy prodej leadu jednotlivym klientum
- Preprodej leadu klientum na zaklade odpovedi na obecnou otazku
- Pronajem ankety pro vlastni sber leadu, pripadne anketu
Casova linka
- stage 1 - zakladni sber leadu, ankety/otazky tvori administrator, rozesilku leadu resi pouze backoffice
- stage 2 - zakladni typy otazek si muze zadavat obchodnik (pouceny spravce), rozesilka leadu je resena castecne automaticky
- stage 3 - rozesilka leadu je resena automaticky, klient si sam muze stahnout sve leady schvalene backofficem
Stage 1
Aplikace pro tuto fazi vyvoje je potreba uvest do nasledujiciho stavu:
- survey-web - umi zobrazovat na zaklade html kodu vsechny typy otazek, po vyplneni spravne rozdistribuuje sebrane informace
- survey-web-admin - rozumi si s anketou, dokaze zobrazit alespon seznam anket, otazek a pod
- survey-web-client - umoznuje pro backoffice jednoduchou kontrolu sebranych leadu, jejich export do csv pripadne prime odeslani emailem.
TODO 1 - dopsat to jako zadani tak, aby to bylo na zacatku ledna spustitelne. COre cast nezapisuju, protoze ta bude funkcni v pozadovanem rozsahu jednotlivych casti.
Osoby a obsazeni
Seznam roli a jejich ucel - popisuje stav pro beh systemu, ne programovani. Ucelem odstavce je stanovit, kdo vsechno se na behu podili, jakou ma odpovednost a kam ma pristup.
- obchodnik - prinasi zakazky podle stanoveneho obchodniho modelu, je v kontaktu s klientem a administratorem
- administrator - ROLE_ADMIN - zadava a udrzuje ankety, vytvari otazky, je v kontaktu s administratorem
- backoffice - ROLE_OPERATOR - procistuje a odesila leady klientovi podle stanovenych pravidel
- klient (Inquirer) - odebira leady, je primarne v kontaktu s obchodnikem, pripadne backofficem
- affiliate - ten, kdo privadi zakazniky/leady na stranky
- navstevnik - ROLE_ANONYMOUS - takovy by se nemel dostat do administrace, maximalne muze vyplnit anketu
Klient (Inquirer)
V systemu je zastoupen roli ROLE_INQUIRER. Zatim nic nesmi, je bez prihlaseni.
Ve fazi 1 jsou mu zasilany mailem leady - nejdulezitejsim udajem je tedy funkcni email. Dalsi udaje budou tedy udaje pro fakturaci.
Navrh struktury:
public class Inquirer {
private int id;
/**
* Kontaktni email klienta
*/
private String contactEmail;
/**
* Emailova adresa pro zasilani souboru leadu
*/
private String exportEmail;
}
Partneri
Zajisteni privedeni provozu na stranky.
presmerovani kampane
http://{url}/r/{campaign_id}/{site_id}/{partner_id}/{tag}/ nebo http://partner.rem.cz/r/{campaign_id}/{site_id}/{tag}/
- partner_id - ktery partner se snazi dostat na stranky - muze byt schovano za site_id
- site_id - stranka, odkud partner prisel
- campaign_id - kam se partner snazi dostat
- tag - podrobnejsi cleneni klienta
Prepisovaci pravidla pro htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{THE_REQUEST} /survey-partners/r/([^/]+?)/([^/]+?)/([^/]+?)/
RewriteCond %{REQUEST_URI} !/survey-partners/index.php$
RewriteRule . /survey-partners/index.php?cid=%1&sid=%2&tag=%3 [QSA,L]
</IfModule>
umisteni banneru
http://{url}/i/{campaign_id}/{side_id}/{tag}/{banner_id}.(jpg|png|gif)
- campaign_id - kampan, zajisti presmerovani na prislusne stranky
- side_id - odkud partner prisel
- banner_id - poradi banneru
- tag - podrobnejsi cleneni klienta