Rapid Application Development - The Open Way James McCarthy, MAD Collin McIntyre, MAD Mirko Vucicevich, Science Computing
Background Units need custom applications Commercial options can be expensive Politics/RFPs take a long time Leverage skills of campus developer community Collin
Open Source Software Software with public code base Licensed to use and modify freely Open source software helps developers build applications quickly Collin
Collaboration Reduces duplication of effort Lets team members leverage their talents More well-rounded end product Collin
Live Demo This is Mirko’s desktop. He’s going to build an application while Collin and James take you through some of the tools and techniques that have worked well for us. Live demo goes here James
The Tools We Use Languages and Web application platforms Javascript Libraries UI Libraries Other Tools Collaboration Live demo goes here James
Web Application Frameworks Django and Rails Frameworks for rapid web application development Uses MVC design pattern Emphasize reuse, DRY, plugins Live demo goes here James
Django Framework written in Python Applications programmed in Python Plugins managed with pip Ex: Haystack for searching Live demo goes here Collin
Ruby on Rails (RoR) Framework written in Ruby Applications programmed in Ruby Thousands of useful plugins called gems Ex: CAS, calendars, UI elements, image uploads Live demo goes here Collin
Who uses these? Django: Instagram, Mozilla, Pinterest, Rdio Rails: Twitter (early days), Github, Groupon Live demo goes here Collin
How do they work? Generate web pages based on database objects Templates render views based on actions (create, read, update, delete) Django uses Jinja RoR uses ERB (Embedded Ruby) Live demo goes here James
Template Example ERB TEMPLATE Live demo goes here GENERATED HTML <h1><%= @post.title %></h1> <h2><%= @post.author %></h2> <p> <%= @post.content %> </p> <% if controller.valid_user %> <%= link_to ‘Edit’, edit_post_path(@post) %> <% end %> Live demo goes here <h1>Why Templates Rule</h1> <h2>James M</h2> <p> This is why I think templates are the best! </p> <a href=”http://myapp.com/posts/41/edit”>Edit</a> GENERATED HTML James
Javascript Libraries jQuery Node.js Highcharts FullCalendar jQuery UI jQuery Mobile Node.js Highcharts FullCalendar Live demo goes here Collin
UI Libraries Bootstrap Foundation Glyphicons Font Awesome The Noun Project Live demo goes here Collin
Other tools Source control: git Text editors: IDEs Sublime vi Brackets Notepad++ IDEs Eclipse Live demo goes here James
Collaboration Tools git.uwaterloo.ca and github Instant messenger: Google Hangouts Searchable archive of chats Koding Koding demo Live demo goes here James
Software demos Herbarium Booking System Evaluate Survey tool Live demo goes here Collin and James
Next steps Foster better collaboration between people like us We just found out each other existed a few months ago Who else is out there? How can we help each other out? Live demo goes here James
Questions? James McCarthy jmccarth@uwaterloo.ca Collin McIntyre cmcintyr@uwaterloo.ca Mirko Vucicevich mvucicev@uwaterloo.ca
Example - Blog Model Views Blog post Create a post Read a post DB MODEL CONT. Model Blog post Views Create a post Read a post Update a post Delete a post UPDATE DELETE Live demo goes here