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:
(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:
Here are some of the issues I’m pondering at this point:
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.
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.
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.