Welcome to Massive Platform.
Welcome to Massive Platform, Travel Massive's open-source community and event platform.
What Is Massive Platform?
Travel Massive is a world-wide community in more than 115 cities (see our latest stats), connecting thousands of travel insiders at locally organised events to empower change in the travel industry and make travel better. You learn more on our public manifesto.
We developed Massive Platform to help our members connect more easily and to provide a centralized place for profiles and events. We outgrew all the usual tools such as Facebook pages and Meetup, and we wanted our own community platform, so we built one. We've made our platform open-source so that other communities can benefit from and build on our efforts and help make this product awesome.
As of January 2015 we've just launched, but we'd love to have more contributors. If you are an interested developer, follow the instructions below to get started.
- User Registration
- User Profile Pages
- Sign In With Twitter
- Users Vanity URLs
- Invite Members By Email
- Follow Members
- Approved Users Badge
- Chapter Leaders
- Industry Segments
- Profile Tips
- Chapter Profile Pages
- List Chapter Leaders
- List Chapter Members
- List Upcoming Events
- Members Can Join Chapters
- Contact Chapter Leaders
- Map View Of Chapters
- Export Membership Data (CSV)
- Chapter Invitations
- Chapter Reports
- Event Profile Page
- Chapters Can Create Events
- Attendee Registration
- External RSVP Supported
(ie: eventbrite, meetup)
- Waitlist / Seat Limit
- Manage Waitlist/RSVPs
- Email to Attendees/Waitlist
- Restrict to Approved Members
- Partner Event Flag
- Customize Event URLs
- List All Upcoming Events
- Event Reminders
- Export Attendee Data (CSV)
- Company Profile Pages
- Multiple Profile Managers
- List Companies
- Industry Segments
- Filter Companies By Country
- Filter Companies By Segment
- Follow Companies
- Company Vanity URLs
- Set As Sponsor
- Member messaging via email
- Welcome Approved members
- Custom Chapter Announcements
- Notify on new Follower
- Notify on new Chapter Member
- Notify on event RSVP/Waitlist
- Subscribe to Newsletter
- Responsive HTML5 Design
- Supports Retina Displays
- Wordpress Feeds
- Community Reports
- Video background front page
- Clean HTML Emails
- Mobile / Tablet / Desktop
- Follow / Join Rate Limits
- Search Content
- Google Universal Analytics
- OpenGraph/DublinCore meta
- Drupal D7
- Code Driven Features
- Data Migration With CSV
- Display Suite Design
- Flags for Follow,Join,RSVP
Our Core focus is on developing features to support the needs of the Travel Massive community and our partners. Below is a list of some of the features we plan on working on next.
- Advanced Search
- Network Notifications/Updates
- More API Feeds
- Tweet Events
- Sign In With LinkedIn
- Sign In With Facebook
- Post Content
(ie: presentation, talks)
- Partner Sections
- Got an idea? Build it!
How To Install Massive Platform
Installing the platform is reasonably straight forward if you you've got some Drupal experience. Here's a list of things you'll need:
- A Web Server (nginx preferred)
- A MySQL Database
- PHP 5.5+
- A long train ride
If you are developing with Ubuntu (our preference) you can get up and running easily by installing the following packages:
sudo apt-get update
sudo apt-get install mysql-server php5-mysql
sudo apt-get install nginx
sudo apt-get install php5-fpm
sudo apt-get install php5-gd
sudo apt-get install drush
# for sending mail, your favorite MTA
sudo apt-get install postfix
Once you've got nginx, MySQL and PHP, then you're ready to go. These examples were developed for our Ubuntu Linux development environment so you may need to modify to suit your own set-up.
1. Get the source code
Note this may take some time initially.
$ cd /var/www
$ git clone https://github.com/travelmassive/massiveplatform.git \
Cloning into 'massiveplatform'...
remote: Counting objects: 133588, done.
remote: Compressing objects: 100% (1023/1023), done.
remote: Total 133588 (delta 162), reused 0 (delta 0)
Receiving objects: 100% (133588/133588), 125.97 MiB | 1.08 MiB/s, done.
Resolving deltas: 100% (94854/94854), done.
Checking connectivity... done.
Checking out files: 100% (6926/6926), done.
2. Create database and permissions
(Note: if you change any of the mysql database details, make sure you configure sites/default/settings.php accordingly later on.)
mysql> create database massiveplatform;
Query OK, 1 row affected (0.01 sec)
mysql> grant all on massiveplatform.* to massiveplatform@localhost
identified by 'massiveplatform';
Query OK, 0 rows affected (0.03 sec)
3. Create an nginx configuration file
We've created a sample configuration file in the 'massiveplatform_setup_files' folder to get started.
sudo cp massiveplatform_setup_files/localdev.massiveplatform.com.conf /etc/nginx/sites-enabled
4. Edit your php.info
Change the following variables in your php.ini as set out below (On Ubuntu: /etc/php5/fpm/php.ini)
Restart php5-fpm service after modifying php.ini
# Required by nginx php usage
cgi.fix_pathinfo = 0
# Support users uploading large profile pictures from smart phones
post_max_size = 8M
# Maximum allowed size for uploaded files
upload_max_filesize = 8M
sudo service php5-fpm restart
5. Import Sample MySQL database
zcat massiveplatform_setup_files/massiveplatform.sql.gz | mysql -u massiveplatform -p massiveplatform
6. Copy settings.php and non-git files into sites/default
cp massiveplatform_setup_files/settings.php sites/default
# note - edit settings.php here if you changed database name or password
tar zxvf massiveplatform_setup_files/sites.tar.gz
7. Fix permissions - allow web server write access to default/files
Note: This works for local development, but on a production server you should review all file permissions.
sudo chown -R :www-data /var/www/massiveplatform
sudo chmod -R 775 /var/www/massiveplatform/sites/default/files
sudo chmod 444 /var/www/massiveplatform/sites/default/settings.php
Ok, now point your browser to your web server. If you are developing on your local server you can probably use "localhost", or if you have a configured hosts files you can use "localdev.massiveplatform.com" as we've used in our example.
If you have succesfully installed Massive Platform, your web browser should look something like this:
9. Default Logins
Here are the default logins for the site (in "username / password" format):
- Demo account: "demo / demo"
- Admin account: "admin / testing"
- Sample users: "username / massive" (example: ian / massive)
Get this far? Let Us Know!
If you get this far and got your local development site running, we'd love to know! Send an email to email@example.com and also provide any tips on improving these installation instructions so we can add it for others. Thanks!
There are a number of user roles that come shipped to allow for management of the platform.
- Public Member
Can view all the site content.
Can't peform any actions such as RSVP to event or follow members.
- Un-Approved Member
A freshly signed up member.
Can join events, update profile and follow other members or companies.
Profile displayed on /community page but no chapter member pages
- Approved Member
Can create a company profile.
Can also sign up for 'approved member only' events.
- Chapter Leader
Can create events for their chapter, approve members.
Can send announcements to their chapter
A community manager role, allowing creation of chapters, edit any event, chapter, company or profile info.
Moderators can flag unapproved accounts to request account holders to amend their profile.
Massive Platform API
There is a basic API provided by the tm_api module. You can add your own API hooks in here. Currently the following (basic) read-only API methods are published.
All results as returned as JSON.
- api/public/test - API test page
- api/public/stats - basic stats
- api/public/chapters_lat_lon - chapters lat and lon
For JSONP append ?callback=myfunction to the URL.
Handy drush commands
- drush cc all (clear the cache)
- drush fd (view features list)
- drush pm-disable tm_notifications (disable notifications before importing data)
- drush mi --all --rollback --force (rollback and reload all sample data)
- drush pm-enable tm_notifications (enable notifications after data)
- drush search-reindex --immediate (re-index the search)
Other tips and tricks
- To enable Twitter, edit sites/default/settings.php and include your Twitter OAuth Settings
- When saving .csv for migration imports, ensure the file has Linux/PHP friendly line breaks and is UTF8 format
- To edit SASS stylesheets you'll need compass installed (apt-get install compass), then run "compass watch sites/all/themes/tm" to update css files
- For testing emails, add the following to sites/default/settings.php to write emails to /tmp/DevelMailLog:
$conf['mail_system'] = array(
'default-system' => 'DevelMailLog',
- Update your industry taxonomy from massiveplatform_setup_files/segment_taxonomy_import.csv, use taxonomy_csv module.
- Google Anlaytics available by Drupal module (drush en google_analytics)
Enabling Wordpress Feeds
- You can display a feed of related wordpress blog posts to companies/companies/chapters from your blog.
- Edit sites/default/settings.php and set $conf['tm_enable_wordpress_feedme'] = true;
- Install the tm-feeds wordpress plugin (https://github.com/travelmassive/massiveplatform-wordpress-feedme)
- Set $conf['tm_wordpress_feedme_url'] to the URL to call on page loads to embed feeds.
What's open-source and what is copyright?
- The code is released under the Drupal License (GPL).
- The Travel Massive name and logo is trademarked and can not be re-distributed in subsequent works.
- Sample data such as company and profile images may also be subject to copyright by their owners.
Authors and Contributors
- Flipside - initial project design, HTML theme and prototype
- Ian C - project lead, information architecture, product launch, lots of stuff
- Robyn Stanley (@rumpledelf) - bug fixing, event management, email announcements
- Ryan Cross (@rcross) - final stage project management
Support or Contact
Having trouble? Check out the our project wiki (in development) or issue tracker. You can also contact us at firstname.lastname@example.org and we’ll help you sort it out.