views:

165

answers:

3

Hi folks,

I'm building this app in Python with Django.

I would like to give parts of the site wiki like functionality, but I don't know how to go on about reliability and security.

  • Make sure that good content is not ruined
  • Check for quality
  • Prevent spam from invading the site

The items requiring wiki like functionality are just a few: a couple of text fields.


Can anyone help on this one?

Would be very much appreciated. :)

+2  A: 

You could try using Django Wikiapp, which gives you most of the features you want in a wiki, including history and the ability to revert to older versions of an article. I have personally used this app and it's pretty self-explanatory; they also have a bit of documentation at http://code.google.com/p/django-wikiapp/source/browse/trunk/docs.

In terms of spam protection you can to one of two things or both: password protect the pages that have to do with editing the wiki, and use Akismet to filter for spam. I'm working on something similar and this is probably what we'll end up doing.

Danny Roberts
@DannyRoberts Thanks for you great reply! I can't find much info about django-wiki. There are no READMEs or DOCS in the repository. If you have any documentation, could you add a link in your reply?
RadiantHex
@RadiantHex I gave you the wrong link to django-wikiapp! The link I posted was to another project that I have never used. Sorry!
Danny Roberts
@DannyRoberts Thank you very much for getting back to me! This app looks promising! Thanks
RadiantHex
@DannyRoberts I'm not quite sure how to use the Article models within django-wikiapp. Any suggestions?
RadiantHex
@Danny: I'm having a gazillion problems... if you could help some way that would be awesome.
RadiantHex
+1  A: 

Assuming that there will be a community of users you can provide good tools for them to spot problems and easily undo damage. The most important of these is to provide a Recent Changes page that summarizes recent edits. Then each page that can be edited should retain prior versions of the page that can be used to replace any damaging edit. This makes it easier to undo damage than it is to damage things.

Then think about how you are going to handle either locking resources or handling simultaneous edits.

If you can tie edits to users you can provide some administrative functions for undoing all edits by a particular user, and banning that user.

Checking for quality would be tied to the particular data that your application is using.

Jason Aller
+1  A: 
  • Make sure that good content is not ruined = version each edit and allow roll-backs.
  • Check for quality = get people to help with that
  • Prevent spam from invading the site = get people to help with that, require login, add a captcha if need be, use nofollow for all links
DA