SlideShare a Scribd company logo
1 of 32
Download to read offline
Building Paraşüt 
with Ember.js 
A Financial Management App for Turkish SMEs 
twitter.com/parasutcom
Modern SaaS for Turkey 
• Turkish small businesses need innovation & information 
• 3mm SMEs (99% of market) with no access to easy, 
affordable finance management software 
• Must create intuitive, beautiful, fun yet sophisticated, 
enterprise-ready application 
• Must do so in “lean startup” way
Invoices 
Expenses 
Inventory 
Contacts 
Tracking 
Printing 
Employees 
Tracking 
Import/ 
Export 
Invites as viral channel 
Reports Mobile 
Portal 
Supplier/ 
Vendor 
Email 
e-invoice 
Expense 
report 
Invites as viral channel 
Government 
3rd Parties 
Banks 
API 
Users (roles) 
Accounting 
Automation
Andaç Türkmen 
! 
CTO 
Co-Founder 
Fahri Özkaramanlı 
! 
Designer 
Co-Founder 
Barış Gümüştaş 
! 
Full Stack Dev. 
Oytun Yücel 
! 
Full Stack Dev. 
Tuğcem Yalçın 
! 
Full Stack Dev. 
Daniel Swakman 
! 
Designer 
Our Team
Technical Challenges 
• Providing a great and smooth user experience 
• Almost native feeling 
• Has a complex functionality 
• Constant development of new features 
• Tweaking features according to customer needs
Our Stack 
+
But why Ember.js?
The process 
• We were trying to choose between Angular, Backbone and 
Ember.js 
• It was beginning of spring ’13 
• Backbone had a huge community but it would need too much 
work on our side 
• Angular and Ember.js were both new at the time and they were 
almost the same size when it comes to community and adoption 
• At the end we chose Ember.js because:
Ember.js Philosophy 
• Built with similar logic to backend frameworks so it’s quite familiar 
• Convention over configuration 
• Good documentation 
• Provides the tools for abstraction & decoupling 
• Provides a great support library (stuff like enumerables and utility 
methods, similar to ActiveSupport if you are a ruby dev) 
• Optimized for developer happiness (Yehuda Katz’s own words)
Ember.js Core Team
Apps Powered by Ember.js 
Heroku’s new dashboard twitch.tv Travis CI Discourse 
Square dashboard Vine Apple’s help pages Skylight 
http://builtwithember.io/
So what is 
Ember.js?
Ember.js 
• Model-view-controller (MVC) architectural pattern 
• Not exactly like the server-side MVC 
• Based on SproutCore which is similar to Cocoa 
• A Rich Object Model 
• Utilities gathering best practices and common idioms 
• Data Binding
So we started developing 
with ember gem for rails!
Rails’s asset pipeline started 
to get clogged and 
development became harder.
We needed a tool to manage 
our build process and serve the 
frontend during development.
Ember App Kit
What is Ember App Kit 
• Developed by Ember.js core team member Stefan Penner 
• Provides a project structure 
• Package management via Bower 
• Grunt based workflow 
• Transpiles ES6 Modules 
• LESS,SASS,Stylus and CoffeeScript support 
• JS Linting via JSHint 
• Anything else you need through Grunt tasks 
• Testing 
https://github.com/stefanpenner/ember-app-kit
ES6 modules 
• Simple way of managing dependencies by using ‘import’ 
and ‘export’ 
• Named exports 
• You can use name resolving for loading dependencies. 
• We are transpiling ES6 modules to require.js until the 
standard is matured enough and natively supported by 
browsers.
Testing 
• There’s QUnit, Ember Testing for writing tests 
• Karma and Testem as test runners 
• TDD in Javascript 
• Also helpful for continuous integration
Compiling Assets 
• Compiling and serving assets for development 
• May be you want to use CoffeeScript, SCSS or LESS 
• Optimizing assets for production
Linting JS 
• Detecting errors during compilation 
• Improving code quality
Package Management 
• Using Bower for package management 
• Version management for frontend dependencies 
• CLI tool for adding and updating dependencies
RIP Ember App Kit 
Deprecated in favor of Ember CLI
Ember CLI 
• Not production ready yet but getting closer! 
• Everything provided by Ember App Kit 
• Generators 
• New asset pipeline based on broccoli 
• Faster asset compilation! 
• Better organization through more “convention over configuration” 
• Will become a part of Ember.js when it gets ready for production 
http://www.ember-cli.com
Generators 
• Just like rails generators 
• But for ember
Broccoli 
• Browser compilation library – a build tool for applications that 
run in the browser 
• Similar to Gulp but focused on asset compilation 
• Still beta but getting close 
• Like grunt but for specifically for compiling assets for 
browsers 
https://github.com/joliss/broccoli
Thanks! 
And we are hiring! 
tinyurl.com/applyparasut 
twitter.com/parasutcom

