TechMe: Rails5 + Meetup API + Github Jobs API

Technical match-making site for Bros & Brosephines. Find jobs and meetups based on the programming languages you love. Rails 5 App to discover upcoming tech events & job postings near you

Hosted:
http://tech-me.herokuapp.com/
Github:
https://github.com/jjseymour/TechMe

Tech Stack: Rails5, CSS Preprocessors (SASS)
APIs: Meetup API, Google Cal API, Google oAuth, Github API

Team: The amazing JJ Seymour & Myself.

  • Implemented adapter pattern to wrap and organize interactions with the Google Calendar, Meetup & Github APIs to
    populate events and jobs into a user’s calendar.
  • Wrote Rspec & Capybara tests. Enhanced performance across the application by implementing caching.
  • Implemented custom authentication flow using OmniAuth + Google
Challenges & Gotchas

-> Adding a theme via the Rails Asset Pipeline.

-> The Google Calendar API's oAuth2 business. oAuth can be pretty painful to begin with for authentication when compared to other options, but Google's oAuth is up there for being annoying. Google's documentation is not your friend, in fact don't be surprised to catch a few errors in it.

Minor Inconveniences:

  • Meetup does a good job of documenting their API, and makes it easy to test out queries. However, it was surprising there was no way to find category numbers. We just manually had to count.
  • Setting up dynamic AJAX buttons & writing jQuery functions

Enjoyed:

  • Learning cool keyboard shortcuts for mac, sublime & vim

  • Setting up bCrypt for authentication was so much easier after doing the other stuff with oAuth

  • Good job Meetup API team, it was fun to use. And it's a great service.

  • If RSPEC was fun, writing Capybara tests were a riot. Refactoring the app tended to be as enjoyable as the creation aspect. Used SimpleCov for test coverage. And contrary to what I heard, caching was pretty straight forward and easy to implement, maybe I didn't go down deep enough. Used MemCacheStore and Dali, and even to cache the common API calls.

  • Being excited about working during the weekend after a longtime.

Future Features
+ Implement a calendar interface that populates events from both Jobs and Events.
  • Implement Meetup's oAuth as well so users can RSVP to events from the website

  • A little nitpicky about the design, so a couple of things would be: user settings, navigation, contact form.