{"id":13518302,"url":"https://github.com/codevise/pageflow","last_synced_at":"2025-05-14T02:07:46.905Z","repository":{"id":16690390,"uuid":"19446839","full_name":"codevise/pageflow","owner":"codevise","description":"Multimedia story telling for the web.","archived":false,"fork":false,"pushed_at":"2025-05-12T14:26:40.000Z","size":27892,"stargazers_count":695,"open_issues_count":13,"forks_count":128,"subscribers_count":33,"default_branch":"master","last_synced_at":"2025-05-12T15:30:22.357Z","etag":null,"topics":["multimedia-storytelling","scrollytelling","storytelling"],"latest_commit_sha":null,"homepage":"http://pageflow.io","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codevise.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"MIT-LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-05-05T06:50:13.000Z","updated_at":"2025-05-12T14:26:44.000Z","dependencies_parsed_at":"2024-06-07T11:59:02.821Z","dependency_job_id":"8580cd0e-231b-45c8-922c-b513dcc7c321","html_url":"https://github.com/codevise/pageflow","commit_stats":{"total_commits":3988,"total_committers":27,"mean_commits":147.7037037037037,"dds":0.2861083249749248,"last_synced_commit":"58ac2bc2f2c6202420ad7bbcf571d9a58384324f"},"previous_names":[],"tags_count":115,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codevise%2Fpageflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codevise%2Fpageflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codevise%2Fpageflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codevise%2Fpageflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codevise","download_url":"https://codeload.github.com/codevise/pageflow/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254052904,"owners_count":22006717,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["multimedia-storytelling","scrollytelling","storytelling"],"created_at":"2024-08-01T05:01:43.395Z","updated_at":"2025-05-14T02:07:41.890Z","avatar_url":"https://github.com/codevise.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","Happy Exploring 🤘"],"sub_categories":[],"readme":"# Pageflow\n\n[![Gem Version](https://badge.fury.io/rb/pageflow.svg)](http://badge.fury.io/rb/pageflow)\n[![Build Status](https://github.com/codevise/pageflow/workflows/tests/badge.svg)](https://github.com/codevise/pageflow/actions)\n[![Code Climate](https://codeclimate.com/github/codevise/pageflow/badges/gpa.svg)](https://codeclimate.com/github/codevise/pageflow)\n[![Reviewed by Hound](https://img.shields.io/badge/Reviewed_by-Hound-8E64B0.svg)](https://houndci.com)\n\nMultimedia storytelling for the web. Built in cooperation with [WDR](https://wdr.de).\n\nFor a high level introduction and example Pageflow stories see\n[pageflow.io](https://pageflow.io).\n\n* [Getting Started](https://github.com/codevise/pageflow/wiki/Getting-Started)\n* [Guides](https://github.com/codevise/pageflow/blob/master/doc/index.md)\n* [JavaScript API Reference of `pageflow` package](http://codevise.github.io/pageflow-docs/js/master/index.html)\n* [List of Plugins](https://github.com/codevise/pageflow/wiki/List-of-Plugins)\n\n## Updating\n\nFor instructions on how to update from a prior version of the gem see\nthe\n[Updating Pageflow](https://github.com/codevise/pageflow/wiki/Updating-Pageflow)\nwiki page.\n\n## Ingredients\n\nPageflow is a Rails engine which roughly consists of the following\ncomponents:\n\n* A full MVC stack to manage and display Pageflow stories\n* User and permission management with support for isolated accounts\n  and user collaboration\n* A client side application for live preview editing of stories\n* Background jobs to process and encode images, audios and videos\n* Generators to quickly bootstrap a new Rails application\n\nPageflow assumes the following choice of libraries:\n\n* [Devise](https://github.com/plataformatec/devise) for authentication\n* [CanCanCan](https://github.com/CanCanCommunity/cancancan) for authorization\n* [ActiveAdmin](http://activeadmin.info/) for administration\n* [Resque](https://github.com/resque/resque) for as default for background jobs\n* [FriendlyId](https://github.com/norman/friendly_id) for pretty URLs\n* [Paperclip](https://github.com/thoughtbot/paperclip) for attachment handling\n* [Backbone](http://backbonejs.org/) [Marionette](http://marionettejs.com/) for the editor\n* [React](https://facebook.github.io/react/)/[Redux](http://redux.js.org/) for the frontend\n\n## Requirements\n\nPageflow runs in environments with:\n\n* Ruby \u003e= 3.2\n* Node \u003e= 18\n* Rails 7.1\n* Redis server (for Resque)\n* A database server supported by Active Record (tested with MySQL)\n* ImageMagick\n* [libvips](https://github.com/libvips/ruby-vips)\n* [Audio Waveform Image Generator](https://github.com/bbc/audiowaveform#installation)\n\nAccounts of the following cloud services have to be registered:\n\n* [Amazon Web Services](http://aws.amazon.com) for S3 file storage and\n  (optionally) Cloudfront content delivery\n* [Zencoder](http://zencoder.com) for video/audio encoding\n\n## Installation\n\nGenerate a new Rails application using the MySQL database adapter:\n\n    $ rails new my_pageflow --database=mysql\n    $ cd my_pageflow\n\nDo not name your application `\"pageflow\"` since it will cause conflicts\nwhich constant names created by Pageflow itself.\n\n### Database Setup\n\nEnter valid MySQL credentials inside `config/database.yml` and create\nthe database:\n\n    $ rake db:create\n\n### Gem Dependencies\n\nAdd these lines to your application's Gemfile, replacing `X.Y.Z` with\nthe current Pageflow version number. It is recommended to depend on a\nspecific minor version using the pessimistic version constraint\noperator. See Pageflow's\n[versioning policy](https://github.com/codevise/pageflow/blob/master/doc/versioning_policy.md)\nfor details.\n\n    # Gemfile\n    gem 'pageflow', '~\u003e X.Y.Z'\n\n    # The install generator sets up Resque as Active Job backend\n    gem 'resque', '~\u003e 1.25'\n    gem 'resque-scheduler', '~\u003e 4.10'\n    gem 'ar_after_transaction', '~\u003e 0.8.0'\n    gem 'redis', '~\u003e 3.0'\n    gem 'redis-namespace', '~\u003e 1.5'\n\nRun bundler to install dependencies:\n\n    $ bundle install\n\n### Running the Generator\n\nNow you can run the generator to setup Pageflow and its dependencies:\n\n    $ rails generate pageflow:install\n\nThe generator will invoke Active Admin and Devise generators in turn\nand apply some configuration changes. When asked to overwrite the\n`db/seeds.rb` file, choose yes.\n\nTo better understand Pageflow's configuration choices, you can run the\nsingle steps of the `install` generator one by one. See the wiki page\n[The Install Generator in Detail](https://github.com/codevise/pageflow/wiki/The-Install-Generator-in-Detail)\nfor more. If you'd rather not look behind the scenes for now, you can\nsafely read on.\n\n### Database Migration\n\nNow you can migrate the database.\n\n    $ rake db:migrate\n\nFinally, you can populate the database with some example data, so\nthings do not look too blank in development mode.\n\n    $ rake db:seed\n\n## Configuration\n\nPageflow stores files in S3 buckets also in development\nmode. Otherwise there's no way to have Zencoder encode them. See\n[setting up external services](./doc/setting_up_external_services.md).\n\nThe 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.\n\nFor available configuration options and examples see the inline docs\nin `config/initializers/pageflow.rb` in your generated rails app.\n\nEnsure you have defined default url options in your environments\nfiles. Here is an example of `default_url_options` appropriate for a\ndevelopment environment in `config/environments/development.rb`:\n\n    config.action_mailer.default_url_options = {host: 'localhost:3000'}\n\nIn production, `:host` should be set to the actual host of your\napplication.\n\n## Running Pageflow\n\nIn addition to the Rails server, you need to start two Rake tasks for\nthe background job processing. These tasks are listed in `Procfile` which\nis generated in the project root folder by the Pageflow installer.\n\nConsider using the [foreman gem](https://github.com/ddollar/foreman) to start all of\nthese processes (including the Rails server) with a single command in your\ndevelopment environment.\n\nThe built-in Resque web server is mounted at `/background_jobs`. Use it to\ninspect the state of background jobs, and restart failed jobs. This functionality\nis only available for admins.\n\n## Troubleshooting\n\nIf you run into problems during the installation of Pageflow, please refer to the [Troubleshooting](doc/troubleshooting.md) docs. If that doesn't help, consider [filing an issue](https://github.com/codevise/pageflow/issues?state=open).\n\n## Security Policy\n\nSee [`SECURITY.md`](https://github.com/codevise/pageflow/blob/master/SECURITY.md).\n\n## Contributing\n\nPull requests are welcome on GitHub at\nhttps://github.com/codevise/pageflow. Everyone interacting in the\nproject's codebases, issue trackers and mailing lists is expected to\nfollow the\n[code of conduct](https://github.com/codevise/pageflow/blob/master/CODE_OF_CONDUCT.md).\n\nSee the\n[Contributing section](https://github.com/codevise/pageflow/blob/master/doc/index.md#contributing)\nin the guides list for instructions on how to setup your development\nenvironment. The\n[GitHub wiki](https://github.com/codevise/pageflow/wiki#contributing-to-pageflow)\ncontains high level guides on common development workflows.\n\n## License\n\nThe gem is available as open source under the terms of the\n[MIT License](https://github.com/codevise/pageflow/blob/master/MIT-LICENSE).\n\n## Special Thanks\n\nBuilt in cooperation with:\n\n[![WDR](doc/supporter_logos/wdr.png)](https://wdr.de)\n\nWe would like to express our special thanks to the following services\nfor supporting Pageflow through free open source plans:\n\n[![BrowserStack](doc/supporter_logos/browser_stack.png)](https://browserstack.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodevise%2Fpageflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodevise%2Fpageflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodevise%2Fpageflow/lists"}