More Related Content

Viewers also liked

Future of Fintech in Turkey
Future of Fintech in TurkeyFuture of Fintech in Turkey
Future of Fintech in TurkeyParaşüt
 
Interact your wearable and an iot device
Interact your wearable and an iot deviceInteract your wearable and an iot device
Interact your wearable and an iot deviceJeff Prestes
 
Building Realtime Apps with Ember.js and WebSockets
Building Realtime Apps with Ember.js and WebSocketsBuilding Realtime Apps with Ember.js and WebSockets
Building Realtime Apps with Ember.js and WebSocketsBen Limmer
 
A client-side image uploader in Ember.js
A client-side image uploader in Ember.jsA client-side image uploader in Ember.js
A client-side image uploader in Ember.jsyoranbe
 
Intro to emberjs
Intro to emberjsIntro to emberjs
Intro to emberjsMandy Pao
 
Ember.js internals backburner.js and rsvp.js
Ember.js internals  backburner.js and rsvp.jsEmber.js internals  backburner.js and rsvp.js
Ember.js internals backburner.js and rsvp.jsgavinjoyce
 
Complex Architectures in Ember
Complex Architectures in EmberComplex Architectures in Ember
Complex Architectures in EmberMatthew Beale
 
Girişimciler İçin Temel Vergi Mevzuatı
Girişimciler İçin Temel Vergi MevzuatıGirişimciler İçin Temel Vergi Mevzuatı
Girişimciler İçin Temel Vergi MevzuatıParaşüt
 

Viewers also liked (12)

Future of Fintech in Turkey
Future of Fintech in TurkeyFuture of Fintech in Turkey
Future of Fintech in Turkey
 
Interact your wearable and an iot device
Interact your wearable and an iot deviceInteract your wearable and an iot device
Interact your wearable and an iot device
 
Building Realtime Apps with Ember.js and WebSockets
Building Realtime Apps with Ember.js and WebSocketsBuilding Realtime Apps with Ember.js and WebSockets
Building Realtime Apps with Ember.js and WebSockets
 
A client-side image uploader in Ember.js
A client-side image uploader in Ember.jsA client-side image uploader in Ember.js
A client-side image uploader in Ember.js
 
Introduction to Ember.js
Introduction to Ember.jsIntroduction to Ember.js
Introduction to Ember.js
 
ember-deploy
ember-deployember-deploy
ember-deploy
 
Intro to emberjs
Intro to emberjsIntro to emberjs
Intro to emberjs
 
Ember.js internals backburner.js and rsvp.js
Ember.js internals  backburner.js and rsvp.jsEmber.js internals  backburner.js and rsvp.js
Ember.js internals backburner.js and rsvp.js
 
Complex Architectures in Ember
Complex Architectures in EmberComplex Architectures in Ember
Complex Architectures in Ember
 
Girişimciler İçin Temel Vergi Mevzuatı
Girişimciler İçin Temel Vergi MevzuatıGirişimciler İçin Temel Vergi Mevzuatı
Girişimciler İçin Temel Vergi Mevzuatı
 
Facebook UI Evolution
Facebook UI EvolutionFacebook UI Evolution
Facebook UI Evolution
 
Interfaces atc(final)
Interfaces atc(final)Interfaces atc(final)
Interfaces atc(final)
 

Recently uploaded

What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 

Recently uploaded (20)

What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 

