[start with finished app] Welcome everybody, my name is Derek Allard. I'm a web developer and instructor from Toronto, and the author of a few open source Code Igniter applications. What I want to do was share my expereince with you, and make a video tutorial to show how to build a moderately complex Code Igniter application. I'll be building on concepts introduced in the first video tutorials available on the Code Igniter site, so if you haven't seen those yet, I'd encourage you to go watch them now. Today we'll be building an application to look up Code Igniter functions. It will be AJAX powered and take advantage of the prototype and scriptaculous javascript libraries. We'll also consider what the user experience will be if they don't have javascript enabled, and use accepted unobtrusive techniques so that our work degrades gracefully. All our database calls will come from models, and we'll use caching to maximize the performance of this app. Here's the finished product, it offers the user an autocompleting text field, and when it retrieves the function you are looking for, it uses AJAX to load it beneath the search box without refreshing the page. In order to jump right into models, javascript effects and AJAX, I've built most of the application already. All of the files used here are available online at video.derekallard.com Here's our database. (.sql available in downloads) Alright, lets get started. add db connection change routes for change default controller name autoload database class, url helper (contains site_url and base_url, index_page()) make Application controller (title and view load) make application view... show how the js file was included, change to base_url() ** add constructor.js abstract out header and footer views - add $title, $title, $extraHeadContent make video, download and about controllers and views simpsons joke (Phew! Boy, all this computer hacking is making me thirsty. I think I'll order a "Tab" Oh, no time for that now, the computers starting!) our work on the other controllers is now done. I'll spend a bit of time now focusing on creating a model for our application, an autocompleting text field, and an ajax database call. our model isn't built yet, but I'll call it functions_model, and load it in the Applications controller. create model - 2 simple functions we'll use set up JS now in application set up form to point to right controller/function build results page ajax-ify page add caching