Developer Guide: ThinkUp Screencasts

ginatrapani edited this page Apr 4, 2011 · 4 revisions
Clone this wiki locally

A video tutorial of a developer performing a task can be a lot more informative and fun than reading a how-to, so the ThinkUp developer community hopes to produce a series of screencasts.

Each screencast should be short and to the point. Each should complete a single, small, real-world task and run between 3 and 5 minutes. (Screencasting software recommendation: ScreenFlow for Mac.)

While we haven't recorded one yet, here's an initial draft of possible episode topics for a series of ThinkUp Developer Screencasts.

How to modify the ThinkUp data structure

Walk through adding a field to an existing ThinkUp table, for example, an "account_status" field to the tu_owners table.

Concepts: SQL migrations, generating build-db_mysql.sql programmatically using the migratedb script, and generating ThinkUp model objects based on the data structure.

How to use a Data Access Object

Use a DAO to insert, update, or delete data from the ThinkUp data store. For example, add an "incrementFailedLogins" method on the OwnerDAO and write tests for its use.

Concepts: DAOs, DAO interfaces, the DAO factory, and tests; in general, ThinkUp's layer of abstraction for database agnosticism.

How to create a ThinkUp Controller to update the data store

Add an admin-only controller to get and set a ThinkUp user's account status and write the tests for it.

Concepts: ThinkUp's controller architecture (including AuthController and AdminController); writing controller tests.

How to implement a standard ThinkUp view

Set a user's account status with an HTML page that contains a form with a dropdown.

Concepts: Smarty templates and integration testing.

PHP Code Style Guide basics

A quick review of ThinkUp's style guide rules (max line length, variable naming schemes, docblocks) and how to implement them in Eclipse (our recommended IDE).

Test-driven development with SimpleTest and ThinkUp

A walkthrough of the test suite, how to configure and run ThinkUp tests.