Skip to main content

How to make web apps that rock

Proposed by David Crutchfield

Notes

Making Webapps that Rock
David Crutchfield from School of Medicine
- how many people working on modern web app?
    - RESTful api
    - mongo db type
    - front end framework
    
- what CMS software?
    - Wordpress
    - Drupal
- David approach of building of profiles.stanford.edu
    - site grew out community profiles (CAP - for bio/CV data; sort of a LinkedIn for Stanford); old site was jsp code and custom home brewed app
    - wanted a different approach with profiles and leverage new technologies
    - separated concern; created CAP api: RESTful that brings it from CAP and stores in mongodb in json format
    - Java spring used as base
    - other tech related more to front end:
        - backbone.js,
        - marionette that sits on top of backbone,
        - SASS (abstraction of css that lets you code css),
        - mustache templates (to make pages crawl-able and indexed),
        - require.js for dependencies,
        - coffeescript was used but not used anymore (pain of using it outweighed its benefits)
    - after user gets initial page it is snappy
    - backend: (this is the CAP api)
        - mongodb with Java spring in a tomcat container (mongo allows for later scaling)
            - mongo introduced to put a layer of caching and help with page performance
    - 4 apps built on this
    - security:
        - CAP api uses oauth

            
- participants comments/questions:
    - Greg from GSB: most of their apps built using force.com environment
    - How do you decide what to use in terms of new technology?
        - For profiles.stanford.edu - was free to use whatever they wanted to use.
        - Need to figure out how to leverage new stuff (i.e. new frameworks like ember, angular, etc..)
        - Support is a big consideration especially when you have contractors are working on it.  You end up getting contractors that want to use the 'latest' technology
        - Going to responsive world impacts choice of Backbone due to view population
        - big part of design is how quickly page elements load for user (2 seconds max time is guideline used)
        - using fontawesome for iconography to help load times
    
    - How do testing?
        - selenium
        - now hired person dedicated for testing
    - what is considered a webapp?
        - is it a site that's responsive?
        - what are other elements?
    - how to test page loads?
        - dev tools on chrome give analytics
        - higher level: load impact aka http://loadimpact.com/ (allows you to take url and bombard it with load)
        - Adobe CQ CMS has analytics
        - pingdom is another tool
        
    - are they familiar with nestpia.com?
        - no - not used
        - they've used Yeoman with jhipster to build up a stack (but just to play around)