First Rails project: input welcomed


#1

Hi everyone,

I’m working on my first Rails project and I’d like some input before
I get started coding in earnest. My previous Web app development
experience has been in standard Python CGI and Zope. I’m here to find
out more about Rails.

I work in technology in an average-sized school district (8,000
students) in Minnesota (USA). One of the problems in our elementary
schools (students aged 5-12) is that teachers in different schools
don’t have an easy way to send quick little messages (via email) to
colleagues in other buildings who may teach the same subject.

A first run at this app would have three tables: messages,
staff_members, and a join table staff_members_messages to fix the
many-to-many relationship. I’ve posted my preliminary SQL schema at:

http://homepage.mac.com/tdwilson/.Public/ideablaster_sql.html

(If you take a look at the SQL, you’ll notice that I am envisioning
adding attachments and comments to the messages.)

You can see a screenshot of the current CGI version at my blog:

http://technosavvy.org/?p=360

Here are some of the issues I’m pondering at this point:

  1. I think I’ll need classes called Message, StaffMember, Comment,
    and Attachment. I’m not sure what kind of controllers I’ll need. I
    think I’ll need a management interface to modify staff member
    records, delete messages if necessary, edit comments, delete
    attachments, etc. Users will need to be able to send messages and
    search previously sent messages. Unfortunately, I don’t think I’ve
    fully grasped the MVC pattern.

  2. I’ve got a staff_members table with email addresses and
    (effectively) boolean fields that record which school(s), grade(s),
    and subjects that the teacher teaches. I want to allow anonymous
    browsing of previously sent messages, but I need our teachers to log
    in to be able to send them. I’d like to authenticate them to our LDAP
    server, but I’m not sure how to do that with Rails.

  3. I think it would be cool to use AJAX to build the interface for
    attaching files. I’m envisioning an “add attachment” button that,
    when pressed, would cause the file upload form element to appear
    along with a “+” for adding another attachment. I think this will
    certainly wait until I have a functioning system.

All in all, I have a good sense of how this app should function and
look, but I’m obviously lacking in experience with the Rails part.
I’d appreciate any advice. If anyone on the list is interesting in
working on this project with me, I’d appreciate the help. I’m sure
that many other school districts would be interested in this
application too, and I would like to make it available with an open
source license once it’s finished.

If you’ve gotten this far, thanks for reading. I’m enjoying Rails so
far and I can see that there’s a pretty dynamic Rails community that
has sprung up.

-Tim


Tim Wilson
Twin Cities, Minnesota, USA
Educational technology guy, Linux and OS X fan, Grad. student, Daddy
mailto: removed_email_address@domain.invalid aim: tis270 blog: http://technosavvy.org


#2

I don’t want to dissuade you from learning rails or anything, but it
seems like this problem has probably been solved several times already.

Perhaps you just need something like one of the various open source
forums like phpBB or eBlah (Www.eblah.com). Properly configured I would
bet that those would meet most of your needs out of the box.

You could also try using basecamp. I seem to recall that they give some
sort of special deal for schools.

Tell 'em I sent ya.
http://basecamphq.com/?referrer=dukeplasticsurgery

_Kevin


#3

Tim Wilson wrote:

Hi everyone,

I’m working on my first Rails project and I’d like some input before
I get started coding in earnest. My previous Web app development
experience has been in standard Python CGI and Zope. I’m here to find
out more about Rails.

Hi Tim, this sounds like an excellent idea for a Rails app. Being a
newcomer myself, can’t help you much with your questions, but seems like
your’e on your way. it might be very helpful for other newcomers if you
documented your progress as you went along.

cheers,

Amr