Tuesday, May 8, 2012

Learning about Users

Project Update

So last night for day one I wanted to figure out how to manage users/integrate users with Twitter.  My first thought was that the user authenticates through the application to Twitter... this for obvious password reasons is not the case.  When creating an application using the Twitter API there are various OAUTH tokens and keys generated to authenticate your application.

In the larger context this means that I need to manage user accounts in my application and use the 3-legged Authorization method for users to integrate the application with their Twitter account.  I had a thought to just use Twitter to hold all the user information... the application could even be configured using a tweet with a special hashtag.  So the new user experience will be that they'll have to sign up for my app, then grant the app permission to integrate with their Twitter account.  I'm thinking of creating a "read-only" version of the site... should be doable ;-).

Now that I have to store user information, I get to decide what mechanism to use.  I could go with a common RDBMS, but I think that might be overkill for the amount of information I'll need to store for each user.  I've used CouchDB for projects in the past, and I really enjoyed working with it.  The setup and management is very good... the couchdb package for Ubuntu includes the nice web interface.

I've read about issues with scaling CouchDB in the past, and I'd also like to use this opportunity to learn another storage option, so I think I'll try using MongoDB for this project.  There are good Python bindings, and so far in my testing CRUD operations are quite simple, and it was very quick to get up and running.

Chain Update

Day 1 went pretty well for my chain experiment.  I worked on the project for about 30 minutes early in the evening, then spent a couple of hours with my wife, and came back to the project for around an hour and a half or so later in the evening.  I did stay up pretty late, so maybe I'll experiment with working on the project for an hour early in the morning and an hour before bed... we'll see.

For todays time I'd like to flesh out the 3-legged Authorization process in code.  The site will look like trash rubbed in dog poo for now, but I hope to come back and add some cool design and polish after the basic functionality is there.

No comments: