Skip to content
This repository

Community running on Google App Engine

branch: master

Merge pull request #32 from ma6174/github_rank

sort github repositories by stargazers_count
latest commit c8af57e2d2
Xin Liu authored
Octocat-spinner-32 docs To be continued in Kunming. November 29, 2010
Octocat-spinner-32 html5lib A lot of new stuff are in. And I'm working on next version. March 21, 2012
Octocat-spinner-32 mapreduce To be continued in Kunming. November 29, 2010
Octocat-spinner-32 static A lot of new stuff are in. And I'm working on next version. March 21, 2012
Octocat-spinner-32 tpl Merged with recent changes. March 23, 2012
Octocat-spinner-32 twitter Fixed a length calculation bug in Twitter Sync. July 24, 2010
Octocat-spinner-32 txt Now move topic is possible. December 26, 2010
Octocat-spinner-32 v2ex A lot of new stuff are in. And I'm working on next version. March 21, 2012
Octocat-spinner-32 .gitignore app.yaml is isolated. August 01, 2010
Octocat-spinner-32 LICENSE Richer docs. August 29, 2010
Octocat-spinner-32 README Gist style updated. August 02, 2010
Octocat-spinner-32 README.md Richer docs. August 29, 2010
Octocat-spinner-32 api.py add /api/replies/show.json January 10, 2012
Octocat-spinner-32 app.yaml.example For syncing to stormwind.local. June 03, 2011
Octocat-spinner-32 appengine_console.py Place features are in. August 04, 2010
Octocat-spinner-32 avatar.py Avatar logic enhanced. October 12, 2011
Octocat-spinner-32 backstage.py Protection is in. January 01, 2012
Octocat-spinner-32 blog.py A very special blog mode is in. April 20, 2011
Octocat-spinner-32 config.py.example Fixed a problem in iForgot. August 15, 2011
Octocat-spinner-32 css.py To be continued in Kunming. November 29, 2010
Octocat-spinner-32 data.py MapReduce is in. MobileMe is in. July 27, 2010
Octocat-spinner-32 favorite.py Protection is in. December 28, 2011
Octocat-spinner-32 feed.py Merged with recent changes. March 23, 2012
Octocat-spinner-32 images.py A new BaseHandler. January 25, 2011
Octocat-spinner-32 index.yaml A lot of new stuff are in. And I'm working on next version. March 21, 2012
Octocat-spinner-32 mail.py Going to work on site configurator. August 24, 2010
Octocat-spinner-32 main.py Merged with recent changes. March 23, 2012
Octocat-spinner-32 mapreduce.yaml MapReduce is in. MobileMe is in. July 27, 2010
Octocat-spinner-32 member.py sort github repositories by stargazers_count December 29, 2013
Octocat-spinner-32 misc.py Now topic can be deleted in mobile edition. March 03, 2011
Octocat-spinner-32 money.py For syncing to stormwind.local. June 03, 2011
Octocat-spinner-32 my.py Increate number of nodes showing on my nodes page. December 15, 2011
Octocat-spinner-32 notes.py Planes is in. April 05, 2011
Octocat-spinner-32 notifications.py Mobile enhancements. January 13, 2012
Octocat-spinner-32 page.py Minisite page serve is basically working. October 16, 2010
Octocat-spinner-32 place.py L10N minor bugs fixed. October 09, 2010
Octocat-spinner-32 queue.py Topic bookmark is basically working. November 06, 2010
Octocat-spinner-32 sso.py Fixed a bug. October 27, 2011
Octocat-spinner-32 t.py Twitter link patched. November 23, 2011
Octocat-spinner-32 template.py New feature: favorite/unfavorite nodes. November 05, 2010
Octocat-spinner-32 topic.py Dynamic description in head. January 05, 2012
Octocat-spinner-32 xmpp.py Now you can tweet from Email and Gtalk via V2EX. August 03, 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.

Something went wrong with that request. Please try again.