SlideShare a Scribd company logo
RAD with MEAN 
A New Approach to 
Application Development
We are a bunch of nerds who love technology and problem solving 
Our Mission is to: 
• Identify the problem that customer is trying to solve 
• Help choose the best approach for his situation 
• Solve the problem with in the iron triangle constraints 
• Have Fun doing all the above steps 
We challenged ourselves to build a TODO application over a weekend with two of 
the most talked about full stack technologies 
After analyzing the results and code extensibility, we picked a winner
New Approach vs Traditional 
• Business has an idea that needs to be market tested without having to spend a million 
dollars in development cost 
• Traditional SDLCs take considerable story writing, planning, design, development, 
testing and stabilization efforts 
• Also any change will mean all the above phases. Traditional application or product 
development approach is not very forgiving when it comes to changing requirements 
• We need an approach where we can create a mobile ready web application in a short 
amount of time and still be very flexible in changing it without impacting existing data 
or having to do significant code refactor in all layers 
• New approach we are proposing here will allow developers to build in small chunks, 
test and validate with business and customers before building next chunk and the cost 
of changing the design or architecture at any point is negligible 
• We need something which enables businesses to decide as late as possible and 
development team to deliver as fast as possible
An App in a Weekend 
• Mobile ready, works on small / big screens 
• User can have his todo list displayed + ability to add/remove/modify items 
• User can Assign priorities and due dates to the items 
• User can sort his list using due date or priority 
• User can mark an entry as completed 
• Every client operation is done using JavaScript, reloading the page is not an option (for 
future offline capabilities) 
• RESTful API which will allow a third-party application to trigger actions on this app 
(same actions available on the webpage) 
• Ability to pass credentials to both the webpage and the API 
• Ability to create users in the system via an interface, a signup/register screen
Login Screen
Rest Services
Signup Screen 
Sign Up Screen | Client side validations | Server side validations
TODO Screen
TODO Screen 
Task updated in DB as soon as user checks it on client
Edit Mode
Validations
Usability on phone
Is this extensible or just prototype 
Add Male/Female flag to User.profile 
• Add drop down in SignUp screen and VO – 30mins 
• Add flag to User schema in db.js – 10mins 
Add ability to update/delete existing user 
• Add link from TODOs, new save & delete buttons, add $resource.put & delete – 2hrs 
• Add Rest put and delete methods in services.js– 30mins 
• Unit Testing – 20mins 
Add two fields to Tasks collection (table) 
• Add to schema (existing documents will be intact) – 20mins 
• No changes needed to api or service codes -- 0 
• Add to New, Edit, and View divs in UI any styling issues– 2hrs 
• Unit Testing – 20mins
“MEAN” stack (or “AMEN” stack ;-) 
• Mongo DB 
– http://www.mongodb.org/ 
• ExpressJS 
– http://expressjs.com/ 
• AngularJS 
– http://angularjs.org/ 
• NodeJS 
– http://nodejs.org/ 
• Knowledge of JavaScript is the only skill required to code, maintain 
and extend this application
Adoption Risk 
Mongo DB 
http://www.mongodb.com/customers/ 
• eBay: with 250M writes/day, 10M updates, 500M to 1B reads, 2ms (yes, millisecond) response time 24/7/365 
• Craigslist: Initial MongoDB deployment was designed to hold over 5 billion documents and 10TB of data 
ExpressJS 
http://expressjs.com/applications.html 
• MySpace 
• Yummly 
NodeJS 
http://nodejs.org/industry/ 
• Microsoft Azure 
• Yahoo 
• eBay, Walmart etc… 
AngularJS [by Google] 
http://builtwith.angularjs.org/
Rapid Development 
• The skillset is simple, a developer who understands JavaScript is good to go on all 
layers, no UI developer vs business layer vs db layer 
• Communication between front-end to business to db layer is all happening through 
JavaScript objects which is the reason for so much gain in development speed 
• MongoDB gives us NoSQL speed without constraining us to name value pairs, each 
document in MongoDB can store information of up to 16MB 
• MongoDB’s schema agility allows storage of differently structured documents in same 
collection. So if the structure of a table has changed, no need to worry about existing 
data, it will work fine 
• ExpressJS and AngularJS abstract and give us most of the common classes that we 
have to code in all applications so developers write and maintain less code
Scalable Application 
• NodeJS is an event-driven server-side JavaScript environment. Node runs JavaScript 
using Google Chrome’s V8 Engine which means three very important things 
– JavaScript runs extremely fast on Node 
– Node can render client side pages on server side for mobile applications when 
needed or for old browsers which have issue with JS speed on client side 
– Node is even-driven which means no threads are required like for Java and .Net 
applications, it is more natural multi threaded IO with Node 
• MongoDB is one of the best and easy to master horizontally scalable NoSQL database 
around. Sharding with MongoDB is very easy and its document model gives us schema 
agility which is a super power in app development world
If traditional application development is not working for you anymore and you are 
thinking of alternative approaches, we can help you 
Feel free to contact us

