15 Projects in 30 Days

I’ve been known around the hackathon community for my ability to rapidly prototype and build against APIs. Over the last couple of years I’ve been exposed to numerous APIs and had a very short window of time to integrate them into a project, often thought up at the hackathon itself.

But one thing was missing. Sharing my process. All I really had to show was a three minute demo. Rarely did I actually go into the process. When I did, I really never showed the code. I could go back and try to write up what the process was, but half the stuff I have forgotten and wouldn’t accurately describe the process. I’ve rarely used GitHub, or open-sourced my code. This time, it’s happening!

So for the next month, give or take, I’m going to go through at least a dozen APIs and build for a new platform that I have very little knowledge about. Node.js, AngularJS, and MongoDB. I’ll run it on a Ubuntu 14.04 server. Am I crazy? Yes. Learning a new platform can take quite a bit of time. I’m going to make mistakes, write ugly code, and do some stuff that shouldn’t be done. Go ahead and critique me. I’m human. I challenge you to try this and see what a challenge it can be. But it’s a powerful learning process.

And if you see my skills as valuable and you have a developer advocate position available based in the San Francisco Bay Area, I’m available. You know, where blogging and writing code go together.

remindme3Project 1: Remind Me with Twilio

Add reminders that are sent to you as text messages via Twilio.

GitHub Repo | Node.js, MongoDB, AngularJS, JQuery Mobile, Twilio


yo7Project 2: Yo a Pic with Yo

Yo pictures to the app. If you just Yo the app, it will return a random picture you’ve sent in the past.

GitHub Repo | Node.js, MongoDB, Yo


parse6Project 3: Count It! with Parse

Keeps count of items in the list. For example, keep count of the number of times I’ve used technologies like Node.js, MongoDB, and AngularJS.

GitHub Repo | Node.js, AngularJS, JQuery Mobile, Parse


partytexterProject 4: Party Texter with PubNub and Tropo

Features incoming text messages and counts them in a leaderboard party texting activity.

GitHub Repo | Node.js, AngularJS, Tropo, PubNub


weatherupdate4Project 5: Weather Update with Weather Underground and SendGrid

Subscribe to email updates with the weather forecast.

GitHub Repo | Node.js, MongoDB, AngularJS, Bootstrap, Weather Underground, SendGrid


evernote10Project 6: Prompt Me with Evernote

Add writing prompts into Evernote notebooks on a daily/every other daily basis.

GitHub Repo | Node.js, MongoDB, AngularJS, Evernote


storytime4Project 7: Story Time with AT&T Enhanced WebRTC

Extends the AT&T Enhanced WebRTC Node.js example to use WebSockets to support a storybook example.

Github Repo | Node.js, AngularJS, AT&T Enhanced WebRTC


pennysaver2Project 8: Penny Saver with Venmo

Automatically saves change in your Venmo account for unexpected cases, or to donate to worthy causes.

GitHub Repo | Node.js, MongoDB, AngularJS, Venmo


Project 9: Time Me with Nexmo

Time how long tasks take using Nexmo.

GitHub Repo | Node.js, MongoDB, AngularJS, Nexmo


mailgun3Project 10: Photo Stream with Mailgun

Email pictures to Photo Stream and view pictures in each sender’s Photo Stream

GitHub Repo | Node.js, MongoDB, AngularJS, Mailgun


storytimeviewer5Project 11: Story Time Viewer with Box

Displays story content from PDF and Word Documents

GitHub Repo | Node.js, MongoDB, AngularJS, Box


Project 12: Hackathon Finder with Eventbrite

Get email updates on upcoming hackathons posted on Eventbrite

GitHub Repo | Node.js, MongoDB, AngularJS, Eventbrite, SendGrid


Project 13: Draw It with Bitcasa

Save HTML5 canvas drawings into Bitcasa.

GitHub Repo | Node.js, AngularJS, Bitcasa


Project 14: Pixel Play with Firebase

Multiplayer pixel drawing app.

GitHub Repo | AngularJS, Firebase


Project 15: Hear It with IBM’s Text to Speech

A word matching game using Text to Speech.

GitHub Repo | Node.js, AngularJS, IBM Text to Speech

Leave a Reply

Your email address will not be published. Required fields are marked *