OK here is the deal. Me and some buddies are doing a Podcast(for over 4 year now) and in April we relaunched the site, that included a new Backend. Since I only had 2 weeks back then for getting everything to work, I decided to create something from scratch so everything fitted precisely our needs. The whole thing was written in Python based on mod_python.
At the moment I don't have much to do so I thought about refactoring the code(since code you write in 2 weeks isn't the cleanest one as you can imagine), I came to the idea that I could base it on a CMS.
It did take me some minutes to write up the model for the whole thing but here it is:
All
- Create by
- Create at
- Edited by
- Edited at
Users
- Usermame
- Password
- Realname
- Administrator(True/False)
- Moderator(True/False)
- Profile visible(True/False)
- Profile picture
- Profile text
Tags(belongs_to_many :posts)
- Name
Posts(has_many :files, :comments, :tags)
- Title
- Feed Title
- EpisodeNumber
- Type(Podcast/News)
- Date
- Image
- Comments(Open/Closed/Hidden)
- State(Public/Auto/Hidden)
- Text
- Files
- Tags
Files(belongs_to_many :posts)
- File
- Size
- Duration(This needs libraries for determening the length of mp3/mp4/m4v files)
Comments(belongs_to :posts)
- Post
- User(If posted by a podcaster, so we can highlight the comment etc.)
- Date
- Hidden(True/False)
- Name
- IP
- Text
Pages
- Title
- Text
OK the stuff above is pretty simple, only the getting the duration of the mp3s etc. could be somehow troublesome.
Now comes the bigest problem, our download tracking.
This needs custom tables named Year_Month with the following format:
- rows with: fileID all, itunes, feed, other etc.
On every download we create new tables and rows as necessary. The part of getting the information back out and converting it into charts is quite complex.
Choosing...
So I took a look at Drupal, Django and Ruby on Rails. Drupal is PHP... well I have no problem with PHP the main question here is how to implement duration check for mp3s.
Django is Python since I wrote the current site in python too, many questions fall away.
Ruby on Rails seems pretty good for kickstart development (I love the Railscasts), unfortunately, trying to develop a Demo with Aptana RadRails failed epically to a 200 line stack trace. Since I didn't do anything with Ruby before I stopped there.
I hope that some of you people can help me with the choice here, since you may already have experience with Drupal/Django/Ruby on Rails that I don't have, and I really hate it to having start over after being half way though a project, only because there is some little thing that can't be implemented with technology XYZ.