More Related Content

What's hot

Web Applications Development with MEAN Stack
Web Applications Development with MEAN StackWeb Applications Development with MEAN Stack
Web Applications Development with MEAN Stack
Shailendra Chauhan
 
Introduction to mean stack
Introduction to mean stackIntroduction to mean stack
Introduction to mean stack
Praveen Gubbala
 
MEAN stack
MEAN stackMEAN stack
MEAN stack
Iryney Baran
 
FULL stack -> MEAN stack
FULL stack -> MEAN stackFULL stack -> MEAN stack
FULL stack -> MEAN stack
Ashok Raj
 
Mean Stack - An Overview
Mean Stack - An OverviewMean Stack - An Overview
Mean Stack - An Overview
Naveen Pete
 
MongoDB and the MEAN Stack
MongoDB and the MEAN StackMongoDB and the MEAN Stack
MongoDB and the MEAN StackMongoDB
 
Beginning MEAN Stack
Beginning MEAN StackBeginning MEAN Stack
Beginning MEAN StackRob Davarnia
 
You know what iMEAN? Using MEAN stack for application dev on Informix
You know what iMEAN? Using MEAN stack for application dev on InformixYou know what iMEAN? Using MEAN stack for application dev on Informix
You know what iMEAN? Using MEAN stack for application dev on Informix
Keshav Murthy
 
NodeSummit - MEAN Stack
NodeSummit - MEAN StackNodeSummit - MEAN Stack
NodeSummit - MEAN Stack
Valeri Karpov
 
Building an E-commerce website in MEAN stack
Building an E-commerce website in MEAN stackBuilding an E-commerce website in MEAN stack
Building an E-commerce website in MEAN stack
divyapisces
 
MEAN Stack
MEAN StackMEAN Stack
MEAN Stack
Krishnaprasad k
 
Mean full stack development
Mean full stack developmentMean full stack development
Mean full stack development
Scott Lee
 
The MEAN Stack
The MEAN StackThe MEAN Stack
The MEAN Stack
Md. Ziaul Haq
 
Building Modern Web Apps with MEAN Stack
Building Modern Web Apps with MEAN StackBuilding Modern Web Apps with MEAN Stack
Building Modern Web Apps with MEAN Stack
Suresh Patidar
 
MEAN Stack
MEAN StackMEAN Stack
MEAN Stack
Dotitude
 
Angular js introduction
Angular js introductionAngular js introduction
Angular js introduction
Praveen Gubbala
 
MEAN Stack - Introduction & Advantages - Why should you switch to MEAN stack ...
MEAN Stack - Introduction & Advantages - Why should you switch to MEAN stack ...MEAN Stack - Introduction & Advantages - Why should you switch to MEAN stack ...
MEAN Stack - Introduction & Advantages - Why should you switch to MEAN stack ...
Hariharan Ganesan
 
Introduction to MERN
Introduction to MERNIntroduction to MERN
Introduction to MERN
ShyamMohanKunwar
 
Mean stack
Mean stackMean stack
Kickstarting Node.js Projects with Yeoman
Kickstarting Node.js Projects with YeomanKickstarting Node.js Projects with Yeoman
Kickstarting Node.js Projects with Yeoman
Patrick Buergin
 

What's hot (20)

Web Applications Development with MEAN Stack
Web Applications Development with MEAN StackWeb Applications Development with MEAN Stack
Web Applications Development with MEAN Stack
 
Introduction to mean stack
Introduction to mean stackIntroduction to mean stack
Introduction to mean stack
 
