Project: Creating an interactive communications platform based on video

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
Finnaholm's picture

Hello!

My name is Christian Andersson and I'm working on a media project for Öppna Kanalen Växjö (ÖKV) - Translated: The Open Channel Växjö - in Sweden. I'm an experienced developer and engineer but completely new to Drupal (this is my first project working with it). As such I made several mistakes along the way but always learning from them :) I have to say Drupal deserve the reputation of being powerful but having a steep learning curve...

This post is to solicite feedback on our project in general and specifically the Drupal implementation. The choice of modules to use and how we can use and contribute to the CM-Drupal project along the way.

Background

ÖKV have received a grant to create a new communications platform - with a focus on communication between politicians and youth (but also people in general). The aim is to make it easier for people to participate in local politics. A small step towards direct democracy you might say. The choice was made to focus on video communication but the system will also allow text and still images as an alternative. Another choice was to make this with web technologies to be accessible from regular computers, pads, phones etc as well as dedicated kiosks, Since the current OKV website is Drupal it was only natural to continue using it for this project.

Overview

The central hub and most important part of the system will be a Drupal website and might in the future be the only part that users see. To start with however, we will also use kiosk computers - video portals - that can be placed around town for quick and easy access to the system. The most important reason for the kiosks is marketing. We think having them out there will create more interest then any other form of advertising. It's also a controlled platform that can be optimised to work as good as possible together with our website.

The kiosks will be connected to the Internet and the live site, but preferably will also be able to function if connectivity goes down. Either partly or fully depending on how feasable it is to have them fully functional while offline.

Besides the site and kiosks we will also use a media server (wowza or red5) for streaming video and an encoder server which will re-encode the video files and put them into an archive to be used for television among other things. Both servers will probably run on the same physical machine to start with.
Only local images are allowed.
We plan to have the following functions / workflow on the site:
Only local images are allowed.
Content

Home: Will contain the central feed of updates (timeline) from all categories and a main menu.

Information: Static information about the project and system.

Account: A users personal home with settings, profile and personilized feed, both from our site and external resources like the users own blog/facebook/twitter.

Send message: Send a message which can be either a suggestion/petition or a question. The message can be sent either public or private. It can be sent to either a group or a person. It will also be possible to send as an open question to anyone/noone and to select "don't know" to be routed correctly by the project management. The message can be any combination of text, image or video (possibly with attached documents as well).

Politics/Society/Culture: The three main categories of the site. Contain a feed from the category and submenu for the category.

Politics - Assembly: List of assembly members (with link to their profile), list of issues that will be discussed during the next assembly meeting, videos from the last meetings, feed of the last messages sent to assembly and a link to send a new message to assembly.

Politics - Executive: List of executive members (with profile link), feed of the last messages sent to executive and a link to send a new message.

Politics - Parties: Feed of the messages sent to all parties and a submenu consisting of all the parties. When clicking on a specific party you can see a presentation, list of all it's members with individual presentations, even more selective feeds and link to send a message to the party or member.

Society will contain a similar hierarchy as politics but for societal organisations like police, hospitals, schools, libraries etc.

Culture will contain a similar hierarchy as well but also a place to publish your own art/music/whatever.

When clicking a link/button to contact a specific organisation or person the destination will be pre-selected when entering the "send message" page.

Modules / Functions

We use CM-Drupal with the easy starter kit but haven't yet used any modules specific to the kit.

I can see us potentially using Crew Connect, Project, Show and VoD feeds later on.

Views, Media and Feeds are pretty much a given.

For profiles we use Profile2 since although we currently use a single profile for all users, we likly need to have different types of profiles in the near future. It's also neat to separate the profile from account settings.

For groups (assembly, parties, organisations etc) we use Organic Groups. Here I could use a recommendation on whether to use OG Extras or Panels for the interface?

Where we could really need some suggestions is how to implement the whole message system. I have researched the PrivateMsg module which do most of what we want, but not everything. We need the option to send an open (public) message and I haven't yet been able to do this with PrivateMsg. I'm also not sure how well it's going to work for suggestions/petitions that other users need to be able to comment on and support. Likly the best route is to technically separate the suggestions from the questions and only use PrivateMsg for questions. We still need the option to have them public though.

We also need to add video recording which I first attempted with failure to do with Media:Webcam. Later we got assistance from kraynen to port the module Video recorder to Drupal 7 and he was able to use that together with a custom module called Video recording for rudamentary recording. We should probably continue to work on this module and integrate it with PrivateMsg and/or whatever other module to use for suggestion type messages.

The video portals (kiosks)

The kiosks are basically locked down browsers restricted to our website. I experimented with several different systems and chose to use an Ubuntu addon/derivative called Instant Web Kiosk, both for it's low cost and openness allowing us to customize it in every possible way. I have also received excellent support from it's creator/maintainer. The commercial alternatives are both expensive and inflexible in comparison. Webconverger is free but also very inflexible. Originally I planned to use and successfully tested recording with an external program (mencoder seemed to work best) but while it's working well and provide good quality the user interface is sorely lacking. Using a flash application in the website provide a much better and familiar interface for the users so this is probably what we'll use.

Currently the portals are online only, but I have done some testing with offline usage running a local webserver on the kiosk. It works well, but the problem of course is syncing with the main website once the kiosk is online again. The easiest route here is to use a read-only offline mode and might very well be enough since the kiosks will be located in a city with very good connectivity. The percentage of time spent offline will likly be far less then one percent so it's hard to motivate having a fully working offline mode.

Bandwidth for the video is a bigger concern. That could be solved by running a local media server on the kiosks but then you run into the problem of syncing with the main (online) media server. If the kiosk update the live drupal site but the video is recorded locally there will be a time period where the recording seem to exist in drupal but the actual file/stream is missing from everywhere but the kiosk.

The media and encoding server

Currently we use an EC2 instance running Linux with Wowza for testing but I believe our local server (also Linux) will be faster since it's placed on the same MAN as large parts of the city we will use this system in. The only case I can see where EC2 will be faster is from remote locations (which aren't our target audience) or if the demand for the service grow so big it will overwhelm our server. This could happen but it's very unlikly for the first stage of the project and if we see demand growing towards it's limits we can always upgrade. What to run though? Wowza or Red5? Anyone have experience with both?

Link to the actual site

Current beta pending final domain is at: http://live-interaktiva-vaxjo.gotpantheon.com/

Community Media

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week