Project Summary:

This project was developed from scratch by Faichi Solutions Pvt. Ltd.

The idea of building a social network for senior citizens was conceptualized by our client, Zlife Systems Pvt. Ltd, and supported by one of the well-known construction groups of India, Paranjape Schemes Constructions Ltd. In India alone, there are currently 98 million people who are aged 60+, and that number is expected to rise to around 173 million by 2026, or 12.6% of the Indian population. With these numbers in mind, our client wanted to build a dedicated social networking platform that focuses on the holistic living needs of senior citizens.

Together with our client, we chose Drupal 7.23 as the open source technology to successfully build Sentizens.com.

We used:
• Drupal Commons 3 for prebuilt applications
• Drupal modules like Panels Ajax tabs to show events
• Drupal modules Memcache & XHPr and increased RAM to handle more requests
• Developed & contributed new Drupal modules for customized features.

We partnered with our client from conceptualization to deployment. We are currently scaling up the business model through phase wise development, ongoing support & Mobile App conceptualization.

Sentizens Home Page - site in Drupal by faichi
Why Drupal was chosen: 

We considered various other platforms like Wordpress and Jive. Because of the scalability, flexibility and time-to market required for the project, we chose Drupal 7.23 for this project. Drupal's great strength is in its powerful API ability to customize and overwrite anything. In addition to all this, the modules gave us the ability to build most (if not all of) the site in a very short time. We needed all social networking basic features like Wall, Events and Groups which made us more inclined not only towards Drupal but to use an out of the box solution (Distribution) build over Drupal, so we used Drupal Commons. Drupal Commons had most of the functionality required, though we built a number of custom functionalities and contributed some modules back to the community. That's the awesomeness of Drupal. We already knew that it would be a project in which we might need to add more and more new features, services etc. Thus, Drupal made an excellent choice considering its superb extensibility.

Describe the project (goals, requirements and outcome): 

Goals:

There are currently 39 million people aged 55 and older using Facebook, Twitter, and Skype, making them the fastest growing age demographic on these sites. Unfortunately, none of the current social networking sites cater to specific needs of senior citizens. The major requirement was to develop a social platform for senior citizens where they can share, collaborate, learn and avail variety of one stop services with a focus on holistic living.

Requirements:

Sentizens.com is an eminent social networking platform for enabling communication between seniors. Our target audience was not today's super-techie youngsters, so instead we needed to build an easy to use product to fulfill the needs of those who have been hiding from world wide web, thinking about complexities of operating laptops and computers over web.

The idea was to get most of things useful for seniors citizens on one website and present it to them in an easy and intuitive way-- even for technically unsavvy seniors. We needed a flexible design to support various gadget, that we could quickly iterate through and modify in response to user feedback. We also needed to implement a highly simple and pluggable interface, a painstaking design, and well-tuned performance, and all while meeting strict deadlines.

Some of the user needs to be addressed through this platform:

Social: Sharing memories, posts, photos & thoughts. Engage in Groups; connect with family members in India and abroad.
Health: Articles & Classes on yoga & fitness. Contacts of doctors, specialists & emergency services
Hobbies: Articles, Classes and Groups of user interest
Travel: Articles & Services on Travel destinations. Reminders for travel dates & document information
Finance: Articles & Services on financial services. Reminders for payments & documents
Spiritual: Articles, Groups & Camps info on wellness program

Engagement Overview: Development

• Time to Market was of essence. In order to speed things up we used Drupal Commons 3 for pre-built applications and adopted Drupal modules like Panels Ajax tabs to show current and upcoming events
• Performance of the site was critical due to the anticipated huge traffic flow on the site. We used Drupal modules Memcache & XHPr and increased RAM to handle more requests. The Faichi team developed new Drupal modules for customized features like Advance clock to show clocks of different time zones & Multiple Skype plugin to display contacts and their user status
• Team Size: Faichi deployed a dedicated team of designers, developers, QA & Project manager
• We used Agile/Scrum Methodology for faster development, better collaboration and quick delivery

QA Systems and Processes

• Entire site development from conceptualization to deployment
• System Testing including customer facing defects
• Bug logging in Zilicus (project management tool)
• Bug verification of resolved defects
• Regression testing around the resolved threads
• Mobile testing, Load & Performance testing, Responsive Testing on various platforms & Browsers including IE9, 10, Chrome, FF on Windows7 & Mac Safari.
• Test cases creation, Test cases Execution, Issues Logs in Zilicus
• Load & Performance Testing: Using SOASTA (Load & Performance testing tool).

Project Management Approach

For this project, we applied lean project management techniques in combination with Agile software development methodology. The whole product was split into multiple modules / features to make it a multi-release project / product. At the end of every module / feature, a working demo of the product was scheduled with stakeholders including the client to ensure that there are no gaps in the requirements and the product being developed. This helped to avoid last minute surprises which could have caused major rework at later stage.

