Community running on Google App Engine
Python CSS JavaScript
Latest commit c8af57e Jan 5, 2014 @livid Merge pull request #32 from ma6174/github_rank
sort github repositories by stargazers_count
Permalink
Failed to load latest commit information.
docs/zh-Hans To be continued in Kunming. Nov 28, 2010
html5lib A lot of new stuff are in. And I'm working on next version. Mar 20, 2012
mapreduce To be continued in Kunming. Nov 28, 2010
static A lot of new stuff are in. And I'm working on next version. Mar 20, 2012
tpl Merged with recent changes. Mar 23, 2012
twitter Fixed a length calculation bug in Twitter Sync. Jul 23, 2010
txt Now move topic is possible. Dec 25, 2010
v2ex A lot of new stuff are in. And I'm working on next version. Mar 20, 2012
.gitignore app.yaml is isolated. Aug 1, 2010
LICENSE Richer docs. Aug 28, 2010
README Gist style updated. Aug 2, 2010
README.md Richer docs. Aug 28, 2010
api.py add /api/replies/show.json Jan 10, 2012
app.yaml.example For syncing to stormwind.local. Jun 3, 2011
appengine_console.py Place features are in. Aug 3, 2010
avatar.py Avatar logic enhanced. Oct 11, 2011
backstage.py Protection is in. Dec 31, 2011
blog.py A very special blog mode is in. Apr 20, 2011
config.py.example Fixed a problem in iForgot. Aug 14, 2011
css.py To be continued in Kunming. Nov 28, 2010
data.py MapReduce is in. MobileMe is in. Jul 27, 2010
favorite.py Protection is in. Dec 27, 2011
feed.py Merged with recent changes. Mar 23, 2012
images.py A new BaseHandler. Jan 25, 2011
index.yaml A lot of new stuff are in. And I'm working on next version. Mar 20, 2012
mail.py Going to work on site configurator. Aug 24, 2010
main.py Merged with recent changes. Mar 23, 2012
mapreduce.yaml MapReduce is in. MobileMe is in. Jul 27, 2010
member.py sort github repositories by stargazers_count Dec 29, 2013
misc.py Now topic can be deleted in mobile edition. Mar 2, 2011
money.py For syncing to stormwind.local. Jun 3, 2011
my.py Increate number of nodes showing on my nodes page. Dec 15, 2011
notes.py Planes is in. Apr 5, 2011
notifications.py Mobile enhancements. Jan 13, 2012
page.py Minisite page serve is basically working. Oct 16, 2010
place.py L10N minor bugs fixed. Oct 9, 2010
queue.py Topic bookmark is basically working. Nov 5, 2010
sso.py Fixed a bug. Oct 27, 2011
t.py Twitter link patched. Nov 23, 2011
template.py New feature: favorite/unfavorite nodes. Nov 4, 2010
topic.py Dynamic description in head. Jan 4, 2012
xmpp.py Now you can tweet from Email and Gtalk via V2EX. Aug 2, 2010

README.md

Project Babel 2

Project Babel 2 is an open source software package for creating and supporting communities. It's written in Python and running on Google App Engine, which is a free and robust cloud hosting infrastructure.

V2EX, a community about sharing and discovering interesting stuff of the world, is proudly powered by Project Babel 2.

Features

  • Topics are organized under Nodes (Discussion Areas), you can have many Nodes in one community
  • Nodes can have header, foot and category property, or organized under Sections
  • Two clean themes: one for desktop browser, another for iPhone and Android
  • Optimized for modern browsers
  • Built-in WebDAV avatar facility, you can host all avatars with MobileMe or other WebDAV servers
  • Atom feed output
  • HTML5
  • Built-in MapReduce tasks for optimizing community data
  • Built-in OAuth Twitter client for tweeting and syncing topics/replies
  • Built-in Notes feature
  • Gravatar support

Installation

It's recommended to get the latest codebase of Project Babel 2 with git:

git clone http://github.com/livid/v2ex.git v2ex

Then you can rename v2ex to whatever you want to match your own App Engine AppID. And follow the steps:

  1. Copy app.yaml.example to app.yaml and change its application to match your own AppID.
  2. Copy config.py.example to config.py, and if you want to use the built-in Twitter features, please fill in your own OAuth consumer key and secret. And callback address for Twitter is http://your_app_id.appspot.com/twitter/oauth .
  3. Add this folder to Google App Engine Launcher as an existing application, and click Deploy. It's done and quite simple, right?

If you have any questions or feature requests, feel free to discuss it in official development node at V2EX:

http://v2ex.appspot.com/go/babel

Troubleshooting

FAQ

Why I got an error page says it needs index?

For newly deployed App Engine app, it took some time for Google to build indexes so that your data can be fast accessed. It usually take up to an hour to build all indexes required for a new installation of Project Babel 2.

How about performance?

According to our actual operation data, Project Babel 2 is able to support 100,000 pageviews under App Engine free quota. If you don't mind enabling billing, Project Babel 2 is able to support large sites with millions pageviews/day as long as you have enough budget for traffic.

Performance is always our area of focus, we'll keep improving it.

License

Project Babel 2 is licensed under very liberal BSD license.

Copyright (c) 2010, Xin Liu All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of the OLIVIDA nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.