Peter Širka
Peter Širka

Osobný blog programátora a IT nadšenca.

Moje open-source knižnice na GitHube

Moje open-source knižnice na GitHube

Od roku 2012 patrím medzi veľkých prispievateľov do Open-Source komunity. Za ten čas som získal neskutočné množstvo nových vedomostí, o ktoré sa veľmi rád s Vami podelím.

Platforma Node.js

1. Total.js framework

Je to server-side framework pre platformu Node.js (niečo ako ASP.NET MVC alebo Laravel pre PHP). Patrí medzi moje najúspešnejšie projekty a jeho popularita vo svete stále rastie.


2. Total.js Modules

Uvádzam aj toto repository, pretože som skoro všetky moduly napísal ja. Čo je dôležité, tak repository obsahuje ďalšie moduly pre framework Total.js, napr.: DDOS prevention, client-side error, directory listing, jsonwebtoken (jwt), OAuth 2.0 (Facebook, Google, GitHub, LinkedIn, Windows Live, DropBox, Yandex, Yahoo, VKontatke a Instagram), atď..


3. Total.js Examples

Toto repository obsahuje viac ako 100+ príkladov pre Total.js, ktoré som musel krvopotne napísať. Príklady slúžia iba ako ukážka funkčnosti Total.js frameworku.


3. Total.js Documentation

Obsahuje kompletný zdrojový kód dokumentácie a dokumentáciu k framework Total.js (vyše 300 kB čistého textu). Veľa ľudí si myslí, že framework je len zdrojový kód, ale to pravda nie je.


4. NoSQL embedded database

Nikdy by som nepovedal, že napíšem vlastný DB engine a to priamo v JavaScripte. Podarilo sa a výsledky sú viac než geniálne. Dovolím si povedať, že na tejto databáze beží niekoľko internetových obchodov, CMS a blogov (napr. aj tento).


5. SQL Agent

Výkonné a zároveň jednoduché ORM pre Node.js. Knižnica je stabilná a písanie DB príkazov je veľmi prehľadné. Momentálne podporuje PostgreSQL, MySQL, SQL Server a MongoDB.


6. PayPal Express Checkout

Pomocou knižnice je možné vytvoriť platbu cez službu PayPal. Knižnica ponúka veľmi jednoduchú implementáciu a jej popularita stále rastie.


7. FileStorage

Táto knižnica vie vytvárať peknú adresárovú štruktúru pre uploadnuté súbory. Vždy ukladá po 1000 súborov do jedného adresára, pričom následne vytvára ďalší adresár v tvare napr. /000-000-002/.


8. Fulltext

Táto knižnica je vlastne taká malá databáza pre fulltextové vyhľadávanie. Do funkcie stačí vložiť text a knižnica ho jednoducho z indexuje a indexy uloží do textového súboru.


9. OnlinePlatby

Tento modul podporuje skoro všetky slovenské banky - ich platobné brány. Podporuje: TatraPay, CardPay, SporoPay, VÚB ePlatby, OTPPay, UniPlatba, ČSOB platobné tlačítko, Slovenská pošta platba online a ASMS (platba cez SMS správu).


11. MongoDB Addons

Tento modul zjednodušuje prácu s MongoDB v Node.js + podporuje ľahšie ukladanie binárnych súborov do GridFS. O tento modul som sa prestal starať, pretože jeho funkčnosť sa mi podarilo preniesť a vylepšiť do knižnice SQL Agent.


12. Backup & Restore

Ani neviem čo ma poriadne viedlo k napísaniu tohto modulu, ale viem, že keby nevznikol - tak Total.js framework by nepodporoval balíčky packages a backup/restore. Tento modul dokáže ukladať súbory do textového súboru, pričom každý súbor je skomprimovaný pomocou Gzipu a uložený vo formáte base64.


13. Coucher