Building enterprise apps with Ember.js

  • 1. Building Paraşüt with Ember.js A Financial Management App for Turkish SMEs twitter.com/parasutcom
  • 2. Modern SaaS for Turkey • Turkish small businesses need innovation & information • 3mm SMEs (99% of market) with no access to easy, affordable finance management software • Must create intuitive, beautiful, fun yet sophisticated, enterprise-ready application • Must do so in “lean startup” way
  • 3. Invoices Expenses Inventory Contacts Tracking Printing Employees Tracking Import/ Export Invites as viral channel Reports Mobile Portal Supplier/ Vendor Email e-invoice Expense report Invites as viral channel Government 3rd Parties Banks API Users (roles) Accounting Automation
  • 4.
  • 5.
  • 6.
  • 7. Andaç Türkmen ! CTO Co-Founder Fahri Özkaramanlı ! Designer Co-Founder Barış Gümüştaş ! Full Stack Dev. Oytun Yücel ! Full Stack Dev. Tuğcem Yalçın ! Full Stack Dev. Daniel Swakman ! Designer Our Team
  • 8. Technical Challenges • Providing a great and smooth user experience • Almost native feeling • Has a complex functionality • Constant development of new features • Tweaking features according to customer needs
  • 11. The process • We were trying to choose between Angular, Backbone and Ember.js • It was beginning of spring ’13 • Backbone had a huge community but it would need too much work on our side • Angular and Ember.js were both new at the time and they were almost the same size when it comes to community and adoption • At the end we chose Ember.js because:
  • 12. Ember.js Philosophy • Built with similar logic to backend frameworks so it’s quite familiar • Convention over configuration • Good documentation • Provides the tools for abstraction & decoupling • Provides a great support library (stuff like enumerables and utility methods, similar to ActiveSupport if you are a ruby dev) • Optimized for developer happiness (Yehuda Katz’s own words)
  • 14. Apps Powered by Ember.js Heroku’s new dashboard twitch.tv Travis CI Discourse Square dashboard Vine Apple’s help pages Skylight http://builtwithember.io/
  • 15. So what is Ember.js?
  • 16. Ember.js • Model-view-controller (MVC) architectural pattern • Not exactly like the server-side MVC • Based on SproutCore which is similar to Cocoa • A Rich Object Model • Utilities gathering best practices and common idioms • Data Binding
  • 17. So we started developing with ember gem for rails!
  • 18. Rails’s asset pipeline started to get clogged and development became harder.
  • 19. We needed a tool to manage our build process and serve the frontend during development.
  • 21. What is Ember App Kit • Developed by Ember.js core team member Stefan Penner • Provides a project structure • Package management via Bower • Grunt based workflow • Transpiles ES6 Modules • LESS,SASS,Stylus and CoffeeScript support • JS Linting via JSHint • Anything else you need through Grunt tasks • Testing https://github.com/stefanpenner/ember-app-kit
  • 22. ES6 modules • Simple way of managing dependencies by using ‘import’ and ‘export’ • Named exports • You can use name resolving for loading dependencies. • We are transpiling ES6 modules to require.js until the standard is matured enough and natively supported by browsers.
  • 23. Testing • There’s QUnit, Ember Testing for writing tests • Karma and Testem as test runners • TDD in Javascript • Also helpful for continuous integration
  • 24. Compiling Assets • Compiling and serving assets for development • May be you want to use CoffeeScript, SCSS or LESS • Optimizing assets for production
  • 25. Linting JS • Detecting errors during compilation • Improving code quality
  • 26. Package Management • Using Bower for package management • Version management for frontend dependencies • CLI tool for adding and updating dependencies
  • 27. RIP Ember App Kit Deprecated in favor of Ember CLI
  • 28.
  • 29. Ember CLI • Not production ready yet but getting closer! • Everything provided by Ember App Kit • Generators • New asset pipeline based on broccoli • Faster asset compilation! • Better organization through more “convention over configuration” • Will become a part of Ember.js when it gets ready for production http://www.ember-cli.com
  • 30. Generators • Just like rails generators • But for ember
  • 31. Broccoli • Browser compilation library – a build tool for applications that run in the browser • Similar to Gulp but focused on asset compilation • Still beta but getting close • Like grunt but for specifically for compiling assets for browsers https://github.com/joliss/broccoli
  • 32. Thanks! And we are hiring! tinyurl.com/applyparasut twitter.com/parasutcom