Developing a web application for school reports in Python
February 15, 2009 2:48 PM   Subscribe

What web framework, preferably in Python, should I use to develop a student reports web application?

My old school wants to employ me to replace their current student reports system. I think that the way to go is to create a web app that the teachers can use to submit comments and exam marks on each student they teach, which will go into a database that can be accessed by the administrative staff to generate personalised reports for each student. This will replace the current system of the teachers filling in special MS Word templates for each student, which causes problems with them blocking each other from filling in the documents, and generates an enormous administrative burden in checking everything is filled in, chasing the delinquent teachers down, and printing the whole caboodle off.

I'm experienced with Python, but have never used it for web dev (except for messing around with Plone once). I have used Ruby on Rails and MySQL to make a survey website, but I never really got to grips with Ruby, and this will be a bigger project involving more business logic. I would prefer not to use PHP. What would be a good framework to use, very preferably in Python, and considering that the focus of this project will be on secure data entry and manipulating that data to generate printed reports, rather than web-based content?
posted by topynate to Computers & Internet (9 answers total) 2 users marked this as a favorite
 
Think very carefully before doing a custom system because this sounds like the type of system where there are already well established off-the-shelf solutions that are feature rich, tested and that just work.

Instead of wasting time on coding, you can put your efforts into deploying and customizing the solution, training, etc. Also, your school will have access to proper support from a established company, which makes them less dependent on a single individual. And when you tell them that you can have their system up and running in x weeks instead of y months, they will love you for it.

Trust me on this, pick a off-the-shelf product.
posted by Foci for Analysis at 2:59 PM on February 15, 2009


Django?
posted by simplesharps at 3:09 PM on February 15, 2009


I'm a big fan of Python (and have used CherryPy as a web application framework succesfully) but I'm with Foci here - I'm sure you'll find an existing package (probably in PHP) and that life would be a lot easier adapting that than starting from scratch.

FWIW Django is almost certainly the 'default' python web application framework so you'd certainly want to look at that.
posted by southof40 at 3:25 PM on February 15, 2009


If you're gonna roll your own, Django is the best way to go.
posted by Mach5 at 4:21 PM on February 15, 2009


Django is indeed the ultimate as far as Python systems, there are others which have potential, but Django has implementation in spades.

However, rolling your own authentication system, templates from scratch, CRUD, etc., for the most part doesn't make a lot of sense for what you describe as basically a straightforward data-in-data-out application. Drupal could do this with much, much less coding, and much better maintainability in your case (think of the future: you do not want to maintain lots of scratch-written code, it will suck and you'll get phone calls you don't want in the future.

And this is coming from a guy who loves, loves, loves Django.
posted by tmcw at 4:50 PM on February 15, 2009


Another option here is TurboGears.
posted by RikiTikiTavi at 4:54 PM on February 15, 2009


If Python, then Django, but as said before: don't roll this one yourself.
posted by The Michael The at 5:02 PM on February 15, 2009


There is free software that does what I think you want. Check schoolforge.
posted by PueExMachina at 6:22 PM on February 15, 2009


Response by poster: Alright, I've looked at a few off the shelf solutions, and they seem to be pretty on the mark, except that they tend to be completely web-based, i.e. everyone logs into a foreign website and pays a yearly fee, rather than getting software for local installation. There are a few that offer local installation, which I'll present as an option. Disadvantage: I might talk myself out of a job! I've also looked at the open source schooltool project, which looks very interesting, but rough around the edges at the moment. If they implement reports properly by the version 1 release in April, it might become the best choice.

Thanks also for the suggestions of frameworks/CMSs. I'm thinking Django or Drupal, if we go with a bespoke system.
posted by topynate at 9:07 PM on February 15, 2009


« Older Why doesn't Audacity see my sound card?   |   I'm glad I'm not from the 80's, but for one night... Newer »
This thread is closed to new comments.