Coder Social home page Coder Social logo

baldri / pageflow Goto Github PK

View Code? Open in Web Editor NEW

This project forked from codevise/pageflow

0.0 1.0 0.0 8.81 MB

Multimedia story telling for the web.

Home Page: http://pageflow.io

License: MIT License

Ruby 47.59% JavaScript 34.49% HTML 3.08% CSS 14.85%

pageflow's Introduction

Pageflow

Gem Version Build Status

Multimedia story telling for the web.

For a high level introduction and example Pageflow stories see pageflow.io.

In addition to this README, there is also a Getting Started Wiki page to guide you through the steps of setting up a Rails application with Pageflow on your development machine.

Updating

For instructions on how to update from a prior version of the gem see the Updating Pageflow wiki page.

Ingredients

Pageflow is a Rails engine which roughly consists of the following components:

  • A full MVC stack to manage and display Pageflow stories
  • User and permission management with support for isolated accounts and user collaboration
  • A client side application for live preview editing of stories
  • Background jobs to process and encode images, audios and videos
  • Generators to quickly bootstrap a new Rails application

Pageflow assumes the following choice of libraries:

Requirements

Pageflow runs in environments with:

  • Ruby >= 1.9.3 and < 2.2.0 because of ActiveAdmin
  • Rails 4.0 or 4.1
  • Redis server (for Resque)
  • A database server supported by Active Record (tested with MySQL)
  • ImageMagick

Accounts of the following cloud services have to be registered:

Installation

Generate a new Rails application using the MySQL database adapter:

$ rails new my_pageflow --database=mysql
$ cd my_pageflow

Do not name your application "pageflow" since it will cause conflicts which constant names created by Pageflow itself.

Database Setup

Enter valid MySQL credentials inside config/database.yml and create the database:

$ rake db:create

Gem Dependencies

Add this line to your application's Gemfile:

# Gemfile
gem 'pageflow'

At the moment, Pageflow depends on a frozen version of Active Admin since, back when development started, no Rails 4 compatible version of Active Admin was available as a gem. You therefore need to bundle the rails4 branch that we have forked into our github organization:

# Gemfile
gem 'activeadmin', git: 'https://github.com/codevise/active_admin.git', branch: 'rails4'
gem 'ransack'
gem 'inherited_resources', '1.4.1'
gem 'formtastic', '2.3.0'
# Only required for Rails 4.1:
gem 'state_machine', git: 'https://github.com/codevise/state_machine.git'

Run bundler to install dependencies:

$ bundle install

Running the Generator

Now you can run the generator to setup Pageflow and its dependencies:

$ rails generate pageflow:install

The generator will invoke Active Admin and Devise generators in turn and apply some configuration changes. When asked to overwrite the db/seeds.rb file, choose yes.

To better understand Pageflow's configuration choices, you can run the single steps of the install generator one by one. See the wiki page The Install Generator in Detail for more. If you'd rather not look behind the scenes for now, you can safely read on.

Database Migration

Devise migration name fix: In some cases, the Devise generator creates a migration file without file extension. This needs to be fixed manually at the moment:

$ mv db/migrate/*_devise_create_users{,.rb}

Now you can migrate the database.

$ rake db:migrate

Finally, you can populate the database with some example data, so things do not look too blank in development mode.

$ rake db:seed

Configuration

Pageflow stores files in S3 buckets also in development mode. Otherwise there's no way to have Zencoder encode them. See the wiki page Setting up external services.

The host application can utilize environment variables to configure the API keys for S3 and Zencoder. The variables can be found in the generated Pageflow initializer.

For available configuration options and examples see the inline docs in config/initializers/pageflow.rb in your generated rails app.

Ensure you have defined default url options in your environments files. Here is an example of default_url_options appropriate for a development environment in config/environments/development.rb:

config.action_mailer.default_url_options = {host: 'localhost:3000'}

In production, :host should be set to the actual host of your application.

Running Pageflow

In addition to the Rails server, you need to start two Rake tasks for the background job processing. First, start a Resque worker which handles jobs from all queues:

$ QUEUE=* rake resque:work

Image and video processing are examples of jobs that are executes by these workers.

Some jobs need to be executed repeatedly. For example, while videos are being encoded by Zencoder, there is a job that runs every few seconds to fetch the current progress. This delayed invocation of jobs is handled by the Resque Scheduler Rake task:

 $ QUEUE=* rake resque:scheduler

Consider using the foreman gem to start all of these processes (including the Rails server) with a single command in your development environment.

Troubleshooting

If you run into problems during the installation of Pageflow, please refer to the Troubleshooting wiki page. If that doesn't help, consider filing an issue.

pageflow's People

Contributors

tf avatar schoetty avatar upsworld avatar kioopi avatar jrunkel avatar tilsammans avatar g-w avatar tyranni avatar

Watchers

Baldri avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.