Dokumen ini membahas tentang Qiscus, sebuah platform messaging yang dibangun menggunakan Ruby on Rails sebagai backend dan AngularJS sebagai frontend. Qiscus menggunakan beberapa teknologi push seperti Pusher dan RabbitMQ untuk mengirimkan update secara real-time ke berbagai client. Dokumen ini juga memberikan demo singkat dari fitur-fitur dasar Qiscus beserta sumber-sumber belajar untuk teknologi yang digunakan.
5. RUBY ON RAILS
is an open-source web framework that's optimized for programmer happiness and
sustainable productivity. It let's you write beautiful code by favoring convention over
configuration (http://rubyonrails.org)
• MVC (Model -View - Controller) pattern
• Kenapa memilih rails:
• Sangat cepat untuk prototyping dan iterasi, tanpa mengurangi reliability.
• Komunitas yang sangat hidup, banyak library yang memudahkan development,
dan integrasi ke service lainnya.
• Solid testing framework
6. RUBY ON RAILS
• Business logic, general routing, interaksi dengan DB (menggunakan
postgresql)
• Serve API untuk berbagai client app:
• front end (angular app),
• iOS app dan
• Android app
• Mengirimkan data ke berbagai push technology untuk real time dan
notifikasi ke berbagai client app tersebut.
7. ANGULAR JS
is structural framework for dynamic web apps. It let's you use HTML as your template
language and let's you extend HTML's syntax to express your application's
components clearly and succinctly. (http://docs.angular.org/guide/introduction)
• Sebuah client side javascript framework.
• MVVM (Model -View -ViewModel)
• Kenapa memilih angular:
• Kebutuhan dynamic client side javascript yang mudah di maintain.
• Dokumentasi dan komunitas yang bagus
8. ANGULAR JS
• Front end interactivity
• rendering data (dan pushed data) dari back end: room, topic,
comment, links, users, files
• client-side routing
• Consume API dari back end, hampir selalu dengan AJAX request
• post comment, add room/topic, upload files dll.
9. PUSHTECHNOLOGY
• Salah satu challenge terbesar messaging platform: reliable data secara real time.
• push technology berfungsi utama memastikan hal ini: semua jenis data
tersampaikan ke semua listener secara real time.
• Push technology memastikan data tersedia untuk user tanpa membebani
client-side app, tetapi di handle oleh dedicated server.
• Qiscus menggunakan beberapa push technology untuk beberapa kebutuhan
real time data / notifikasi:
10. HEROKU & AWS
DB
Push Notifications
PusherRabbitMQ
Urban
Airship
Parse
App
Back End
App
Front End
Angular
Ruby on RailsPostgres
HerokuHeroku HerokuAWS
12. QISCUSV.0.0.1
• Requirements:
• User bisa post message
• User bisa menerima message dari user lain secara real
time
• User bisa melihat semua messages
• Stack: Ruby on Rails, Pusher & Heroku
13. RESOURCES
• Rails
• railsforzombies.org (coba juga tryruby.org untuk dasar pemrograman ruby) oleh codeschool (gratis)
• railstutorial.org (ebook gratis) oleh Michael Hartl
• railscasts.com (gratis & premium $9/bulan) oleh Ryan Bates
• Rails Guide dan Rails API (gratis)
• Angular
• angularjs.org (gratis)
• Shaping Up with Angular.js oleh codeschool (gratis)
• http://egghead.io (gratis dan premium $14.99/bulan)