MEAN stack
MEAN stackMEAN stack
MEAN stack
 
FULL stack -> MEAN stack
FULL stack -> MEAN stackFULL stack -> MEAN stack
FULL stack -> MEAN stack
 
Mean Stack - An Overview
Mean Stack - An OverviewMean Stack - An Overview
Mean Stack - An Overview
 
MongoDB and the MEAN Stack
MongoDB and the MEAN StackMongoDB and the MEAN Stack
MongoDB and the MEAN Stack
 
Beginning MEAN Stack
Beginning MEAN StackBeginning MEAN Stack
Beginning MEAN Stack
 
You know what iMEAN? Using MEAN stack for application dev on Informix
You know what iMEAN? Using MEAN stack for application dev on InformixYou know what iMEAN? Using MEAN stack for application dev on Informix
You know what iMEAN? Using MEAN stack for application dev on Informix
 
NodeSummit - MEAN Stack
NodeSummit - MEAN StackNodeSummit - MEAN Stack
NodeSummit - MEAN Stack
 
Building an E-commerce website in MEAN stack
Building an E-commerce website in MEAN stackBuilding an E-commerce website in MEAN stack
Building an E-commerce website in MEAN stack
 
MEAN Stack
MEAN StackMEAN Stack
MEAN Stack
 
Mean full stack development
Mean full stack developmentMean full stack development
Mean full stack development
 
The MEAN Stack
The MEAN StackThe MEAN Stack
The MEAN Stack
 
Building Modern Web Apps with MEAN Stack
Building Modern Web Apps with MEAN StackBuilding Modern Web Apps with MEAN Stack
Building Modern Web Apps with MEAN Stack
 
MEAN Stack
MEAN StackMEAN Stack
MEAN Stack
 
Angular js introduction
Angular js introductionAngular js introduction
Angular js introduction
 
MEAN Stack - Introduction & Advantages - Why should you switch to MEAN stack ...
MEAN Stack - Introduction & Advantages - Why should you switch to MEAN stack ...MEAN Stack - Introduction & Advantages - Why should you switch to MEAN stack ...
MEAN Stack - Introduction & Advantages - Why should you switch to MEAN stack ...
 
Introduction to MERN
Introduction to MERNIntroduction to MERN
Introduction to MERN
 
Mean stack
Mean stackMean stack
Mean stack
 
Kickstarting Node.js Projects with Yeoman
Kickstarting Node.js Projects with YeomanKickstarting Node.js Projects with Yeoman
Kickstarting Node.js Projects with Yeoman
 

Similar to Rapid Application Development with MEAN Stack

Inthiyaz-4.6Years-SharePoint
Inthiyaz-4.6Years-SharePointInthiyaz-4.6Years-SharePoint
Inthiyaz-4.6Years-SharePointInthiyaz Pathan
 
Case study(i)
Case study(i)Case study(i)
Case study(i)
Mohseen Khan
 
Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speech
Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speechVue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speech
Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speech
Divante
 
COMP6210 Web Services And Design Methodologies.docx
COMP6210 Web Services And Design Methodologies.docxCOMP6210 Web Services And Design Methodologies.docx
COMP6210 Web Services And Design Methodologies.docx
write31
 
Online Building Plan
Online Building PlanOnline Building Plan
Online Building Plan
Lakshmi Gottipati
 
Optimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best PracticesOptimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best Practices
Teamstudio
 
Nitin_updated_Profile
Nitin_updated_ProfileNitin_updated_Profile
Nitin_updated_ProfileNitin Saxena
 
Monoliths to microservices workshop
Monoliths to microservices workshopMonoliths to microservices workshop
Monoliths to microservices workshop
Judy Breedlove
 
SadikulIslamDotNetResume
SadikulIslamDotNetResumeSadikulIslamDotNetResume
SadikulIslamDotNetResumeSadikul Islam
 
AngularJS in Production (CTO Forum)
AngularJS in Production (CTO Forum)AngularJS in Production (CTO Forum)
AngularJS in Production (CTO Forum)
Alex Ross
 
Home management WebApp presentation
Home management WebApp presentationHome management WebApp presentation
Home management WebApp presentation
bhavesh singh
 
