Upgrade to Pro — share decks privately, control downloads, hide ads and more …

open qiscus [obsolette, when qiscus is still Sl...

open qiscus [obsolette, when qiscus is still Slack-like app]

qiscus tech as 2014

evanpurnama

March 20, 2015
Tweet

More Decks by evanpurnama

Other Decks in Technology

Transcript

  1. THE MAKERS ! ! • SG Team: Fatin (Designer), Jon

    (Growth Hacker) & Sami (Designer) • Jogja Team: Alam, Edwin, Hiraq (Back End), Agus, Yanu & Fikri (Front End), Angga, Oki & Arif (Mobile) Yud,a, Ismail, Lintang, Astrid, Ventika (Intern)
  2. WHY AGILE? • false assumption : every requirement can be

    identified before any design or coding occurs. • Has spent time and money to create software that no one wants. • Need to emphasise on communication (both between developer and to client)
  3. WHAT IS AGILE? • The Agile movement proposes alternatives to

    traditional project management. Agile approaches are typically used in software development to help businesses respond to unpredictability.
  4. • Sprints or iterations, at the end of which teams

    must present a potentially shippable product increment.
  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. PUSH TECHNOLOGY • 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. OTHERS • Memcached : to cache the data that user

    need to get as fast as possible. • Solr : search engine of the messages text. • Static Upload FIle : Data uploaded is important, we should handle seriously.
  11. ARCHITECTURE DB Postgres Heroku Search Solr Digital Ocean/ EC2 Push

    Message Own Cloud/Third Party Caching Memcached Digital Ocean Upload Process & Storage EC 2 & S3 AWS RabbitMQ, Pusher, Parse Back-end Ruby on Rails Heroku Client Web AngularJS Javascript Client Android Android Native Java Client iOS iOS Native/Cocoa Objective-C
  12. DEMO AGILE DEVELOPMENT WITH RAILS • Requirements: • User can

    submit a number, and a param • output = number * param1 • in all controller, should show the output
  13. REQUIREMENT CHANGE! • Need to add one more parameter •

    Output need to be processed 1 more time. Now output = (number * param1) - param2
  14. 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)