Modul vznikol ako jednoduchý "connector" pre CouchDB. Nepoužíval som ho dlho, pretože CouchDB nesplnil moje požiadavky na tvorbu webových aplikácií. Modul je deprecated.

Full open-source aplikácie

Nižšie uvedené aplikácie sú postavené na knižniciach v tomto blogu. Ak si ich chcete spustiť, tak je potrebné prečítať inštrukcie k danej aplikácii + nainštalovať platformu Node.js vo verzii (minimálne) v4+.

1. Eshop + CMS

Ak hľadáte jednoduchý Eshop s CMS, tak toto riešenie je pre Vás ako stvorené. Na použitie nepotrebujete skoro nič inštalovať, pretože aplikácia používa NoSQL embedded databázu. Repository obsahuje aj PostgreSQL a MongoDB verziu. Pre zaujímavosť modifikované klony eshopu: www.legift.sk, www.najnaradiebb.sk, www.warphammer.sk, atď..


2. HelpDesk

Framework Total.js potreboval jednoduchý HelpDesk systém a na internete som nič jednoduché nenašiel, preto vznikla táto aplikácia a Vy ju môžete použiť tiež. Používa PostgreSQL databázu.


3. SuperAdmin

Je to brutálna aplikácia. Pomocou tejto aplikácie viete spravovať všetky Total.js aplikácie, vidíte koľko žerú CPU, RAM, HDD, koľko majú aplikácie otvorených súborov, TCP spojení, atď.. Podporuje automatické generovanie SSL certitikátov, cluster a development+production mód.


4. OpenPlatform

Myšlienka OpenPlatformy vznikla na myšlienke: dostať Node.js do enterprise sféry. OpenPlatforma je doslova kontajner na aplikácie. Podporuje administráciu aplikácií, užívateľov a ich práv k aplikáciám. Všetky aplikácie sú spúšťané v iframe elemenete a ľahko sa dá s nimi manipulovať.

Client-side

1. jComponent knižnica

Málo kto vie o tejto skvelej client-side knižnici, ale je to super alternatíva k Angular.js, Ember.js, atď.. Jej populárnosť stále rastie a to aj vďaka veľkému počtu free UI komponentov.


2. jQuery two-way bindings

Táto knižnica mi pomáhala vytvárať formuláre. Vývojári ju stále používajú a to aj napriek tomu, že sa o ňu nestarám. Nová verzia tejto knižnice je vyššie uvedený jComponent.


3. Tangular template engine

Skvelý template engine pre client-side, ale nájdete ho aj v NPM pre Node.js. Keďže Handlebars a Mustache boli nedostačujúce, rozhodol som sa napísať vlastný template engine na štýl Angular.js template engine. Podporuje podmienky, loopy a custom helpers.


4. jRouting

O tejto knižnici vie málo kto, čo je škoda. Knižnica ponúka bohatú funkčnosť pre HTML 5 History API, takže na client-side viete vytvárať trasy (route) na akcie. Kódovanie je podobné na štýl controllera v Total.js. Podporuje middleware, modely, atď..


5. jQuery upload

Knižnica slúžila pre rýchle uploadovanie súborov na server. Podporuje percentuálne zobrazenie nahrávania a drag & drop upload súborov. Knižnicu už nepoužívam, pretože som napísal jComponent, ktorá obsahuje na stránke www.componentator.com niekoľko komponentov pre upload súborov.


6. MyAPI

Ak hľadáte niečo jednoduché na tvorbu dokumentácie s fulltextovým vyhľadávaním a offline prístupom, tak táto knižnica/stránka Vás bude určite zaujímať. Je to malý klon Total.js dokumentácie.


Na záver ešte pripomeniem, že vznikajú nové open-source aplikácie pre Node.js:

  • blognegine (markdown) ten práve testujem (viď tento blog)
  • dashboard aplikácia na tvorbu dashboardov s jednoduchým JavaScript API na vytvorenie widgetu