Agileand saas davepatterson_armandofox_050813webinar
Agileand saas davepatterson_armandofox_050813webinarAgileand saas davepatterson_armandofox_050813webinar
Agileand saas davepatterson_armandofox_050813webinarRoberto Jr. Figueroa
 
How to Maximize User Experience with Effective Front-End Technology Choices
How to Maximize User Experience with Effective Front-End Technology ChoicesHow to Maximize User Experience with Effective Front-End Technology Choices
How to Maximize User Experience with Effective Front-End Technology Choices
Minds Task Technologies
 
Sam segal resume
Sam segal resumeSam segal resume
Sam segal resume
samuel segal
 
Disruptive Trends in Application Development
Disruptive Trends in Application DevelopmentDisruptive Trends in Application Development
Disruptive Trends in Application Development
WaveMaker, Inc.
 
Road to agile: federal government case study
Road to agile: federal government case studyRoad to agile: federal government case study
Road to agile: federal government case study
David Marsh
 
Ehab wafik CV(1)
Ehab wafik CV(1)Ehab wafik CV(1)
Ehab wafik CV(1)Ehab Wafik
 
Wecreate
WecreateWecreate
Wecreate
Jos De Roeck
 

Similar to Rapid Application Development with MEAN Stack (20)

Inthiyaz-4.6Years-SharePoint
Inthiyaz-4.6Years-SharePointInthiyaz-4.6Years-SharePoint
Inthiyaz-4.6Years-SharePoint
 
Case study(i)
Case study(i)Case study(i)
Case study(i)
 
Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speech
Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speechVue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speech
Vue Storefront - Progressive Web App for Magento (1.9, 2.x) - MM18DE speech
 
COMP6210 Web Services And Design Methodologies.docx
COMP6210 Web Services And Design Methodologies.docxCOMP6210 Web Services And Design Methodologies.docx
COMP6210 Web Services And Design Methodologies.docx
 
Online Building Plan
Online Building PlanOnline Building Plan
Online Building Plan
 
Optimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best PracticesOptimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best Practices
 
Rashmi_TL
Rashmi_TLRashmi_TL
Rashmi_TL
 
Nitin_updated_Profile
Nitin_updated_ProfileNitin_updated_Profile
Nitin_updated_Profile
 
Monoliths to microservices workshop
Monoliths to microservices workshopMonoliths to microservices workshop
Monoliths to microservices workshop
 
SadikulIslamDotNetResume
SadikulIslamDotNetResumeSadikulIslamDotNetResume
SadikulIslamDotNetResume
 
AngularJS in Production (CTO Forum)
AngularJS in Production (CTO Forum)AngularJS in Production (CTO Forum)
AngularJS in Production (CTO Forum)
 
Home management WebApp presentation
Home management WebApp presentationHome management WebApp presentation
Home management WebApp presentation
 
Agileand saas davepatterson_armandofox_050813webinar
Agileand saas davepatterson_armandofox_050813webinarAgileand saas davepatterson_armandofox_050813webinar
Agileand saas davepatterson_armandofox_050813webinar
 
How to Maximize User Experience with Effective Front-End Technology Choices
How to Maximize User Experience with Effective Front-End Technology ChoicesHow to Maximize User Experience with Effective Front-End Technology Choices
How to Maximize User Experience with Effective Front-End Technology Choices
 
Sam segal resume
Sam segal resumeSam segal resume
Sam segal resume
 
Disruptive Trends in Application Development
Disruptive Trends in Application DevelopmentDisruptive Trends in Application Development
Disruptive Trends in Application Development
 
Road to agile: federal government case study
Road to agile: federal government case studyRoad to agile: federal government case study
Road to agile: federal government case study
 
Ehab wafik CV(1)
Ehab wafik CV(1)Ehab wafik CV(1)
Ehab wafik CV(1)
 
Dharik_Soni
Dharik_SoniDharik_Soni
Dharik_Soni
 
Wecreate
WecreateWecreate
Wecreate
 

Recently uploaded

Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 

Recently uploaded (20)

Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 

