Středoškolská odborná činnost 2006/2007 Obor 13 – Ekonomika a řízení
CRM: Manager
Autor: Petr Kadleček Gymnázium, Praha 6, Arabská 14 160 00 Praha 6, 4. ročník
Konzultant práce: Ing. Božena Mannová, M. Math FEL ČVUT, Praha
Prohlašuji tímto, že jsem soutěžní práci vypracoval samostatně pod vedením Ing. Boženy Mannové, konzultoval se společností VUSTE-APIS, s.ro. a uvedl v seznamu literatury veškerou použitou literaturu a další informační zdroje včetně Internetu.
V Praze dne 21.3.07
______________________ Podpis autora
Anotace Česky CRM Manager je internetový systém správy kontaktu se zákazníky a částečně systém plánování chodu menší společnosti vyvíjen s pomocí moderní technologie AJAX. Jeho hlavní dominantou je systém ukládání jednotlivých složek dokumentů, který je navržen pro maximální možnou adaptaci s již zaběhnutým prostředím firmy. Uživatel může zobrazovat potřebné kontaktní informace k danému zákazníkovi ve specifickém dokumentu jedním stiskem tlačítka. Může využít online kalendáře pro lepší plánování schůzek, telefonátů atp., nahrávat soubory spjaté s daným stavem dokumentu a nechat odeslat automaticky generovaný e-mail, který se podle šablony sám vyplní.
English CRM Manager is online fully World Wide Web accessible customer relationship management software and partially enterprise resource planning software for small companies written with use of AJAX technology. Main document system is designed to be as dynamic, modular and acquirable as possible by its state method of information and data storage. CRM Manager speeds up company processes considerably. User is able to see customers and contacts information linked to a document on demand just with one click. He can use included calendar for better appointment planning, upload files that corresponds to a state of current document and send automatic generated e-mails with predefined dynamic content depending on fields of the document.
Obsah 1. ÚVOD .................................................................................................................................... 6 1.1 CRM OBECNĚ .................................................................................................................... 6 1.2 ROZHLÉDNUTÍ.................................................................................................................... 6 2. ZADÁNÍ ................................................................................................................................ 7 2.1 NEFORMÁLNÍ ZADÁNÍ ........................................................................................................ 7 2.2 ODBORNÝ ČLÁNEK............................................................................................................. 7 2.3 POŽADAVKY ...................................................................................................................... 8 2.4 ČASOVÝ PLÁN .................................................................................................................... 9 3. ANALÝZA .......................................................................................................................... 10 3.1 KONTEXTOVÝ DIAGRAM .................................................................................................. 10 3.2 PŘÍPADY UŽITÍ (USECASES) .............................................................................................. 11 3.3 SYSTÉM DOKUMENTŮ ...................................................................................................... 12 3.4 DATOVÝ MODEL .............................................................................................................. 12 3.5 FUNKČNÍ MODEL .............................................................................................................. 18 4. NÁVRH ............................................................................................................................... 19 4.1 MODULY .......................................................................................................................... 19 4.2 SPECIFIKACE .................................................................................................................... 19 4.3 UŽIVATELSKÉ ROZHRANÍ ................................................................................................. 20 5. IMPLEMENTACE ............................................................................................................ 22 5.1 SERVER ............................................................................................................................ 22 5.1.1 Databáze .................................................................................................................. 22 5.1.2 Webový server .......................................................................................................... 22 5.1.3 Interpret ................................................................................................................... 22 5.2 KLIENT ............................................................................................................................ 22 5.2.1 Prohlížeč .................................................................................................................. 22 6. TESTOVÁNÍ ...................................................................................................................... 22 7. ZÁVĚR................................................................................................................................ 23 POUŽITÁ LITERATURA A INTERNETOVÉ STRÁNKY ............................................. 24
PŘÍLOHA – LOGO ............................................................................................................... 25 PŘÍLOHA - LEAFLET ......................................................................................................... 25
1. Úvod 1.1 CRM obecně Systém, který byl dříve jen doménou velkých nadnárodních společností, se stává díky rozrůstajícímu se trhu primární aplikací k udržení kontaktu se zákazníky. Řeší identifikaci, správu, požadavky zákazníka na produkt a snaží se docílit vyšší spokojenosti. V zásadě udržuje komunikační cyklus mezi zákazníkem a dodavatelem, jehož spletitost může být různorodá. Proto také existuje mnoho různých přístupů, jak má takový CRM fungovat. Jedním ze základních principů, který je aplikovaný i v CRM:Manageru, je princip stavů. Každý incident se skládá z několika specifických kroků (např. identifikace, kontakt, prezentace…), které obsahují informace vázané k zákazníkovi pro daný krok (tedy stav). Mezi nimi je možné se přepínat a tím docílit posunutí fáze cyklu vztahu se zákazníkem.
1.2 Rozhlédnutí Nabídka systémů CRM a ERP je dnes velmi široká – a to nejen z hlediska funkčnosti, ale i z cenového hlediska. Stačí zadat do Googlu vyhledávací frázi CRM a zobrazí se spousta nejen sponzorovaných odkazů typu „Microsoft Dynamics CRM“ či „CRM za 499 Kč?“. Co je však mnohem více udivující je fakt, že zde není zmínka o gigantovi jménem SAP, který se již dlouhá léta v tomto oboru drží na špičce pomyslného žebříčku. SAP je považován za čtvrtou největší softwarovou společnost na světe hned po Microsoftu, IBM a Oraclu. Aplikace mySAP CRM nabízí řešení, které využívají především velké mezinárodní společnosti. První fakt je ten, že řešení od SAPu není zrovna nejlevnější. Ve světě je to standard, nicméně se výdaje mohou pohybovat i kolem milionu ročně, což je pro menší a středně velké společnosti neúnosné. SAP naopak nabízí extrémní stabilitu, 24/7 podporu a servis, školení a další náležitosti spojené s provozem jejich systému. Vše je kvůli přenositelnosti napsané v Jave, tudíž není problém jejich aplikaci provozovat jak na Windows, tak na Linuxu – prostě na všem, kde běží JVM. Na druhé straně stojí Microsoft Dynamics CRM, který běží jen na platformě Windows. Mnohým firmám však řešení od Microsoftu více či méně nevyhovuje. Je potřeba mít server s Windows, serverovou část aplikace Microsoft Dynamics CRM a dále klientské části. Licence pro jeden server a deset uživatelů vyjdou na 162 593,- a to se nezapočítává licence Windows Serveru atd. Nakonec existuje velmi levné řešení, u kterého se však nedá očekávat velká podpora. Je vhodné pro menší společnosti, které potřebují nějaký systém a dokáží se mu přizpůsobit. Existují i open source řešení – hledejte však firmu, která
by spoléhala na projekt tohoto typu. Náklady na zaplacení veškerého příslušenství a případné úpravy by se asi vyšplhaly výše než nad komerční řešení.
2. Zadání 2.1 Neformální zadání Vytvořte systém pro správu kontaktu s klienty společnosti a jejich reporty - tedy CRM (Customer Relationship Management) – zároveň s jednoduchou podporou správy chodu menší společnosti ERP (Enterprise Resource Planning). Celý systém zprovozněte ve webovém prohlížeči bez použití speciálních pluginů, aby bylo možné se připojit odkudkoliv a kdykoliv. Zároveň jsou kladeny vysoké nároky na uživatelské rozhraní – uživatel se musí v aplikaci rychle zorientovat, měla by se zachovat podobnost se standardními GUI (Graphical User Interface) aplikacemi. 2.2 Odborný článek Každá společnost vytvářející produkty, které následně prodává, či dokonce obchodní prostředník – dealer – potřebuje systém, který mu umožní zaznamenávat jednotlivé obchodní kontakty a který ulehčí celkovou komunikaci se zákazníky. Toto vystihuje zkratka CRM – Customer Relationship Management.
Takový systém by měl obsahovat databázi uživatelů, správu uživatelů na úrovni administrace se systémem uživatel – role – funkce. Každý uživatel by tak měl jasně stanovená práva a mohl by jen to co mu systém dovolí. Pokud má být univerzální, měl by umožnit sestavovat jednotlivé (nejen) obchodní procesy, které budou charakterizovány tzv. stavy dokumentu a jednotlivé stavy by obsahovaly položky od jednoduchého typu textového pole, přes datumové pole, odkazy na další obchodníky (uživatele systému), seznamy zákazníků, kontaktů na zákazníky, odbory atd. až po WYSIWYG editor umožňující vkládat dokumenty z Excelu, Wordu atd… Dále by se ke každému stavu měl dát připojit jeden či více souborů, který k danému stavu patří. Další vymoženosti jsou automaticky generované e-maily podle šablon při ukládání stavu, možnost editace takového e-mailu, možnost zadat (nejen) vnitro-firemní úkol k danému stavu. Vše by měl zpřehledňovat jeden malý kalendář při rychlém výběru datumového pole a jeden velký kalendář, který by již obsahoval další aktivity, úkoly atd.
Všechny typy obchodních procesů (dokumenty) by měly mít svůj vlastní přehled, v kterém by se daly filtrovat různé položky nejlépe s podporou regulárních výrazů, řadit atd. Jednou z mála potřebných věcí je úschovna důležitých firemních dokumentů, na které by mohl být přidán odkaz ze stavu dokumentu. Taková úschovna by umožňovala nahrávání souborů, jejich přejmenování, přidání popisek, práv atd.
Systém by měl být intuitivní a jednoduchý. Ne každý obchodník musí být programátor a naopak. Aby se docílilo plné kompatibility mezi operačními systémy, bude systém dostupný webovým prohlížečem.
2.3 Požadavky Návrh on-line CRM systému nabývá dokonalosti právě v seznamu požadavků, který je naprosto minimální. Veškeré CRM systémy, které běží na .NET frameworku, JAVĚ, či jiných rádoby multiplatformních systémech mají jeden velký hendikep. Jejich přístupnost a přenositelnost bývá otřesná. Projekt CRM:Manager klade důraz právě na tyto dvě vlastnosti a je tím specifický. Z hlediska uživatele se dají požadavky pokládat za naprosto mizivé. Bereme-li v úvahu, že prohlížeč úrovně Gecko enginu z roku 2001 dnes obsahuje každý používaný desktopový operační systém, pak lze tvrdit, že pro správnou funkci CRM:Manageru nepotřebujete kromě počítače s operačním systémem a přístupem k Internetu vůbec nic. Z hlediska serveru se nabízí varianta CRM hostingu. To se dá považovat za průlom v přístupu k samotnému CRM, protože by mohly dostat zájem i menší společnosti, které by jinak o CRM ani neuvažovali – a to kvůli cenové relaci. Tímto způsobem by se mohl CRM rapidně rozšířit a samotná údržba systému by byla triviální. Nemusí se nic instalovat, stačí se jen přihlásit a to ještě odkudkoliv. Systém hostingu by se dal relativně jednoduše zakomponovat a případné problémy by se řešily rovnou na serveru dodavatele hostingu. Oproti klientu od společnosti SAP, který vyžaduje stahování speciálních updatů, se jedná o významné plus. Jelikož je systém navržen a napsán ve volně dostupných systémech, které jsou navíc zdarma a licenční politika umožňuje jejich použití i pro komerční sféru, jedná se o ryze nízkonákladovou aplikaci. Samotný pojem „Hosted CRM“ již existuje; není však ještě zažitý a firmy se obávají o svá soukromá data. Otázkou je, co by se přihodilo, kdyby s tím vyšel například Google.
2.4 Časový plán Časový plán obsahuje základní časové intervaly, které jsou vymezeny pro tvorbu projektu. Zde je tabulka časového plánu z programu Microsoft Project: Task Name Zadání ročníkové práce Analýza ročníkové práce Návrh implementace ročníkové práce Testing - odevzdání ročníkové práce Datový model systému dokumentů Implementace AJAX
Duration 1 day 36 days 44 days 21 days 8 days 5,5 days
Implementace systému dokumentů
7 days
Kontakty, zákazníci Kalendář Systém automat. generovaných e-mailů
4 days 9 days 8 days
Graf z MS Project:
Start Finish 9.10.2006 8:00 9.10.2006 17:00 10.10.2006 8:00 28.11.2006 17:00 30.11.2006 8:00 30.1.2007 17:00 31.1.2007 8:00 28.2.2007 17:00 8.12.2006 13:00 20.12.2006 12:00 1.12.2006 8:00 8.12.2006 12:00 20.12.2006 13:00 29.12.2006 12:00 29.12.2006 13:00 4.1.2007 12:00 4.1.2007 13:00 17.1.2007 12:00 17.1.2007 13:00 29.1.2007 12:00
3. Analýza 3.1 Kontextový diagram
Administrator - ovládá administrační rozhraní - nastavuje práva - spravuje šablony - resetuje hesla uživatelských účtů ...
CRM Manager Kernel
Vedoucí
DB
Uživatel
Ředitel
- nahrávání souborů - správa dokumentů - přidávání zákazníků, kontaktů - zakládání nových dokumentů - podle nastavení mají jednotliví užitalé přístup k daným sekcím ...
3.2 Případy užití (usecases)
registrace, přihlášení
změna stavu dokumentu
Uživatel
vytvoření kontaktu
prohlížení dokumentu vytváření dokumentu
vytvoření zákazníka
ověření registrace, přidělení práv
administrace, práva Vedoucí
založení nové složky
Administrator
3.3 Systém dokumentů
Základní myšlenka celého projektu je naprogramovat takový systém uspořádání dokumentů, na který se dá nasadit jakýkoliv zápis počínaje obchodním případem, konče zadáním úkolu v rámci firmy. Systém je vhodné řešit systémem stavů dokumentů, který se osvědčil ve společnosti VUSTE-APIS. Jako příklad si můžeme vzít obchodní případ. Ten se může skládat z hlavičky dokumentu (název, datum vytvoření, zakladatel…), stavu „Identifikace“, který obsahuje kontaktní údaje, útvary, poznámky a další specifické údaje (např. počet předpokládaných licencí). Další stavy mohou být: Kontakt, Prezentace, Jednání, Provoz, Objednávka, Implementace, Servis, …. V databázi tedy existuje určitý vzor, podle kterého se následně celý detail dokumentu generuje.
3.4 Datový model
Následuje výpis tabulek z databáze, jednotlivé sloupce, typy proměnných. Poté výpis uložených procedur (stored procedures) uložených v Postgresql databázi a výpis jednotlivých pohledů v databázi použitých v projektu.
3.5 Funkční model
Základní funkční model CRM:Manageru obsahující stavové prvky spolu s přímým napojením na kalendář a podporou emailových šablon.
4. Návrh 4.1 Moduly Jádro serveru (tedy část interpretu) se skládá z modulů, které spolu komunikují. Základním modulem je připojení k databázi (mod_pgsql). Výhodou systému modulů je možnost zaměnit daný modul za jiný. Takže v případě změny typu databáze například z MySQL na PostgreSQL, či z PostgreSQL na Oracle není nutné přepisovat celý kód, ale přepsat jen daný objektově navržený modul. 4.2 Specifikace
4.3 Uživatelské rozhraní Uživatelské rozhraní CRM:Manageru se snaží přiblížit standardnímu chování aplikací jako známe
například
ze
systému
Microsoft
Windows. Hlavní panel je stejný jako ve většině GUI aplikací, tedy horní panel s rozjíždějícími panely. Výhodou použité technologie Ajax lze dosáhnout i dalších akcí jako je otevření více oken
naráz,
minimalizace,
maximalizace,
zavírání jednotlivých oken atd. To je na webovou aplikaci velice nezvyklá vlastnost, která však velmi urychlí a zpříjemní práci s programem.
Ukázka administračního okna zobrazuje možnosti okno zavřít, upravit uživatelské informace, obsahuje
okno
rychlého
vyhledávání a možnost přidat uživatele.
Při
klepnutí
na
uživatele se dále zobrazí jeho jednotlivé role, které mu lze přiřadit a při klepnutí na roli lze ještě upravit jednotlivé možnosti a funkce integrované v systému. Okno lze zobrazit nezávisle na dalších otevřených oknech. Obdobně vypadá i systémový průzkumník.
Další snímek ukazuje seznam jednotlivých dokumentů (např. obchodních případů). V tomto seznamu je možné velmi rychle vyhledávat, řadit, filtrovat. Při klepnutí na řádek s dokumentem se zobrazí jeho detail.
Detail dokumentu obsahuje hlavičku a následně jednotlivé stavy. Dokumentů je možné otevřít více naráz, je možné je minimalizovat, maximalizovat a zavřít. Každý stav obsahuje položky (textové, datum – využití kalendáře, číselníkové – zobrazení speciálního vyhledávacího okna, …) – jak je vidět na dalším snímku.
5. Implementace 5.1 Server Serverová část je složená ze dvou základní částí: •
Databáze
•
Jádro
5.1.1 Databáze PostgreSQL verze 8.1.4 5.1.2 Webový server Apache/2.0.55 5.1.3 Interpret PHP Version 5.1.4-0.1 5.2 Klient 5.2.1 Prohlížeč Internet Explorer 6+, Gecko engine (Mozilla Firefox 1.5+)
6. Testování CRM:Manager je svým pojetím zcela výjimečná aplikace, proto je nutné každý kus kódu zvlášť důkladně otestovat. V pozdějších fázích vývoje se muselo dávat i pozor na automatické odesílání emailových šablon, které nejednou způsobily zahlcení schránky. Samotný proces testování probíhal ve třech fázích. První fáze testování byla ihned po naprogramování kusu kódu. Druhá fáze probíhala po naprogramování většího celku aplikace. V tuto chvíli se otestovaly všechny funkce a udělalo se případné opravy. Třetí fáze probíhá v době psaní této práce, tedy dokončování první verze, načtením dat atd. CRM:Manager by bylo vhodné otestovat v „Usability labu“, který by prověřil uživatelskou přívětivost aplikace.
7. Závěr Vývoj aplikace vycházel ze základního modelu předchozí verze, která nebyla psaná s podporou AJAXu. Nová verze – tedy CRM:Manager – se inspirovala datovou strukturou databáze. Nově jsou v ní posíleny hlavně funkce stored procedures s jazykem pgsql a pohledů (views), které se využívají například pro přehled incidentů. Nový způsob komunikace s uživatelem umožňuje velice rychlou interakci. Umožňuje například zobrazit adresu, telefon a další kontaktní informace, aniž by se zavíralo/otevíralo jiné okno.
Značně jsem si prohloubil znalosti JavaScriptu, XHTML a CSS, takže plánuji udělat ještě revolučnější GUI, které bych rád aplikoval na aktuální jádro. Narazil jsem také na problém kompatibility prohlížečů. Ten považuji ve vývoji asi za největší zpomalení. Neustálé testování mezi prohlížeči, které často nesplňují standardy. Nejspíš to odrazuje tolik programátorů od vývoje webových aplikací.
Ve spolupráci se společností VUSTE-APIS se podařilo vytvořit fungující (zatím v testovací fázi) produkt, který se dokázal uchytit a je význačný ve svém provedení převážně tím, že dokázal překonat bariéry standardních webových aplikací. Je rychlejší, intuitivněji se s ním pracuje a využívá potenciál dostupných technologií.
Použitá literatura a internetové stránky 1. Pavel Töpfer – Algoritmy a programovací techniky, Prometheus, Praha 1995 2. www.wikipedia.org – internetová encyklopedie 3. www.php.net – internetová stránka projektu PHP 4. www.postgresql.com – internetová stránka databáze PostgreSQL 5. www.apache.org – inetrnetová stránka webového serveru Apache
Příloha – logo
Příloha - leaflet