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)