Rapid Application Development with MEAN Stack

  • 1. RAD with MEAN A New Approach to Application Development
  • 2. We are a bunch of nerds who love technology and problem solving Our Mission is to: • Identify the problem that customer is trying to solve • Help choose the best approach for his situation • Solve the problem with in the iron triangle constraints • Have Fun doing all the above steps We challenged ourselves to build a TODO application over a weekend with two of the most talked about full stack technologies After analyzing the results and code extensibility, we picked a winner
  • 3. New Approach vs Traditional • Business has an idea that needs to be market tested without having to spend a million dollars in development cost • Traditional SDLCs take considerable story writing, planning, design, development, testing and stabilization efforts • Also any change will mean all the above phases. Traditional application or product development approach is not very forgiving when it comes to changing requirements • We need an approach where we can create a mobile ready web application in a short amount of time and still be very flexible in changing it without impacting existing data or having to do significant code refactor in all layers • New approach we are proposing here will allow developers to build in small chunks, test and validate with business and customers before building next chunk and the cost of changing the design or architecture at any point is negligible • We need something which enables businesses to decide as late as possible and development team to deliver as fast as possible
  • 4. An App in a Weekend • Mobile ready, works on small / big screens • User can have his todo list displayed + ability to add/remove/modify items • User can Assign priorities and due dates to the items • User can sort his list using due date or priority • User can mark an entry as completed • Every client operation is done using JavaScript, reloading the page is not an option (for future offline capabilities) • RESTful API which will allow a third-party application to trigger actions on this app (same actions available on the webpage) • Ability to pass credentials to both the webpage and the API • Ability to create users in the system via an interface, a signup/register screen
  • 7. Signup Screen Sign Up Screen | Client side validations | Server side validations
  • 9. TODO Screen Task updated in DB as soon as user checks it on client
  • 13. Is this extensible or just prototype Add Male/Female flag to User.profile • Add drop down in SignUp screen and VO – 30mins • Add flag to User schema in db.js – 10mins Add ability to update/delete existing user • Add link from TODOs, new save & delete buttons, add $resource.put & delete – 2hrs • Add Rest put and delete methods in services.js– 30mins • Unit Testing – 20mins Add two fields to Tasks collection (table) • Add to schema (existing documents will be intact) – 20mins • No changes needed to api or service codes -- 0 • Add to New, Edit, and View divs in UI any styling issues– 2hrs • Unit Testing – 20mins
  • 14. “MEAN” stack (or “AMEN” stack ;-) • Mongo DB – http://www.mongodb.org/ • ExpressJS – http://expressjs.com/ • AngularJS – http://angularjs.org/ • NodeJS – http://nodejs.org/ • Knowledge of JavaScript is the only skill required to code, maintain and extend this application
  • 15. Adoption Risk Mongo DB http://www.mongodb.com/customers/ • eBay: with 250M writes/day, 10M updates, 500M to 1B reads, 2ms (yes, millisecond) response time 24/7/365 • Craigslist: Initial MongoDB deployment was designed to hold over 5 billion documents and 10TB of data ExpressJS http://expressjs.com/applications.html • MySpace • Yummly NodeJS http://nodejs.org/industry/ • Microsoft Azure • Yahoo • eBay, Walmart etc… AngularJS [by Google] http://builtwith.angularjs.org/
  • 16. Rapid Development • The skillset is simple, a developer who understands JavaScript is good to go on all layers, no UI developer vs business layer vs db layer • Communication between front-end to business to db layer is all happening through JavaScript objects which is the reason for so much gain in development speed • MongoDB gives us NoSQL speed without constraining us to name value pairs, each document in MongoDB can store information of up to 16MB • MongoDB’s schema agility allows storage of differently structured documents in same collection. So if the structure of a table has changed, no need to worry about existing data, it will work fine • ExpressJS and AngularJS abstract and give us most of the common classes that we have to code in all applications so developers write and maintain less code
  • 17. Scalable Application • NodeJS is an event-driven server-side JavaScript environment. Node runs JavaScript using Google Chrome’s V8 Engine which means three very important things – JavaScript runs extremely fast on Node – Node can render client side pages on server side for mobile applications when needed or for old browsers which have issue with JS speed on client side – Node is even-driven which means no threads are required like for Java and .Net applications, it is more natural multi threaded IO with Node • MongoDB is one of the best and easy to master horizontally scalable NoSQL database around. Sharding with MongoDB is very easy and its document model gives us schema agility which is a super power in app development world
  • 18. If traditional application development is not working for you anymore and you are thinking of alternative approaches, we can help you Feel free to contact us