Last active
December 16, 2015 11:49
-
-
Save iiic/5430238 to your computer and use it in GitHub Desktop.
něco o vývoji, úkoly, instalace, potřebné technologie a tak.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<div> | |
<h2>Reprezentativní uživatelé</h2> | |
<ul> | |
<li>admin@heslo.je.admin - role: admin</li> | |
<li>studijni@heslo.je.studijni - role: studijni</li> | |
<li>garant@heslo.je.garant - role: garant</li> | |
<li>vedouci@heslo.je.vedouci - role: vedouci</li> | |
<li>student@heslo.je.student - role: student</li> | |
<li>pokus@heslo.je.pokus - role: student</li> | |
</ul> | |
</div> | |
<hr> | |
<div> | |
<h2>Použité technologie</h2> | |
<ul class="no-idents"> | |
<li><b>Serverová část</b> | |
<ul> | |
<li>server httpd Apache <span class="version">2.2.15</span> - <a href="http://httpd.apache.org/">http://httpd.apache.org/</a></li> | |
<li>PHP <span class="version">5.4.13</span> - <a href="http://www.php.net/">http://www.php.net/</a> (minimální potřebná verze je <span class="version">5.3.6</span> pro funkci <code>SplFileInfo::getExtension</code> - <a href="http://www.php.net/manual/en/splfileinfo.getextension.php">http://www.php.net/manual/en/splfileinfo.getextension.php</a>) | |
<ul> | |
<li><b>nutná rozšíření PHP:</b></li> | |
<li>Multibyte String extension - <a href="http://php.net/manual/en/book.mbstring.php">http://php.net/manual/en/book.mbstring.php</a></li> | |
<li>PDO extension - <a href="http://php.net/manual/en/book.pdo.php">http://php.net/manual/en/book.pdo.php</a></li> | |
</ul> | |
</li> | |
<li>MySQL <span class="version">5.5.29</span> - <a href="http://www.mysql.com/">http://www.mysql.com/</a> (není nutné použít právě mysql, ale je možné použít další populární alternativy jako Oracle, PostgreSQL, MSSQL, Sqlite, … při instalaci pak stačí jediné, nastavit jiný ovladač databáze)</li> | |
<li>Doctrine <span class="version">2.3.3</span> - <a href="http://www.doctrine-project.org/">http://www.doctrine-project.org/</a></li> | |
<li>Nette Framework <span class="version">2.0.10</span> - <a href="http://nette.org">http://www.php.net/</a></li> | |
<li>Venne CMS <span class="version">2.0.0</span> - <a href="http://venne.github.io/">http://venne.github.io/</a> | |
<ul> | |
<li><b>použité moduly (možnost instalace přes Composer):</b></li> | |
<li>venne/assets-module</li> | |
<li>venne/cms-module</li> | |
<li>venne/doctrine-module</li> | |
<li>venne/forms-module</li> | |
<li>venne/framework</li> | |
<li>venne/gedmo-module</li> | |
<li>venne/googleanalytics-module</li> | |
<li>venne/less-module</li> | |
<li>ic/appearanice-module</li> | |
<li><i>(ostatní moduly, které jsou součástí práce není možné volně stáhnou na internetu)</i></li> | |
</ul> | |
</li> | |
<li>Lessphp <span class="version">0.3.9</span> - <a href="http://leafo.net/lessphp/">http://leafo.net/lessphp/</a> (postavené na projektu Less - <a href="http://lesscss.org/">http://lesscss.org/</a>)</li> | |
</ul> | |
</li> | |
<li><b>Klientská část</b> | |
<ul> | |
<li>HTML5 <span class="version">5.1</span> - <a href="http://dev.w3.org/html5/spec/">http://dev.w3.org/html5/spec/</a></li> | |
<li>CSS <span class="version">Level 3</span> - <a href="http://www.w3.org/Style/CSS/">http://www.w3.org/Style/CSS/</a></li> | |
<li>ECMAscript (javascript) <span class="version">edition 5</span> - <a href="http://www.ecmascript.org/">http://www.ecmascript.org/</a></li> | |
<li>html5shiv <span class="version">3.6.2</span> - <a href="https://github.com/aFarkas/html5shiv">https://github.com/aFarkas/html5shiv</a></li> | |
<li>jQuery <span class="version">1.8.2</span> - <a href="http://jquery.com/">http://jquery.com/</a></li> | |
<li>normalize.css <span class="version">2.0.1</span> - <a href="http://necolas.github.io/normalize.css/">http://necolas.github.io/normalize.css/</a></li> | |
<li>Glyphicons (Bootstrap version) - <a href="http://glyphicons.com/">http://glyphicons.com/</a></li> | |
</ul> | |
</li> | |
<li><b>Nástroje použité pro vývoj</b> | |
<ul> | |
<li>NetBeans IDE <span class="version">7.3</span> - <a href="https://netbeans.org/">https://netbeans.org/</a> | |
<ul> | |
<li><b>pluginy:</b></li> | |
<li>PHP Nette Framework - <a href="http://plugins.netbeans.org/plugin/32720/">http://plugins.netbeans.org/plugin/32720/</a></li> | |
</ul> | |
</li> | |
<li>PSPad <span class="version">4.5.7</span> - <a href="https://pspad.com/">https://pspad.com/</a></li> | |
<li>GitHub for Windows <span class="version">1.0.41.2</span> - <a href="http://windows.github.com/">http://windows.github.com/</a> (má v sobě instalaci GITu)</li> | |
<li>XAMPP <span class="version">1.8.1</span> - <a href="http://www.apachefriends.org/en/xampp.html">http://www.apachefriends.org/en/xampp.html</a></li> | |
<li>Composer <span class="version">1.0.0-alpha6</span> - <a href="http://getcomposer.org/">http://getcomposer.org/</a></li> | |
<li>WinSCP <span class="version">5.1.4</span> - <a href="https://winscp.net/">https://winscp.net/</a></li> | |
<li>PuTTY <span class="version">0.62</span> - <a href="http://www.putty.org/">http://www.putty.org/</a></li> | |
<li>Google Chrome <span class="version">26.0.1410.64 m</span> - <a href="http://www.google.com/intl/cs/chrome/browser/">http://www.google.com/intl/cs/chrome/browser/</a> | |
<ul> | |
<li>konzola 'Nástroje pro vývojáře'</li> | |
<li>rozšíření (un)clrd - <a href="https://chrome.google.com/webstore/detail/unclrd/pjahllgfmfgobhbkjiaohonjejpnkfkh">https://chrome.google.com/webstore/detail/unclrd/pjahllgfmfgobhbkjiaohonjejpnkfkh</a></li> | |
<li>rozšíření Dev HTTP Client - <a href="https://chrome.google.com/webstore/detail/dev-http-client/aejoelaoggembcahagimdiliamlcdmfm">https://chrome.google.com/webstore/detail/dev-http-client/aejoelaoggembcahagimdiliamlcdmfm</a></li> | |
<li>rozšíření Edit This Cookie - <a href="https://chrome.google.com/webstore/detail/edit-this-cookie/fngmhnnpilhplaeedifhccceomclgfbg">https://chrome.google.com/webstore/detail/edit-this-cookie/fngmhnnpilhplaeedifhccceomclgfbg</a></li> | |
<li>rozšíření Microformats for Google Chrome™ - <a href="https://chrome.google.com/webstore/detail/microformats-for-google-c/oalbifknmclbnmjlljdemhjjlkmppjjl">https://chrome.google.com/webstore/detail/microformats-for-google-c/oalbifknmclbnmjlljdemhjjlkmppjjl</a></li> | |
<li>rozšíření Web Developer - <a href="https://chrome.google.com/webstore/detail/web-developer/bfbameneiokkgbdmiekhjnmfkcnldhhm">https://chrome.google.com/webstore/detail/web-developer/bfbameneiokkgbdmiekhjnmfkcnldhhm</a></li> | |
</ul> | |
</li> | |
</ul> | |
</li> | |
<li><b>Správné zobrazení testováno na prohlížečích</b> | |
<ul> | |
<li>Google Chrome <span class="version">26.0.1410.64 m</span> - <a href="http://www.google.com/intl/cs/chrome/browser/">http://www.google.com/intl/cs/chrome/browser/</a></li> | |
<li>Mozilla Firefox <span class="version">20.0.1</span> - <a href="http://www.mozilla.org/cs/firefox">http://www.mozilla.org/cs/firefox</a></li> | |
<li>Internet Explorer <span class="version">10.0.9200.16540</span> - <a href="http://windows.microsoft.com/cs-cz/internet-explorer/download-ie">http://windows.microsoft.com/cs-cz/internet-explorer/download-ie</a></li> | |
<li>Opera <span class="version">12.15</span> - <a href="http://www.opera.com/cs/">http://www.opera.com/cs/</a></li> | |
<li>Maxthon cloud browser <span class="version">4.0.5.4000</span> - <a href="www.maxthon.com/">www.maxthon.com/</a></li> | |
</ul> | |
</li> | |
</ul> | |
</div> | |
<hr> | |
<div> | |
<h2>Postup instalace (z linuxového serveru s podporou PHP)</h2> | |
<ul> | |
<li><b>Test konfigurace webového serveru</b> | |
<ul> | |
<li>Stáhnout nástroj Nette Requirements Checker - <a href="https://github.com/nette/tools/tree/master/Requirements-Checker">https://github.com/nette/tools/tree/master/Requirements-Checker</a> a umísti ho do konřenového adresáře webu.</li> | |
<li>Z prohlížeče zobrazit URL adresu, na které je umístěn soubor <code>checker.php</code></li> | |
<li>Opravit případné chyby</li> | |
</ul> | |
</li> | |
<li><b>Instalace Venne CMS</b> | |
<ul> | |
<li>Nainstalovat nástroj composer (<a href="http://getcomposer.org/download/">http://getcomposer.org/download/</a>), provést jeho update příkazem <code>composer self-update</code></li> | |
<li>Přepnout se do složky, do které zamýšlím instalovat CMS (například <code>cd /var/www</code>)</li> | |
<li><b>Instalovat Venne CMS dle doporučeného zadání:</b> | |
<ul> | |
<li><code>composer create-project venne/sandbox:2.0.x-dev myApp</code></li> | |
<li><code>cd myApp</code></li> | |
<li><code>composer require venne/cms-module:2.0.x</code></li> | |
<li><code>php www/index.php venne:module:update</code> (pro poslední 2 příkazy musí být už zapnutý php preprocesor)</li> | |
<li><code>php www/index.php venne:module:install cms</code></li> | |
</ul> | |
</li> | |
</ul> | |
</li> | |
<li><b>Instalace modulů vytvořených speciálně pro dané zadání</b> | |
<ul> | |
<li><b>Instalace frontend layoutu se provádí pomocí příkazů composeru</b> | |
<ul> | |
<li><code>composer require ic/appearanice-module:1.0.x</code></li> | |
<li><code>php www/index.php venne:module:update</code></li> | |
<li><code>php www/index.php venne:module:install appearanice</code></li> | |
</ul> | |
</li> | |
<li>Ostatní moduly se manuálně zkopírují do složky <code>vendor/venne/</code></li> | |
</ul> | |
</li> | |
<li>Z důvodu rozšíření uživatelské entity se bohužel musí prověst i několik zásahů do samotného CMS. Překopírovat tyto soubory z bitbucket repozitáře | |
<ul> | |
<li>vendor/venne/cms-module/CmsModule/Administration/Presenters/templates/UsersPresenter.php</li> | |
<li>vendor/venne/cms-module/CmsModule/Content/Forms/Controls/RegistrationFrontFormFactory.php</li> | |
<li>vendor/venne/cms-module/CmsModule/Forms/UserFormFactory.php</li> | |
<li>vendor/venne/cms-module/CmsModule/Security/Entities/UserEntity.php</li> | |
</ul> | |
</li> | |
<li><b>Konfigurace projektu přes prohlížeč</b> | |
<ul> | |
<li><b>Pro správnou instalaci Venne je nutné nastavit možnost zápisu do některých složek (chmod 777):</b> | |
<ul> | |
<li><code>app/config</code></li> | |
<li><code>app/data</code></li> | |
<li><code>app/temp</code></li> | |
<li><code>www/cache</code></li> | |
<li><code>www/public</code></li> | |
<li><code>www/resources</code></li> | |
</ul> | |
</li> | |
<li>Z prohlížrče navštívit adresu, která slouží jako index daného projektu</li> | |
<li>Pokus se vyskytnou nějaké chyby dá se zjistit, co se stalo editací souboru <code>www/index.php</code>, kde zapnu debug mode vložením <code>$configurator->setDebugMode(TRUE);</code> mezi řádky 12 a 13. (Jedním z problémů může být bug Composeru, který způsobuje, že soubory jsou nepřístupné. Pomůže je přesunout na lokální disk, a následně vrátit zpět na server.)</li> | |
<li>V dalším kroku je nutné vytvořit administrátora projektu (tento účet bude k dispozici i případě nefunkčnosti databáze)</li> | |
<li>Následně se nastaví připojení k databázi. Pokud zatím žádná databáze neexistuje s jejím vytvořením pomůže nástroj Adminer dostupný z <code>www/adminer/</code>, stačí zadat jméno nové databáze a její kódování. Ve venne se následně vybere vhodný ovladač databáze (mysqli, pdo_mysql, pdo_oracle, pdo_pgsql, pdo_sqlite, pdo_sqlsrv), vyplní se přístupové údaje a zvolí kódování stejně, jako při vytváření databáze. (V případě exportu databáze z Windows do Linuxu může nastat problém s názvy tabulek… například tabulka staticpage, která pod Windowsy bez problémů funguje bude na Linuxu dělat požíže, protože systém hledá tabulku staticPage a narozdíl od Windowsů mu staticpage nestačí a bude hlásit nedostupnost. Proto je třeba některé názvy tabulke potřeba změnit dle vypsané chyby systému.)</li> | |
<li>V posledním kroku se vybere jazyk budoucího projektu a je hotovo.</li> | |
</ul> | |
</li> | |
<li><b>Před prvním použitím</b> | |
<ul> | |
<li>Následně je nutné v administraci vytvořit nový layout z v předchozích krocích nainstalovaného appearanice-module. V levém slouci záložka <i>Layouty</i>, nebo <i>Obsah/Správa layoutů</i>, zde kliknou na tlačítko Vytvořit, napsat libovolné označení a vybrat <i>appearanice/basic</i>.</li> | |
<li>Důležité je nezapomenout nainstalovat dříve ručně zkopírované moduly v <i>Systém/Správá modulů</i>. Napřed kliknutím na tlačítko <i>Obnovit databázi</i> načtete jejich seznam a násldně kliknete na tlačítko <i>Instalovat</i> u každého z nich.</li> | |
<li>V nabídce <i>Obsah/Správa stránek</i> už snadno začnete tvořit obsah.</li> | |
<li>Přesvěčte se, že z webového serveru jsou přístupné pouze soubory ve veřejné složce <code>www/</code> a že nejsou přístupné soubry ve složkách projektu <code>app/</code> a <code>vendor/</code>. Zvláště nebezpečné by bylo, pokud by byly přístupné soubory konfigurace například <code>app/config/config.neon</code>, ve kterém je v čitelné podobě umístěno jméno a heslo administrátora.</li> | |
</ul> | |
</li> | |
<li><b>Zásah do CMS</b> | |
<ul> | |
<li>V souboru \iszp\www\resources\cmsModule\admin\css\style.css upravit styl .modal.modal-large .modal-body… zmenšil max-height na 510px . Alespoň dokud nebude tohle opraven tímto bugreportem: <a href="https://github.com/Venne/cms-module/issues/21">https://github.com/Venne/cms-module/issues/21</a></li> | |
</ul> | |
</li> | |
</ul> | |
</div> | |
<hr> | |
<div> | |
<h2>Zajímavá zjištění</h2> | |
<ul> | |
<li>V případě chyby javascriptu se znovu vytvoří cookie PHPSESSID, čímž dojde k odhlášení přávě přihlášeného uživatelel. Z toho důvodu je nutné se chybám javascriptu vyhnout.</li> | |
</ul> | |
</div> | |
<hr> | |
<div> | |
<h2>todo list (seznam úkolů)</h2> | |
<ul> | |
<li><b>nejdůležitější</b> | |
<ul> | |
<li><del>vytvořit responsivní layout (mobilní telefon, tablet, notebook, běžný monitor počítače)</del></li> | |
<li><del>udělat výpis sekce zadávání prací</del></li> | |
<li><del>přidávání nových záznamů do sekce zadávání prací</del></li> | |
<li><del>editace záznamů v sekci zadávání prací</del></li> | |
<li><del>mazání záznamů v sekci zadávání prací</del></li> | |
<li><del>udělat vlastní modul do venne pro zadávání prací</del></li> | |
<li>Vymyslet nějaké pěkné unikátní jméno pro celou aplikaci</li> | |
<li><del>Napsat úvodní odstavec o významu a účelu aplikace</del></li> | |
<li><del>Vytvořit pro studenta možnost rezervace práce</del></li> | |
<li><del>Vytvořit diskuzi vedoucího a studenta u rezervované práce</del></li> | |
<li><del>Předávání dat z thesiscollection-module do archive-module !!!<del></li> | |
<li>zprovoznit vyhledávání na webu (Google, nebo vlastní řešení?)</li> | |
<li><del>vytvořit modul pro zadávání a zveřejňování aktualit</del></li> | |
<li><del>zabezpečit modul aktualit pomocí vhodných uživatelských rolí</del></li> | |
<li><del>vytvořit modul archivu</del></li> | |
<li>zkontrolovat, jestli je nette panel viditelný jen účtu administrátora, případně to tak zajistit</li> | |
<li><del>vytvořit modul Agendy</del></li> | |
<li><del>umístit widget modulu Agendy do pravého aside sloupce</del></li> | |
<li><del>navázat automatické akce na určitý čas zvolený v agenda modulu (přesunutí práce do archivu…)</del></li> | |
<li><del>opravit jQuery kalendář, který se má zobrazovat pod datetime prvky formuláře !!!</del></li> | |
<li><del>zprovoznit virtuální server a nainstalovat na něj ukázkovou kopii projektu</del></li> | |
<li>vytvořit javascript, který po načtení stránky přesměruje na #info (čímž otevře informace o aplikaci) a javascriptem upravit menu tak, aby se v odkazech následně přenášela informace o tom, jestli jsou tyto informace zobrazeny, nebo ne.</li> | |
<li>umožnit studentovi napsat si úplně vlastní zadání (a najít si vedoucího/oponenta), které by poté garant oboru povolil, nebo neschválil</li> | |
<li><del>přidání sloupců pro závěrečný list práce do tabulky tresiscollection a rormulář pro jejich vyplnění zobrazit studentovi po rezervaci práce.</del></li> | |
<li><del>v archive modulu umožnit manuální přesun prací z thesiscollection do pre-archivu</del></li> | |
<li><del>upravit hlavní menu tak, aby každá role viděla jen své položky</del></li> | |
<li>zkontrolovat jestli jsou všechny metody tříd řádně zabezpečené</li> | |
<li><del>umožnit studentovi nahrávat soubory a vedoucímu/adminovi je prohlížet</del></li> | |
<li>k agendě dopsat nějakou nápovědu a ovládání</li> | |
</ul> | |
</li> | |
<li><b>důležité</b> | |
<ul> | |
<li>unit test a slenium testy</li> | |
<li>uživatelské testování UX</li> | |
<li>vytvořit/sehnat nějakou favikonu pro web</li> | |
<li><del>vytvořit testovací uživatelské účty pro různá oprávnění</del></li> | |
<li><del>vytvořit všechny možné role a nastavit je testovacím uživatelům</del></li> | |
<li><del>naplnit modul zadávání prací nějakými testovacími daty</del></li> | |
<li>vytvořit nějakou pěknou a užitečnou patičku stránky</li> | |
<li><del>otestovat layout na prohlížečích mobilních zařízení (telefony, tablety, čtečky) a udělat screenshoty</del></li> | |
<li><del>vytvořit css pro víceúrovňová menu, které Venne CMS umožňuje tvořit</del></li> | |
<li><del>vytvořit a ostylovat drobečkovou navigaci</del></li> | |
<li><del>umístit verzované zdrojové kódy všech modulů na bitbucket.org</del></li> | |
<li><del>k uživatelským účtům přidělit obrázky z gravataru (třeba v diskuzi a možná i u informace o přihlášeném uživateli)</del></li> | |
<li>javascripty z hlavičky umístit až na úplný konec stránky</li> | |
<li>refaktorovat moduly agendy a aktualit -> lepší názvy tříd</li> | |
<li><del>Zprovoznit real-time kompilování CSS souborů z Less souborů</del></li> | |
<li><del>naplnit modul agendy nějakými ukázkovými daty</del></li> | |
<li>nakonec si projet zdrojáky na všechny výskyty @todo komentářů a vyřešit ty poznámečky</li> | |
<li>doplnit k modulům texty vysvětlující jejich funkci a upravit je tak, aby se předmětné části zobrazovaly jen tomu, komu mají</li> | |
<li>kromě schválení práce by role garanta měla mít právo práci i neschválit, (což by ji vymazalo ze seznamu?)</li> | |
<li><del>do thesischat přidat upozorňování na to, jestli si protistrana přečetla příspěvek chatu</del></li> | |
<li><del>přímo v menu upozorňovat na počet nepřečtených příspěvků chatu s periodickou kontrolou nových záznamů chatu</del></li> | |
<li><del>v menu umožnit přidávat podsekce stránek</del></li> | |
<li><del>upravit přihlášení / odhlášení element</del></li> | |
</ul> | |
</li> | |
<li><b>nedůležité</b> | |
<ul> | |
<li>vytvořit alternativní css vzhledy</li> | |
<li><del>překlad do dalších jazyků</del></li> | |
<li>modul pro A/B testování</li> | |
<li>modul pro ankety</li> | |
<li>vytvořit vlastní grafický layout i pro backend část aplikace (administraci)</li> | |
<li>použít nějakou grafickou nástavbu (tinymce) pro textarea určené ke vkládání obsahu webu</li> | |
<li>použít nějaký mezifiltr, který by minimalizovat (odstranil mezery, středníky u posledního pravidal, …) CSSka vzniklé z Less souborů</li> | |
<li>vytvořit několik ukázkových flash zpráviček na 'vývoj' stránku</li> | |
<li><del>upravit CSS zobrazování číslovaných i odrážkových seznamů v section části webu</del></li> | |
<li>v administraci vyplnit meta tagy stránky jako keywords, description, …</li> | |
<li>umožnit uživatelům se přihlašovat pomocí oAuth a OpenID</li> | |
<li>vytvořit nějaký modul, který umožní přihlašování s hashem hesla vytvořeným javascriptem přímo u klienta (upravit nejlépe i už samotnou registraci)</li> | |
<li><del>vytvořit nějaký grafický efekt pro flash zprávičky, aby nebylo snadné je přehlédnout a ideálně bez javascriptu</del></li> | |
<li><del>zjisti, jestli by nešlo přetěžovat i šablonu k registračnímu formuláři, protože ta nemá kontejnerový objekt, který by dělal pěkný bílý rámeček kolem formuláře a ideálně i nějaký nadpis typu h2</del></li> | |
<li><del>do přihlášení přidán jQuery script, který varuje, když má člověk zapnutý caps lock</del></li> | |
<li>upravit script, který varuje, když má člověk zapnutý caps lock a vložit ho i do registrace</li> | |
<li>v modulu Thesischat srovanat velikost textarea pro vložení nového příspěvku se zobrazením nového příspěvku, aby řídky končily u obou stejně (takže nastavit stejné písmo i jeho velikost)</li> | |
<li>někam na nějaké vhodné místo umístit přepínač jazyků</li> | |
<li>vymyslet, co udělat s vývoj (touto) sekcí na produkci (patička?, přesunout na bitbucket?)</li> | |
<li>v pre-archivu upravit signály gg a bg… vymyslet nějaké lepší názvy i texty odkazů</li> | |
</ul> | |
</li> | |
</ul> | |
</div> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment