GithubHelp home page GithubHelp logo

ramp4-pcar4 / story-ramp Goto Github PK

View Code? Open in Web Editor NEW
3.0 8.0 12.0 81.66 MB

Storytelling with interactive maps using RAMP

License: MIT License

JavaScript 11.58% HTML 18.13% Vue 51.90% TypeScript 18.27% CSS 0.11%
web-mapping

story-ramp's Introduction

RAMP Storylines (formerly StoryRAMP)

This project is an implementation of RAMP2 FGP Visualiser, Highcharts, and a number of other libraries, with the goal to provide a standards and guidelines compliant alternative to ArcGIS StoryMap, suitable for use in the Government of Canada's web presence.

Plugin Usage

To use the Storylines plugin in your Vue 3 project, follow these steps:

1. Install package from npm:

npm install ramp-storylines_demo-scenarios-pcar

2. Install the plugin in your Vue app:

import { createApp } from 'vue';
import App from './app.vue';
const app = createApp(App);

import StorylinesViewer from 'ramp-storylines_demo-scenarios-pcar'
app.use(StorylinesViewer);
import 'ramp-storylines_demo-scenarios-pcar/dist/storylines-viewer.css';

3. Import or merge i18n instance from the plugin:

import { storylinesI18n } from 'ramp-storylines_demo-scenarios-pcar'
// if there is no existing i18n instance in your app, add Storylines i18n when initializing Vue instance:
app.use(storylinesI18n);

// otherwise merge the storylines translations with existing i18n instance
i18n.mergeLocaleMessage('en', storylinesI18n.messages.en);
i18n.mergeLocaleMessage('fr', storylinesI18n.messages.fr);
app.use(i18n);

4. Use Storylines components in your Vue templates, here is a demo snippet for usage:

<header class="gray-200 sticky top-0 h-16 leading-9 w-full z-50 border-b border-gray-500 bg-gray-200">
    <div class="flex w-full sm:px-6 py-3 mx-auto">
        <storylines-mobile-toc class="mobile-menu" :active-chapter-index="activeChapterIndex" :slides="config.slides" :plugin="true"/>
        <div class="truncate">
            <span class="font-semibold text-lg m-1">{{ config.title }}</span>
        </div>
    </div>
</header>

<storylines-intro :config="config.introSlide"></storylines-intro>

<div class="w-full mx-auto" id="story">
    <storylines-content :config="config" @step="updateActiveIndex" :lang="lang" :plugin="true" />
</div>

...

config = ... (see following section)
activeChapterIndex = -1;
updateActiveIndex(idx: number): void {
    this.activeChapterIndex = idx;
}

Here is a demo of what a Storylines product would look like.

5. Creating Storylines config:

To create a Storylines config from scratch, please refer to the schema documnentation provided here. A demo config can be found here.

Alternatively, the storylines editor can be leveraged to help construct a complete configuration folder.

Project setup

npm install

Compiles and hot-reloads for development

npm run serve

Compiles and minifies for production

npm run build

Build as a Vue plugin

npm run build-plugin

Customize configuration

See Configuration Reference.

Live examples

Future goals

  • use RAMP4 mapping platform
  • development of a web-based editor

story-ramp's People

Contributors

aleksueir avatar dan-bowerman avatar dnlnashed avatar jahidahmed avatar mohsin-r avatar roryhofland avatar ryancoulsonca avatar spencerwahl avatar yileifeng avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

story-ramp's Issues

Paginator focus issues

After #53 is merged, found a few additional problems related to the focus of paginator. These include: hexagons not being filled a solid color when navigating between slides, the chapter headings not being bolded when in focus, etc.

Create image panels

Create a panel component to display images given a src path and altText description and consider creating a base class for all multimedia content.

Record and run load tests

A report on load tolerances and maximum concurrent users etc is created for the StoryRAMP Viewer.

Deployment plan with WIG/CCoE

WIG has a deployment and backout plan for publishing the StoryRAMP Viewer and configuration+assets into various server environments.

Create slideshow panels

Implement the slideshow panel component slideshow-panel.vue in which a given collection of images can be viewed in transition.

Test on mobile resolutions/devices

The application is tested thoroughly in other resolutions and contexts that are not Windows PC based. Issues are flagged for remediation if issues exist on popular devices or resolutions.

Create map panels

Implement the map panel component map-panel.vue that creates a RAMP map instance given a simplified RAMP2 config.

Breadcrumb content

The default Breadcrumb content ( Canada.ca -> Environment and natural resources ) matches the default ECCC links.

Develop a "bucket" container that can read in configurations based on URL-passed ID

A web page is developed that can can be passed an ID in the URL, and the corresponding StoryRAMP product loads.

The bucket needs to:

We also need to:

Checkboxes above should link to individual issues.

Investigate Excel to Highcharts workflow

Users are primarily going to provide data in Excel. Investigate methods, strategies, pros and cons for options to quickly convert Excel to Highcharts config format.

Things to consider:

  • Should be easy for users to potentially use/configure
  • If an option's process is not already easy, can we make it easy?
  • Users generally can't install software (but there may be leeway for Excel plugins etc)
  • Dependencies available in the Software Center are fair game (e.g. Python)

Some example data attached:

Create DQVchart panels

Implement chart panel component chart-panel.vue that properly displays a dqvchart given a defined config.

Markdown editor

The users have a basic editor where they can put together markdown text for their Story slides.

Missing tiles in Overview map

Even after upgrading to RAMP 3.3.4, it appears we still have an issue where overview maps show "tearing" as demonstrated in the screencap below:

image

This issue is to resolve the display glitch in the overview map.

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.