the-mcculloughs.org

 Drawing Board

In today's digital age, it's easier than ever to take and share photos and videos. With social media platforms like Facebook and Instagram, we can share our memories with friends and family around the world. However, what about the memories that existed before the digital age? What about the old photographs, negatives, slides, and VHS tapes that hold memories of our family's history?

That's where my personal project comes in - an online photo and video sharing family app that covers my family for five generations. It's an open source project that allows family members to digitize an array of media, from old black and white photographs to forgotten negatives, slides, and old VHS tapes. It brings together all of our family's memories in one place, making it easy to access and share them with future generations.

The McCulloughs screenshot example

The app is built using a combination of Ruby and Rails and React, with Postgres, Redis, and Sidekiq. Some of the app's features include auto refresh via ActionCable, tagging of assets, uploading assets directly to S3 with the Shrine gem and jQuery-File-Upload, background jobs with ActiveJob and the Sidekiq gem, cron scheduling with Sidekiq-Cron, permalinks using the FriendlyId gem, infinite scrolling using the Kaminari gem and some JavaScript, and sending HTML emails with Premailer and the Really Simple Responsive HTML Email Template.

The McCulloughs sign in

One of the key features of the app is its ability to automatically refresh when an asset gets updated by another user or instance. This is done using the publish/subscribe pattern with ActionCable, making it easy for family members to collaborate on and share memories with each other.

The McCulloughs site map

Another useful feature is the ability to tag assets, making it easy to search and organize photos and videos by people, places, events, and more. This makes it easy to find specific memories and share them with others.

Uploading assets directly to S3 with the Shrine gem and jQuery-File-Upload is also a convenient feature, as it allows family members to quickly and easily upload their photos and videos from their phones or social media accounts.

Background jobs with ActiveJob and the Sidekiq gem make it possible to handle asset processing and ActionCable broadcasting, ensuring that the app runs smoothly and efficiently. Cron scheduling with Sidekiq-Cron also ensures that assets from Google shared albums are ingested regularly, keeping the app up-to-date with the latest memories.

Permalinks using the FriendlyId gem make it easy to share links to specific memories with others, while infinite scrolling using the Kaminari gem and some JavaScript makes it easy to navigate through large collections of photos and videos.

Finally, sending HTML emails with Premailer and the Really Simple Responsive HTML Email Template is a convenient feature for notifying family members about new memories added to the app, as well as upcoming family events and reunions.

In conclusion, my personal project - an online photo and video sharing family app - is an open source project that allows family members to digitize their memories and share them with future generations. With its user-friendly features and efficient technology stack, the app makes it easy to collaborate on and share memories with family members around the world.

Links