Skip to content

Instantly share code, notes, and snippets.

@diorahman
Created February 22, 2012 15:51
Show Gist options
  • Save diorahman/1885642 to your computer and use it in GitHub Desktop.
Save diorahman/1885642 to your computer and use it in GitHub Desktop.
ROADMAP OVERVIEW
TODO
1. Manage secure connection (through Google's AppSpot (https://appengine.google.com))
- (current) scenario
- By using the standard frameworks and provided api (http://code.google.com/appengine/docs/python/apis.html)
- redirecting request from web app (PHPServer) to application server (NodeServer)
- manage images (tentative)
- refs
- http://code.google.com/appengine/docs/python/gettingstartedpython27/
- http://code.google.com/appengine/docs/python/apis.html
2. Worker (template, project management, zipper, send mail)
- requirements
- receive order from NodeServer -> receive temporary project id
- temporary project ids management (using queue)
- temporary project id is used as token for ordering jobs (queue)
- the queue is handled using 0mq (http://www.zeromq.org/bindings:node-js) or resque (https://github.com/technoweenie/coffee-resque)
- preparing project templates
- translating params sent by PHPServer into mustache context
- render templates
- zip the resulted project
- compile!
- submit the zip file to RemoteCompilerServer
- receive the project id
- associating project-id with temporary project id (temporary project id is used as token)
- the association persisted on redis server (redistogo.com)
- answer with project-id if the compilation succeed!
- send the compilation result to user
- upload the compilation result to S3 and send the link by e-mail
- push the compilation status to user via websocket
3. Application server
- manage user
- using 3rd party services (facebook and twitter)
- associating user with generated token from Remote Compiler
- using plain authorization
- authenticating request from PHPServer
- using sessionid and userid
- handling icon (image upload)
- tentatively using appspot
- resize it to 64 and serialize it as base64
- more exploration on this: https://gitorious.org/hicg/hicg/blobs/master/index.php - so user could design their own icon on the fly
- manage job orders and queue using 0mq or resque
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment