If you were to venture over to virafamily.com, you'd see a Home page with an image slider of my family, a bunch of nonsensical placeholder text, a couple of unfurnished web pages (the About and Family Tree pages), and a Dashboard page, which you must be logged in to access.
Back in 2012, my New Year's Resolution (or more like New Year's goal) was to create a website for my extended family. The idea was relatively simple: create an online space where I could put up photos from family gatherings, design out a family tree, and maybe even come up with brief bios for some of our deceased family members. I bought the domain, put up the content, and watched as no one in my family was remotely interested in visiting the website.
During this past Christmas Holiday, I decided to revamp the website in order to make it more interactive for my family. It was an idea I had been toying with for a little while now -- a completely private social network. There were a couple of motivating factors behind this idea:
-
Facebook can't filter content (yet). For example, Facebook doesn't allow me to filter my news feed (i.e. I can't filter my news feed to see content from my just my friends vs. just my family). I realize Google+ solves this by introducing circles, but I feel like it's too advanced for the majority of my family to understand.
-
Privacy. Sharing intimate details about your family or personal life on your own server and database is simply more private than using third-party social networking sites.
Creating the Network
Creating a private network as opposed to a public one has its perks that allow the application logic to be much more straightforward and simple; here are some underlying assumptions about creating the application:
-
First and foremost, the network is closed to the public, so there should be no sign up process. The only way to access the application is by being invited by another user (e.g. another family member).
-
Since this is a private network, everyone, in theory, should know everyone else and therefore be connected with everyone else (i.e. all nodes are connected). There is no need for complex privacy settings, etc. There are no individualized "walls". All users post to a single feed, the Family Feed. (I've implemented Twitter-like @ tags to target posts toward a specific user).
I ended up creating the application in about 4 days during the holidays. I used the Laravel PHP Framework, which comes packaged with a great object-relational mapper, and utilized a simple SQLite database to store posts/comments/notifications/profiles. In January, I also created a RESTful backend API for the app's resources, which allowed me to create an Android version of the application, as well. The application contains a central news feed, Twitter-like @ tags, a notification engine, and user profiles.
Features
Here are some screencaps highlighting some of the ViraFamily features:
Vira Family Dashboard displaying the Family News Feed, which is the central component of the application.
Users can add goals onto their profiles, which are visible by the rest of the family.
Twitter-like @tags allow users to address specific users in their posts.
The notification engine alerts users when they are mentioned along with other user activity.
The notification engine alerts users when they are mentioned along with other user activity.
The standalone Android application connects to the database through a RESTful API.
Conclusion
So far the application has been up and running for about 2.5 months at the time of writing. My family uses the application fairly regularly, especially as more of them are downloading the Android app. I still need to develop the iPhone version of the app for the few family members who own iPhones, but all in all, the site is much more successful than my previous attempt last year.