Another Round of Personal Web App Updates

Calendar Syncing

Calendar

One of the top items on my to-do list from the last post was to integrate the Google Calendar API to sync my app calendar with my Google Calendar (which is synced with my iCal as well).  By writing code that creates and edits events in Google when I edit them on my app and by writing a cron job that updates events in my app from Google on a regular basis, I was able to fully sync the calendars each way.  You might say, "What's the point in having another calendar?"  The answer is that a mass-market calendar like Google Calendar or iCal can never be as customized or integrated as your own, written from scratch.  What I've done with this calendar is pull in all of the other information that is date-related inside my web app.  One of the most useful parts of this for me is workout tracking.  I can glance at my calendar now and know that I'm either over-training or slacking off.  I also have my local weather pulling in.  I plan to integrate contact birthdays, Facebook events, to-do items with due dates, and even more things that I haven't foreseen yet.

 

Contextual Information & Design

(download)

To add context to category pages on the site, I added more databased information (like my jobs, employers, degrees, and courses) as well as some custom RSS feed parsing to show dynamic information from other websites, like the climbs I've most recently done, my most recent cycling results, and related news headlines.  I also took some time to revamp the designs of repetitive page elements (what we call 'partials' in the Ruby on Rails world).  Keeping a visual hierarchy via text size and color was important as well as providing more context than just an element title in a preview.  I borrowed my 'adventure' partial concept fromiPhoto.  The 'project' partial just felt more natural to me--having a single photo (that I can select) for each project reduced visual clutter and freed up space to add a description.

 

Social Elements

Adventure

I've just begun integrating some of Facebook's Graph API into the site to add social elements.  I had already done this with my contacts (showing dynamic Facebook profile photos), but I'm now using that contact database in new ways to help enhance content on the site.  For example, I've added a relational database table to keep track of which friends accompanied me on which adventures.  This lets me display their profile photos alongside the adventure description and helps provide even more context for readers.  In the future, I plan to add Facebook comments and like buttons via their new Javascript SDK.

 

Homepage Design

Home

Finally, I liked the iPhoto-style adventure partial so much that I integrated it onto the homepage to give visitors a quick overview of what I've been up to most recently.  I like the way the visual turned out, with lots of contrast between the dark and light sections, as well as a feeling of depth.

Check it out at www.jeffreyjhebert.com and tell me what you think!  Until next time,

 - Jeff

Posted

0 comments

Leave a comment...