Search code examples
google-app-engineopen-source

Overcoming challenges when building an open source learning platform on app engine


I'd like to build an open source online learning platform on top of app engine, but there are a couple of challenges that make me doubt if it's even a good idea.

The reason I'd like to do it on app engine, is because it takes care of the hosting. Most open source learning platforms today require a LAMP stack, so someone in the school has to know how to upload the software via ftp, look up database login details, select a hosting provoder,...

The only problems on app engine I'm struggling with are

  1. The process of setting up an app id is geared towards developers.
  2. schools would still need to download the app engine sdk
  3. Billing is done on raw resource usage, which is hard to translate into software feature usage.

For 1, it's easy enough to write up a guide, but if you have any ideas on how to make it easier, let me know.

Problem 2: The sdk, or if possible, only appcfg.py, could be included into some 'installer', which asks for your app id, and would set it up for you. This would also allow me to initialize the datastore.

But I'm really stuck on 3. It would be possible to estimate how much usage of a certain feature will cost, track the total usage of a feature and estimate the bill for the school that way, showing a breakdown of which features are costing them the most, but I don't know a good way to do this.


Solution

  • App Engine is for developers, period, end of discussion. Instead of giving each school it's own app id, as in myschool.appspot.com, what if instead you set up one central project at, say, myschoolthing.appspot.com, and that school would be at myschoolthing.appspot.com/school/myschool. You pay resource based fees to appengine, and schools pay you fees at whatever level you want. So if you want them to be billed by number of students, go ahead. Hours of use? Go ahead. Etc., etc., etc.

    You can create an easy to use school sign up page, to replace confusing ad technical deployments.

    This method does require you to pay app engine and set up a way to accept payments, but it is much closer to what you want.