Developing a web application for school reports in Python
February 15, 2009 2:48 PM
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?
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?
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
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
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
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
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
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
posted by PueExMachina at 6:22 PM on February 15, 2009
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
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.
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