Tuesday, June 1, 2010

Open sourcing Thoughtsite - A discussion forum designed for Google App Engine

Editor's Note: Cross-posted from the Open Source at Google Blog.

Google App Engine is a powerful system, designed to take all the pain of infrastructure management and performance scaling out of web application programming. App Engine applications are easy to build, easy to maintain, and easy to scale as your traffic and data storage needs grow.

While there are a lot of open source projects available to learn how to use App Engine, there have been few open sourced, comprehensive web applications built on App Engine to help you learn how best to use the advanced features that App Engine provides.

Enter... Thoughtsite!

Thoughtsite is a discussions/forum web app designed for Google App Engine. The main features of the app are:
  • A flexible system that could be used for any kind of discussion forum.
  • Voting, tagging, comments and a reputation point system for users.
  • Full text search on App Engine with Apache Lucene.
  • Search for threads by tags or by keywords. Threads can also be linked to from user profiles.
  • Users gain reputation points based on community votes for their contributions.
  • Full-fledged user profiles with info, points, contributions, user's personal tag cloud, etc.
  • Basic duplication detection filters to detect similar threads so posters can avoid creating a new thread if one already exists.
  • Basic spam and gaming filters (self-voting, cross-voting, etc.).
  • Comprehensive admin section that allows moderation of individual posts and users. Users can flag objectionable content or trolls.

Best of all, Thoughtsite is completely open source using an Apache 2 license and the code is available for download.

We hope you download the source, take it apart and play with it. Thoughtsite will work as a complete app if you want to use it to host a discussion forum on your own domain, but its real value is in taking it apart to understand how it uses App Engine under the hood.

No comments: