GithubHelp home page GithubHelp logo

advocacy.mozilla.org's Introduction

Overview

This is the repository for https://advocacy.mozilla.org

As of April 2016, there are three parts to the site.

Homepage and Open Web Fellows are an index.html file statically generated by a server at build time. This single index page then renders the requested page on the client side.

Encrypt Campaign doesn't use an html file and nothing is built on the server, instead the server generates the pages as requested and passed to the client. The result page is cached on the server in memory after the first request, so the next request is not generated again.

Getting Started

Clone a copy of the repository using something like git.

To get a local version of the site running, you'll need node 8 or higher installed on your local machine.

Build

To start local development, install and run the following commands:

$ cp sample.env .env
$ npm install
$ npm start

Develop Workflow

After successfully building and running the server, go to localhost:8080/

You can now start changing files in the /src directory, such that saving your changes and refreshing the browser will show your changes.

Files outside of /src require npm start to be rerun

Sitemap

/ -> /src/pages/home.js
/encrypt/ -> /src/pages/encrypt/index.js
/open-web-fellows/ -> /src/pages/open-web-fellows/overview.js
/open-web-fellows/info/ -> /src/pages/open-web-fellows/info.js
/open-web-fellows/fellows/ -> /src/pages/open-web-fellows/fellows.js

Source Structure

Running npm start is the entry point to build our code and run our server. All our npm scripts and npm dependencies are stored in package.json.

Our client side code is written in react and lives in /src. Our files are organized into two directories, /src/components/ and /src/pages/. Components are shared UI elements, like header and footer used to build pages.

We have an npm script that uses babel to compile the contents of /src from es6 to /dist as es5. These are built to run on the server and client.

We use webpack to package our client side files into /public, which is handled in webpack.config.js

We use react-router to handle the site structure, which live in /src/avocacy-main.js and /src/encrypt-main.js.

We use node version 8 or higher to run our server, which is handled in app.js.

"Encrypt" pages are handled a bit differently from the rest. The standard routes, and source, use /src/advocacy-main.js for pretty much all the generating and packaging of files, routes, and source. Encrypt uses /src/encrypt-app.js to package client side files, and uses /src/encrypt-main.js and /src/lib/react-server-rooute.js to handle server side rendering.

advocacy.mozilla.org's People

Contributors

alanmoo avatar alicoding avatar alphal10n avatar andreitarkovski avatar andy-moz avatar auremoser avatar avelper avatar beccaklam avatar bychekru avatar fjoerfoks avatar flukeout avatar hpauljohnson avatar jbuck avatar jsyanis avatar jurajcigan avatar kitsunenosarat avatar koehlermichael avatar mikkcz avatar mmmavis avatar mozilla-pontoon avatar pomax avatar scottdowne avatar simonwex avatar stoyandimitrov avatar theochevalier avatar tonnesm avatar treecycles avatar ujdhesa avatar unghost avatar vasimi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

advocacy.mozilla.org's Issues

Search engine description is react tags

OS: ALL
Browser: ALL
Screenshot:

Repro Steps:

  1. Search "mozilla encrypt" in Google
  2. Find first https://advocacy.mozilla.org/encrypt/ result (fourth down for me)

Expected: Text describing content of the encrypt series
Actual:

<div data-reactid=".9t9koqax34" data-react-checksum="-1546226859"><div class="encrypt v2" data-reactid=".9t9koqax34.0"><header class="header" ...

The link redirects to https://advocacy.mozilla.org/encrypt/social/3, which is missing a <meta name="description" content="" /> tag. view-source:https://advocacy.mozilla.org/encrypt/social/3

Figure out better a/b test setup and takedown

Right now, react and optimizely don't work well together. Causes some issues and I have a few initial thoughts on solutions.

In donate most a/b tests needed to be coded directly into the repo, which is fine for larger tests, but smaller ones it's a bit of a hassle. This is because react renders pages in a similar way to how optimizely adds the test changes. If these processes are not aware of each other, likely, react clobbers the test changes.

The second issue with this is removing the losing version is usually delayed and labeled a p2 and the winner gets hard coded. Not long ago I needed to remove an a/b test from donate from end of year that was in the code for a little too long, and was a bit of a headache sorting out what should stay and what should be removed. I think optimizely won't solve this, but a practice for implementing the test would. Tests need to be clearly decoupled from the rest of the code and the baseline version. So turning it off is as simple as removing the test directory or basline directory manually or through an interface. Then the other version is left and renamed or something. Let's not have layers of baseline and test and shared resources, which makes it hard to sort out which is which much later. Also the longer it stays in the code, the more new changes for features unrelated to the test are built on top of the test, and when it comes time to remove you need to sort of what parts are features unrelated ot the test that need to be ported over to the updated code once things are removed.

[March 21, 2016] Implement updates to OWF site, close applications

Based on plan issue MozillaFoundation/plan#765 and design #114

Deadline March 21, 2016

Comp: https://redpen.io/hyd170a39c7b5c0e5e

To do:

  • top banner: delete Apply Now button on all three fellowship pages
  • bottom banner: update copy and button link

Bottom banner copy for Overview and Info page:
Title: Application Closed
Copy: Thank you to everyone who applied. We will be contacting candidates directly in mid-April and announcing 2016 fellows in June. If you’re interested in what current fellows are doing, please visit our fellows page.
Button: Fellows (link to https://advocacy.mozilla.org/open-web-fellows/fellows)

Bottom banner copy for Fellows page:
Title: Application Closed
Copy: Thank you to everyone who applied. We will be contacting candidates directly in mid-April and announcing 2016 fellows in June.
No button.

Media management for advocacy campaign

Problems

  1. Have to use github to upload the media file
  2. Have to get dev to change the url to that newly added media
  3. Time consuming when devs are focusing on their P1s

Propose solution

Using github new feature for uploading a media file or CMS and get the URL then update it on some interface that allows anyone to update the URL > preview and apply their changes.

or

Create an interface that allows anyone who's working on the campaign to upload and change the media from the site (similar to in-place localization like Pontoon)

Goal

We need to allow anyone who's working on the campaign to be able to upload the image file, preview and apply their changes live.

cc @simonwex @lovegushwa

Implement link to OWF report from advocacy.mozilla.org

Once the report is published we need to promote it on the advocacy site:

Based on #202 (comment)

Please add two links:

  1. Home page (https://advocacy.mozilla.org/en-US) tile: Update the fellowship tile button from "Learn More" to "Read our Year 1 Report" (rest of copy stays the same)

  2. Fellow Overview page (https://advocacy.mozilla.org/en-US/open-web-fellows/overivew): "Read the report-out on Year 1 of the Fellowship"
    After the paragraph "Fellows are makers and doers..." but before the header "Expectations of Fellows"

Both will link to: http://mozilla.github.io/content/open-web-fellows-report/#introduction

cc @hannahkane @sabrinang

Advocacy content+design+dev communication process

Dig into communication problems identified in Q1 campaign:
(more details about problems here: https://public.etherpad-mozilla.org/p/dev-adv )

What are the problems / pain points around communicating content and specifications for:

  • page content (text on a page)
  • page variants
  • user flow
  • AB testing (share progress, optimizely)
  • GA
  • modals (email signup/pledge form & social share)
  • UX states
  • localization

What are the shared assets that we need in order to have a common language for items listed above?

Stakeholders
@natalieworth
@shaghdoosti
@valianttry
@brettgaylor
@HPaulJohnson
@stephaniemcv
@ScottDowne
@alicoding

Consulted (please add anyone else that needs to be part of this conversation)
@alanmoo
@KevZawacki
@mmika
@simonwex
@adamlofting

Partial templates for content editing

Problems

  1. Have to use github to update the copy
  2. Have to get dev to change the copy

Propose solution

update copy flow

Using CMS that allows anyone to change the copy with the option to preview before apply their changes (draft preview).

Goal

We need to allow anyone who's working on the campaign to be able to change the copy or even add new section to the site like the example before

ruaaxfbp

cc @simonwex @lovegushwa

Implement add Ford logo to OWF site

We need to add a section to https://advocacy.mozilla.org/open-web-fellows/

Needs to include: Ford Foundation logo, description and link to their site https://www.fordfoundation.org/

Based on design in #51
here is the comp https://redpen.io/p/wt1d64bfb93fa6a6b8

Assets:

Ford logo svg: https://drive.google.com/a/mozilla.com/file/d/0B2irLVDJivhLMWNhQ1dFbFFXVmM/view?usp=sharing

Copy: SUPPORTED BY
The Ford Foundation works around the world on the frontlines of social change to fight inequality, strengthen democratic values, reduce poverty and injustice, and advance human achievement. Learn more at FordFoundation.org

Body text is same as the rest of the body text. "Supported by" is: 14px, italic, #7f7f7f

Light grey background colour: #efefef

@alicoding would you please be able to do this?

Design updates to OWF site, close applications

Based on MozillaFoundation/plan#765

Close OWF applications at midnight (PT) March 20th. Update the messaging on the website on March 21st to:

  • Thank people for their interest
    
  • Explain the application window is closed
    
  • Explain that those who've applied will hear from the Open Web Fellows team directly
    

We should keep the program information available for candidates as we review applications; I think the only major changes would be in the header + footer:

  • Delete "apply now" button
    
  • New messaging in the footer
    

Add a featured section for Tools for Activism

Working with @brettgaylor on this. Wanted to open a thread here so I could put in updates and stuff. I may do a work-in-progress pull request so they code is hosted here instead of just locally.

Concept:
(Text can change, image can change)

screen shot 2016-05-16 at 14 35 49

Identify decision-makers

As a project is developed, questions inevitably arise that require answers from a variety of people. Many people have opinions in various areas, but specific people generally have the final say on certain areas (analytics, content, design, etc). As each projects starts, those people should be identified so that pressing issues can be resolved quickly.

design and implement email sign up on home page

Based on MozillaFoundation/movement-building#82

Lets make the home page email sign up the same functionality and similar look as on the encryption campaign micro site - MozillaFoundation/encryption_campaign#40 (comment)

I think this will be a sign up button which opens a form asking for user's name, email and country.

@ScottDowne I'll updated the design today and then hopefully you can work with whoever is building the mirco site and reuse some of the code.

cc @cassiemc

Dev updates to OWF one-year report template

Based on design #165 and Redpen comps

We will need to make some updates to the paginated version of the template

Updates needed:

  • review design to make sure everything is possible using markup
  • fix nav bug: clicking on the side nav should bring a user to the top of the page content, right now if shows partway down the page
  • double check that it will print nicely
  • add quote style

cc @flukeout @hannahkane

Content for OWF refresh

See MozillaFoundation/plan#812 for details

We will need copy:

  • To welcome and announce the 8 new fellows
  • Revised and shortened info page copy
  • Short bios of each fellow, the work they'll be doing at their host orgs (Include twitter handles of each fellow, links to host org websites)
  • Possible changes needed to the fellows site to make it an alumni page

Images:

  • photos of the new fellows

memory issues with babel-core/register

I'm pretty sure we're using this right now in production, but we shouldn't because it uses a lot of memory. (200-300mb)

This is being used to turn es6 into es5 as the code is requested instead of once at build time.

We need to add a build step to compile files from es6 in src/ to es5 in dist/ or something.

Awkward icon with spinners

The lack of color contrast between the spinner icons and the (seemingly off-brand) red circle is jarring, IMO:

screenshot 2015-04-07 10 59 56

Apply Now section, PST or PDT?

The "Apply Now" section on many of the pages shows the application deadline as 11:59pm PST March 20, 2016. However, daylight savings time starts on March 13 this year. Should that be PDT instead of PST?

screenshot from 2016-02-02 13-58-16

Add "notify me" form to Open Web fellowship page

Add a "Let me know when call for application opens" form to the Open Web fellowship page so that people can fill in their emails and be notified when we the program starts receiving applications again.

Scope adding Ford logo to OWF site

We've forgotten to add Ford Foundation's logo to the OWF site. Questions I have:

  1. What is the process for adding an external org's logo? (i.e. is legal or code review necessary?)
  2. Assuming this isn't an issue, what would the timeline (from our side) be? Design, dev, updating, etc.
  3. What do we need from Ford?

If I've missed any questions that should be considered, please include them in this issue. Thanks!
cc: @brettgaylor @cassiemc @kristinashu @ScottDowne (Not sure if Kristina + Scott would still be on point for this.)

Develop process for identifying finalized content.

A small text change might not take long, but constantly having to jump back in and out of the codebase to fix typos and update assets can result in a loss of development time. We should have a process for identifying completed and approved content that makes it easy for developers to identify and incorporate. (A Google doc that's used for evolving the content can be hard to rely on as a source of final truth. It can also be really hard to parse.)

Build and add content to OWF one-year report

Based on design #165

Template should be the paginated version (similar to http://flukeout.github.io/curriculum-testing/intermediate-web-lit-two-updates/session01-buttons-and-alerts.html#overview).

I believe the plan is:

Deadline is July 18

@hannahkane does that sound right?

Design assets for OWF one-year report

The draft document is here: https://docs.google.com/document/d/15ozoyElpjgfhCRA9t1PgqRx-KrDtL4k2yDfn9t8Rm5s/edit

We'll use the Web Literacy Whitepaper as a template for the design, though we'll add design elements as needed.

Design TODOs

  • Choose a color for the template
  • Identify or design a graphical element for the top left corner
  • create a pullquote style (note: should be added to Onesie)
  • photo treatments (photos to be provided by OWF team)
  • bar graphs (details and data to be provided by OWF team)
  • a map with data about where applications were sourced (data to be provided by OWF team)
  • ensure the print stylesheet works and looks good

Localization strategy for videos

Now that we are live on Pontoon, we're starting to see lots of locales translate the site and ask for it to be on production.

When we have videos on our site, it presents a bit of a problem: not all of our videos are localized either with audio (dubbing - as we did in spanish and german for encryption2), or with subtitles.

It would be great if we could somehow indicate to localizers that they can localize the video on Amara (when applicable), and that this would be a requirement for a locale being considered localized. This would also require us hosting videos in a way that is compliant with Amara (eg youtube).

Identify deadlines

As the development process is being planned, we need to know what our deadlines are so that we can allocate time appropriately and know when we need to stop making changes so that appropriate QA can be done.

Identify documentation requirements

As a project is built, there's likely a need for some set of documentation. We need to figure out what that is for each project. Some ideas:

  • Goals of a campaign
  • Workflow of a technical project (CI, deployment, etc)
  • Stakeholders

Advocacy + MOCO collaboration (design and dev focus)

Define a process for collaborating with MOCO snippet, UX, brand and policy teams:

This is a huge sticky area to solve. We're focusing on issues that impact design and dev with an eye for technical / UX requirements (ie. how to ship a snippet) and creative/content approval (effects how much time dev's have when working quickly, any any revisions).

Stuff to dig into:

  • requirement briefs
  • approvals
  • what other things?

more details about problems here: https://public.etherpad-mozilla.org/p/dev-adv

Stakeholders (anyone else?)
@shaghdoosti
@valianttry
@HPaulJohnson
@ScottDowne
@alicoding

[Plan] Open Web Fellows 2016 Communications Plan

Detailed goals in Open Web Fellows 2016 Comms Plan Google Docs

RASCI:
R: Kevin Zawacki @KevZawacki
A: Paul Johnson @HPaulJohnson
S: Brett Gaylor @brettgaylor Melissa Romaine
C: Fellows, Sam Burton, host org. communications teams
I: MoFo comms

Overview:
The first quarter of 2016 marks a major moment for Mozilla’s Advocacy network: the first-ever cohort of Ford-Mozilla Open Web Fellows will graduate from their placement organizations. As this occurs, Mozilla will reflect on fellows’ work and impact, and fellows will embark on the next step of their careers as OWF alums.

Starting in February, Mozilla will also open the application process for its second cohort of Open Web Fellows. This class will be more policy-focused than the last, and boast heightened reach — fellows will embed at organizations in Nairobi, Santiago, Brussels and elsewhere around the world.

The Communications Plan (linked above) outlines strategies and tactics for communicating these developments with the world.

Links:
OWF blog
OWF narrative
OWF call notes

KPIs:

  • 1 capstone blog spotlighting OWF program and enticing 2016 applicants
  • 1 email engaging unselected host orgs 2016 applications
  • 1-2 positive, factual stories in tech/policy/privacy press spotlighting OWF program
  • Strong showing on all owned channels: email, project call, social

Calendar and Tactics:

  • Jan. 22: Kevin and Melissa determine blog structure and content
  • Jan 25: Kevin beings interviews with OWFs and host orgs. See progress here
  • Feb. 1: Application open for 2016 fellows
  • Feb 1: Melissa on all hands call
  • Feb. 2: Begin promoting application portal on social
  • Feb 11: Email to unselected host orgs (Melissa)
  • Feb 17: Publish blog post on blog.mozilla.org/netpolicy
  • Feb 17: Pitch media
  • Feb. 18: Promote blog on social
  • Mar 1 - May 31: Current fellows being to graduate
  • Mar. 20: Applications close
  • Mar. 30 - Apr 1: RightsCon
  • Mar 29: Emerging leaders event
  • May/June (Sept?)
  • 2016 fellows announced
  • Published announcement on blog.mozilla.org
  • Re-pitch media

Promote one-year report

From @Melechuga in #165: We'd just want to link to it from both the adv.m.o page (one of the "tiles") and from the OWF page.

Do you want the link to replace one of the current four tiles on adv.m.o, or be a fifth tile?

Where do you think it would fit best on the OWF content (see "content only changes" versions on the redpen)?

staging build failed when pushing to master

@alanmoo Not sure, heroku says this: "The account which we use to deploy advocacy-mozilla-org-staging to Heroku via GitHub sync no longer has access to the app. This could be because the person who configured GitHub sync is no longer a collaborator on advocacy-mozilla-org-staging."

Sounds like I don't have permission?

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.