Features//Modules for Multi releases:

First major release

The client wanted us to get the registration system in-place with articles for new users to read and as a demonstration how the product was going to function. He wished to see users’ responses by demoing the project at a show he hosted for his building and architecture firm. The registration system consisted of a multi-step form used to gather information about the user. We used profiles2, panels, ctools plugins, and features to build these pages. We also added the services section which was used to give new user an overview of what website is about. In this phase the product was already early released with pending section of website as "coming soon".

Modules used:

Features - We made extensive use of features for exporting database configurations to code. This was very helpful in coherent development and maintaining code flow (ex. from dev to test to stage servers) without database replacements.
Ctools and Panels - We wrote various ctools plugins, and used extensively the exportable feature of panel pages. Configurable ctools plugins formed the backbone of the website. Ctools Page manager was invaluable when it came to quickly building complex layouts.
Profiles 2 - We decided to go with an out-of-the-box module that could build user profiles with unique or custom fields.

Second major release

The second release focused on the addition of the user wall and posting features.

Modules used:

Statuses (Social Micro blog) - This module provides status updates / micro blogs like Facebook's Wall.
Facebook-style Micro publisher - To attach any kind of media (links, images, video, etc.) to statuses.

We also added events with this release, and included an Organic Groups Drupal module which we used to build the "Communities section."

Third major release

In the third release we implemented a community functionality that allows the users to interact with groups. We also added events, posts, photos and other sharing options to the project, making it a full-fledged social product.

Meanwhile, we received user input that led us to upgrade the posting mechanism for groups. To use a simplified "modal forms" we added modal windows functionality to our forms, making it easier for our users to choose between status posts, photo posts, and so on. The change also had a positive impact on the performance of the website. We also added "Memcache" and "APC" to enhance our site performance in this phase.

Modules used:

Organic Groups - Module used form communities and all functionality provided by community.
Panel Ajax Tabs - This was used in various sections of the website for example building today's, upcoming and city events tab by right side bar.
Memcache API and Integration - Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load

We also created a staging server that the development team used to publish the latest features, changes, fixes for hands-on trials by the client after the sprint demo; this helped us to get early buy-in from the client on the product being developed. These techniques helped us a lot to control the potential rework, gaps in requirements and we could focus on value addition instead of rework and changes. For version control we used GIT and using GITHUB forking system hosted on Rackspace servers.

The Outcome

After an accelerated journey of requirement gathering, development, and testing, a highly interactive and user friendly social networking platform for senior citizens came to life.

It offers essential features of popular social websites including posting, sharing, liking and joining groups. Besides this, Sentizens offers several innovative features which are designed and developed exclusively for senior people like:

• Login using existing accounts like Facebook
• Option of increasing font size for the better readability.
• Clean uncluttered UI with space to enable larger font
• Event reminders as default setting at one hour before the event, if they forget to set reminders
• Skype integration to connect directly with their loved ones from the application itself.
• Clocks of different time zones worldwide
• My Wallet: To store important/emergency contacts as well as reminders for crucial document information like passport & bill payments
• Specially curated articles on health, finance, travel, hobbies and spirituality
• Services available in proximity to their society & their addresses & contacts stored in ‘My essentials’ list e.g. plumber, dairy, shopping malls, movie theaters, restaurants & much more

The website is Responsive for iPad. In the next phase we are working on Sentizens Mobile App for iOS & Android.

Technical specifications

Drupal version: 
Drupal 7.x
Why these modules/theme/distribution were chosen: 

We used Commons (commons-7.x-3.3) over Drupal 7.23 for its out of the box functionality for features like a Wall, Groups and Events. The Organic Groups(OG) enable users to create and manage their own groups. Adopted Panels Ajax tabs to show today’s and upcoming events and Advance clock to show clocks of different time zones.

Community contributions: 

Advance Clock
A module to provide advance functionality over Drupal's basic clock such as: Multiple clocks (with different time zones) per user, Digital/Analog clock, provides Block and Panel Plugin pane, various configurable options.

Patch in Address Field [Indian states list]

Organizations involved: 
Project team: 

Client: Zlife Systems Pvt. Ltd.

Other Faichi team members:
Rahul Sudame: Head of Engineering
Kedar Aphale: Project Manager
Parul Ahuja: QA
Nupur Lohokare (Q.A.)

User profile page
Discussion Forums-Sentizens
My wall page- Sentizens
My landing page - Sentizens
My Communities-Sentizens
Sectors: 
Community
Enterprise
Small business
Social Networking
Startups
Technology

Comments

rickharington’s picture

I'm looking at building something similar here in South Africa, but I'm concerned with Drupla handling the volumes. Can you tell me how many people are registered on the site at this point? And have you had any performance problems?

Thanks

Rick

Edward Franklin’s picture

