Personal Project


Internet Banking Data Sync


Jquery CSS Gradient Generator

AngularJS Arabic Keyboard

Litwe is a lite mobile web based Facebook and Twitter client application. It's built using vanilla PHP. It used TwitterOAuth to connect with Twitter's API and Facebook API to connect with Facebook. Although initially I just built it primarily for my own personal purpose, I eventually published it on domain litwe.info. And it turned out that there are many other people like me who liked to use it. This web app still run until no one else were using it anymore.

Project Background

I was a bit late in adopting smartphone. I still used feature phone while many other people have had their Android/iOS gadget. So, I didn't have the luxury to use tweetdeck, ubersocial or any other fancy social media aggregation apps which were only available on smartphone. So.... I built one for myself. An app specifically designed and developed for my own use on my feature phone. I wanted an extra lite mobile app which won't hog my data usage but still have a fully complete facebook & twitter features (mention, retweet, comment, DM, etc)

Project Challenge

This was my first time dealing with REST API. I didn't have any prior knowledge about it before. So, I had to really understand the concept of it before I stumble down the Facebook & Twitter API code. It took a while for me to grasp enough understanding of the concept of communication between web applications.
arabicangular This is a simple arabic keyboard built using AngularJS. This keyboard is meant to be used on desktop only.

Feature list

  • Transliterate typing (type directly with you latin keyboard and this app will automatically transliterate it to arabic text)
  • Change transliteration scheme. I have made 3 transliteration scheme so far, you could add more of it or create your own transliteration map. Just fork it, copy any transliteration json file and edit it yourself. I'd be glad to merge it here :)
  • Change font family and font size
  • Copy arabic text
  • Translate (direct translation link to google translate)
  • Search (direct search link to google)
  • Image (direct image search link to google images)
  • any more suggestion?


Live demo in here: http://kamalabs.com/arabic-keyboard


Check out the source code here: https://github.com/emkamal/angular-arabic-keyboard
Spectral Jquery Gradient Generator This is a jquery plugin which are able to generate CSS gradient lengthy script. This tool was meant to be used by theme designer who want to incorporate customizable CSS gradient within their theme. It's built using jQuery UI and jQuery Colorpicker. Github page: https://github.com/emkamal/Spectral-Jquery-Gradient-Generator Demo page: http://kamalabs.com/Spectral-Jquery-Gradient-Generator/
mikalu Mikalu.com is a bedding online shop. Mikalu sells bed sheet and bed cover throughout Indonesia. Most of the sales are done with dropshipping scheme. The dropshipping scheme works as follows: Reseller promote Mikalu's product as their own, when their customer order the product, the reseller purchase it from Mikalu. Mikalu would then process the order and ship the product directly to the reseller's customer. My job was to build a system for that dropship scheme. So, it is not just a basic usual traditional e-commerce system where they sell the products directly. It's more of an e-commerce with sales channeling system. The system was built using customized Wordpress + WP E-Commerce plugin. Beside the e-commerce system, I also designed the logo and developed the theme. I've make sure that the whole design pattern follows company's orientation. The logo design and color choice were chosen to reflect it's main target market, that is middle age woman. I made sure that the theme is search engine friendly enough to make it's content easily crawled and indexed by search engine bot.
PHP Application to crawl, retrieve, archive and compile several internet banking raw data from different Indonesian local banks. This application was scheduled to routinely get internet banking raw data using cURL. Those raw data would then be parsed using PHP Simple HTML DOM Parser to convert raw HTML data (mostly in the form of traditional HTML table) into a structured data. Finally, these structured data would be saved and archived to the database (using MySQL database) for later use. This application is able to automatically categorize each transaction by examining the sender name and the pattern of the transaction description. This automatic categorization is very useful for me to analyze my own incomes and expenses.

The Challenge

The main challenge with building this kind of application is of course tackling any kind of restriction from the banks. Many banks implement many kinds of restriction on their internet banking system to prevent robot to grabs the data. They might implement sophisticated Captcha, session based URL, HTML obfuscation etc. Also each bank has their own presentation of raw html data. This require me to build a special parser for each one of them.