Kevin Coughlin (S'12)

Objectives and Key Results (OKRs) for the Spring 2012 Semester
Objective 1: Create API Web Service (Frontend & Backend)


 * Key Result 1: Create unique API key for user in a secure manner using an encoding algorithm
 * Key Result 2: Store API key & user information using either AWS' SDB or DynamoDB
 * Key Result 3: Provide functionality for user to retrieve and manage their API key
 * Key Result 4: Provide administrative dashboard for API

Objective 2: Create COMTOR API backend


 * Key Result 1: Create API for useful calls to COMTOR based on future plug-in support and using good practices & standards
 * Key Result 2: Investigate SQS as a way to push API calls to be worked on by COMTOR backend service
 * Key Result 3: Provide documentation and code examples for COMTOR API

Timeline

3/26/12 - Logged in to check if I could edit the wiki... seems to be working now.

2/22/12 - Read: http://coding.smashingmagazine.com/2012/02/09/beginners-guide-jquery-based-json-api-clients/

2/20/12 - Read http://quietlyamused.org/blog/2012/02/19/on-naming/

2/19/12 - Implemented SQS

2/13/12 - Began working on COMTOR jar abstraction layer to call AWS SQS

2/12/12 - Revamped Keygen to work with DynamoDb. Implemented query against DynamoDB to check if key was already stored or not. Began implementing calls to AWS as methods to enforce good Object-oriented practices. and cleaned up code.

1/30/12 - Investigated JSON: generating JSON using JS from HTML form then sending to PHP to database/output, then send back as response to call Google Maps. Did this to work with JSON in every way possible. Now looking into CouchDB & PHP as a lightweight way to handle API information. Successfully installed CouchDB locally and interacted with using PHP. Now trying to implement with earlier google maps using JSON work.

1/23/12 - Successfully have form that takes e-mail, converts to MD5 hash, stores MD5, email, time/date, and IP in AWS SDB and sends API key to user email using SES. Now working on accessing SDB for admin panel, parsing XML, and sending data using AJAX / jQuery

Useful Links


 * Amazon SQS
 * SQS API - http://docs.amazonwebservices.com/AWSSimpleQueueService/latest/APIReference/Welcome.html
 * Web Design
 * Pre-fix free CSS - http://leaverou.github.com/prefixfree/
 * Google Maps KML - http://code.google.com/apis/kml/documentation/
 * Twitter Bootstrap (v2) - http://twitter.github.com/bootstrap/
 * Twitter Bootstrap (dark) - http://www.reddit.com/r/webdev/comments/p80pu/darkstrapcss_a_simple_dark_theme_for_twitter/
 * Beautiful Buttons for Twitter Bootstrap - http://charliepark.org/bootstrap_buttons/
 * Foundation (Another bootstrap) - http://foundation.zurb.com/
 * SMS / Voice / etc APIs
 * Tropo - https://www.tropo.com/home.jsp
 * Twilio - http://www.twilio.com/
 * DynamoDB
 * http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/SettingUpTestingSDKJava.html
 * http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/GettingStartedJavaQuery.html
 * CouchDB
 * Javascript & CouchDB - http://css.dzone.com/articles/couchdb-javascript
 * Using PHP to interface with CouchDB - http://wiki.apache.org/couchdb/Getting_started_with_PHP
 * HTML5
 * http://html5please.us/
 * Java Servlet and POST
 * Using Jquery - http://stackoverflow.com/questions/5417359/jquery-post-to-servlet
 * Using AJAX - http://veerasundar.com/blog/2008/12/implementing-ajax-in-java-web-application-using-jquery/
 * API Design
 * How to add an API to your web service - http://particletree.com/features/how-to-add-an-api-to-your-web-service/
 * How to design a good API - http://piwik.org/blog/2008/01/how-to-design-an-api-best-practises-concepts-technical-aspects/
 * http://news.ycombinator.com/item?id=1668561
 * http://stackoverflow.com/questions/2915691/books-about-javascript-api-design-best-practices
 * http://wiki.apidesign.org/wiki/TheAPIBook
 * http://doc.trolltech.com/qq/qq13-apis.html
 * http://chaos.troll.no/~shausman/api-design/api-design.pdf
 * "How To Design A Good API and Why it Matters" by Josh Bloch. Slides to accompany video are here