Drupal was built with heavy volumes in mind. However, as a rule of thumb, any script/application/CMS (even Drupal) will only run as fast as the hardware it's hosted on allows it to. If you have a dedicated server, there isn't much to worry about. And you can use memcached; to cut a long story story short, it substantially increases performance by reducing load on the database and ram. I have built intranets and social networking sites with D7 and have never had a problem given a decent dedicated server for the job.

Faichi’s picture

There are PLENTY of high traffic sites built on Drupal. Drupal.org itself is built on drupal.

You need appropriate server, which can be a shared, VPS or Ded according to your needs of 'high' traffic - the server needs to have features necessary for drupal, and,on your side you can use certain 'cache' modules.

How your site does also depends on the number of modules and blocks you use. For Sentizens, performance of the site was critical due to the anticipated huge traffic flow on the site. We used Drupal modules Memcache & XHPr and increased RAM to handle more requests.

If your server is already optimized and you are fairly conversant,social networking sites can be built that gets huge traffic.

Though we cannot share the exact number of site users due to NDA signed, I can tell you the site is seeing huge traffic and handling it pretty smoothly.

Our company Faichi Solutions holds expertise in making Drupal sites that foresee huge customer volumes.

dev286’s picture

Great job with Drupal!

Can you give some info of the current user load / server configuration to support that load?

It would be nice to see a performance study done on your site to present the real world Drupal behavior.

Faichi’s picture

As mentioned earlier, , we used Drupal modules like Memcache & XHPr and increased RAM to handle more requests. We used Amazon EC2 for server configuration to make web-scale computing easier.

izmeez’s picture

Thanks, nice case study write up and project.

haunted’s picture

Good job, congratulations!
Just a curiosity: you said you used Drupal 7.23 and the modules "Statuses" and "Facebook-style Micropublisher" but fbsmp for D7 is still unstable and quite buggy, how did you manage the problem?

Faichi’s picture

We are able to use fbsmp and Statuses successfully and its working fine. We followed the steps mentioned in the readme file for configuration.

Waen’s picture

So you use panels without any problem?
I thought it was not advised to use panels (or display suite + context) for sites with huge trafic?

Faichi’s picture

Yes, we are able to use panels without any issue. In fact we have been using it for several clients who have multilingual sites and get huge traffic.

psychobyte’s picture

Nice Job!

I'm curious have you implemented a 'retweet' or 'Like' type functionality into the site? How do you get other user's content posted to your own wall?

Thanks,

Faichi’s picture

We don't have retweet but Like functionality is implemented using Flags module. We create Content Type post and provide other user permission to add content on friend's wall. We also use OG model for group posting.

midshine’s picture

I would like to know how the profile sections are created and made visible as different tabs. For e.g. basic, personal, hobbies etc.

vb_swapnil’s picture

We manage this profile tabs by using profiles2 module. We actually create three profiles types "basic, personal, hobbies" and manage them in tabs with proper user permissions.

diomede’s picture

Hello Sanjay,
you've developed an awesome website.
Thanks for the interesting info about your project and
for sharing the concept about the right balance of software modules and server resources.
Regards

tchilly’s picture

Although a nice read, this is a very poorly made site, I'm really sorry about this post, there's some cool stuff under the hood, but resize the browser on the frontpage.. Featured post? Really :/

psychobyte’s picture

Have you ever seen the first iterations of Twitter and Facebook?

If you are not embarrassed by the first version of your product, you’ve launched too late. - Reid Hoffman, LinkedIn founder

Faichi’s picture

Thank you for your feedback. We know there is always scope for improvement. For the phase 1 version launch, the site is running pretty smoothly, already has huge number of users and handling traffic without any issues. As the target audience is senior citizens, the brief was to keep it simple and not too jazzy which we have kept in mind. We are launching a Sentizens Mobile app very soon with many new and cool features! Will love to get more suggestion from community for improvements.

prabeen.giri’s picture

Site is struggling to be responsive !!
I checked http://sentizens.com/legal, which just has single content to display in the whole page. And it takes me 5-6 seconds to load the page

There are lots of room for front end performance optimization and improvement.

Site has around 57 HTTP requests
Javascript and CSS files are not concatenated nor minified!!
These are just few to mention!!

vb_swapnil’s picture

Hi prabeen,
For Javascript and CSS files are concatenated or minified, We are working on same issue as we face some problem with font resize module and clock module. If compress or minified the css files for sentizen then font resize functionality will not work properly, It disturbed the design. For world clock module if we compress js files then its not working on IE 9.

ikiam’s picture

I was very happy to found a Site which is working in drupal with a lot of features like facebook, but now I am in your site and It is very very slow, late a lot of time to change page... and I dont find anything interesting, I dont understand how to run. I dont find people

Maybe I am wrong

blogook’s picture

The site feels sluggish and seems 'dead' to me. There is no social feeling to the site, if you know what I mean. I like the tabs on the left, but I would implement ajax for the center content. Plus CSS should be corrected here and there.