CCSF Ruby, PHP, and Seaside Term Projects

February 15, 2010

in Editorial,PHP,Ruby,Seaside,Smalltalk

This semester I’m going to have my Ruby and PHP classes build a form driven, AJAX-y web application as the final project. This is a bread-and-butter assignment that performs the basic task of storing form data in a database then displaying it. We’ll deal with the ever present Persistence Problem by using a SQLite3 database to store user input, and the AJAX/Javascript layer will be all JQuery.

I’ve created the PHP proof of concept site at http://www.istoasisto.com, and it looks like this:

A classroom project of this size can be completed in four to six weeks, depending on the programming and web skills a student brings to the class. More is always better.

The PHP course will be starting from scratch (no cakePHP, no Drupal, no Joomla), while my Ruby course will be using Rails. I’ll be doing the project in Seaside. When all is said and done, we will count the lines of PHP, Ruby, and Smalltalk to see who get bragging rights for writing the fewest lines of code.

If you want to work along wtih us, your project should have these features:

  • An HTML form.
  • JQuery form manipulation.
  • AJAX via JQuery.
  • Validated form input.
  • Form data stored in a SQLite database.
  • A Recaptcha form.
  • User data safely displayed (potentially harmful characters sanitized).

There are dozens of features we could hang on this skeleton: pagination, search, social features (Twitter, Facebook, Buzz, etc), as well as polls, voting, thumbs-up/down, email, XML export, RSS feeds, Section 508 compliance, and more. I’ll be satisfied if most of my students can achieve basic functionality before semester burnout sets in.

And about that Seaside course—there isn’t one yet. But it is on my TODO list for future courses at CCSF. For the time being, as part of my own Smalltalk education, I’ll take this opportunity to complete the class project using Seaside. Since Smalltalk and Seaside are new to me, I’ll be starting on the same page as my PHP and Ruby students. This will be fun. I’ll be doing this project with Cincom Visualworks Non-Commercial which is free for non-commercial use on Windows, Linux, and Mac OS X.

OK. I’d better get to work on the Ruby part of this project before the Rails team unleashes another new product release just to confuse me.

Happy hacking…

Share and Bookmark
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Blogplay
  • FriendFeed
  • StumbleUpon
  • Tumblr
  • Twitter
  • Add to favorites
  • LinkedIn
  • Posterous
  • Reddit
  • Suggest to Techmeme via Twitter

{ 6 comments… read them below or add one }

Jeffrey February 15, 2010 at 2:00 pm

You’re not letting PHP students use a framework yet you’re judging based on number of lines of code? Tsk!

SQLite is perfect for learning and demonstration projects; I have fun making .NET developers squeak with glee when I tell them that my demo code contains everything they need including the database, database engine and middleware driver, and they don’t have to futz with SQL Server to get it to work.

doug February 15, 2010 at 8:42 pm

Fear not for my PHP students’ chances. With PHP’s 1,700 built-in functions in hand, and some judicious planning, they’re definitely in the running.

SQLite is so cool. Have you read the license? “The author disclaims copyright to this source code. In place of a legal notice, here is a blessing: may you do good and not evil. May you find forgiveness for yourself and forgive others. May you share freely, never taking more than you give.” –Richard Hipp

Derek February 16, 2010 at 7:18 pm

Excellent project: to run an apples-to-apples comparison of these three. So how might we follow along? This blog? The POC site? A course site somewhere?

doug February 17, 2010 at 1:00 am

Derek — those are all good suggestions, and the one I’m going with (because it involves the least work) is to do a blow-by-lingering-blow report in this blog. We have 13 weeks remaining in the Spring semester, and I have many students to bring up to speed. I’ll be posting updates as time passes. You might want to add this blog to your RSS reader so you’ll know when something of interest is on the burner.

Mojgan March 12, 2010 at 11:06 pm

I know that! This is not relevant to this article but hey this is my favorite blog & hoping i can get help here. I am going banana if i do get this solved now.
I have a link/button wrapped by DIV, calling ajax upload function
ref. to the ajaxupload.js here: http://valums.com/ajax-upload/

this button works on all browser “IE, Chrome, O, Safari” except FireFox! Can anyone help, please?

Mojgan March 13, 2010 at 2:37 pm

my problem with button to upload image files on Firefox solved, in case you like to know. It was wrong value of font-family and font-size in my CSS, even though it was not directly related to button class!

Leave a Comment

Previous post:

Next post: