Giter Site home page Giter Site logo

mozillafoundation / foundation.mozilla.org Goto Github PK

View Code? Open in Web Editor NEW
378.0 53.0 153.0 73.05 MB

Mozilla Foundation website

Home Page: https://foundation.mozilla.org

License: Mozilla Public License 2.0

JavaScript 3.44% HTML 7.08% CSS 2.17% Python 85.98% Shell 0.02% SCSS 1.26% Procfile 0.01% Dockerfile 0.05%
moz

foundation.mozilla.org's Introduction

foundation.mozilla.org

Getting started

Before you start working on the project, be sure to read this README and the linked docs.

Setup with Docker

Local development

Engineer Workflow

OPS and Heroku Settings

Scheduled Task

Stack

How to Setup your Dev Environment with Docker

Requirements: Docker (Docker Desktop for macOS and Windows or Docker Compose for Linux), Python 3 with the invoke package installed globally, and git.

Installing Invoke

We recommend that you install Invoke using pipx, but any Python package manager should work (pip, poetry, etc).

Check your environment

  • docker run hello-world.
  • invoke --version should return 0.22.1 or higher.

Setup steps

Run the following terminal commands to get started:

  • git clone https://github.com/mozilla/foundation.mozilla.org.git
  • cd foundation.mozilla.org
  • inv new-env

You're done πŸŽ‰

This task creates a .env that is in charge of managing your environment variables while running Docker. The installation will take a few minutes: you need to download images from the Docker Hub, install JS and Python dependencies, create fake data, migrate your database, etc.

When it's done, run docker-compose up, wait until the static files to be built, and go to 0.0.0.0:8000. You should have a local working version of the foundation site with fake data. When you want to stop, do ^C to shut down your containers.

Once the webserver is running, you can log in to the admin site at http://localhost:8000/cms/. A superuser will have been created with username admin with password admin.

To catch up on new dependencies, migrations, etc. after initial setup, you can use the inv catch-up command. To get a full new environment with a new database, run inv new-env again.

Use inv -l to get a list of all the available invoke commands.

More information on how to work with Docker and how to manage Python dependencies are available in the local development part of the documentation.

Code style

To ensure a consistent code style and quality, we use linters and formatters.

Linting

To check the code base for quality and style issues run inv lint. This will run all configured linters. You can run the linters individually with, e.g. inv lint-js for JavaScript only. Check available commands with inv -l.

Formatting

If inv lint shows linting errors you can try running inv format to fix style issues. inv format should automatically fix most formatting issues.

There might be some linting issues that can not be fixed automatically.

Testing

Unit tests

When relevant, we encourage you to write tests.

You can run the tests using inv test. This will the full test suite.

To run only a subset or a specific Python test, you can use following command:

inv test-python --file path/to/file.py

The test-python command also support flags for turning increased verbosity on/off (-v) and for running tests in parallel (the -n option). To run tests with 4 parallel processes and increased verbosity, use:

inv test-python -v -n 4

The -n flag also supports the auto value, which will run tests with as many parallel cores as possible. For more info, consult the pytest-xdist docs.

See also the Django docs on running tests.

There is currently no unit test framework for JavaScript tests set up.

Integration tests

(Note that this is still a work in progress.)

Integration testing is done using Playwright, with the integration tests found in ./tests/integration.

You can run these tests locally by running a one-time npm install and npm run playwright:install after which you should be able to run npm run playwright to run the visual tests, with docker-compose up running in a secondary terminal.

In order to run the same tests as will run during CI testing, make sure that RANDOM_SEED=530910203 is set in your .env file, and that your local database is a new db based on that seed (inv new-db).

URL checker

URL checker can be initiated by running docker-compose up in one terminal and running npm run playwright:urls in a secondary terminal. It checks to see if visiting the URLs listed in tests/foundation-urls.js and tests/mozfest-urls.js returns an OK response (i.e., status 200). Note that the URL lists in these two files are not complete and will require updates. We will also need to expand the lists to include PNI and Donate URLs.

Visual regression tests

We also use Playwright in combination with Browserstack's Percy to perform visual regression testing for PRs, using ./tests/visual.spec.js as screenshot baseline.

Visual regression tests are run after a pull request review has been approved.

Accessibility tests

Accessibility tests are currently unavailable but will use axe-playwright when the switchover from Cypress to Playwright is complete.

Mozilla Festival

The fake data generator can generate a site structure for the Mozilla Festival that can be served under it's own domain, or in the case of review apps on Heroku, where we're limited to a single domain, as a sub-directory of the main foundation site, at {review_app_host}/mozilla-festival.

In order to access the Mozilla Festival site locally on a different domain than the main Foundation site, you'll need to edit your hosts file (/etc/hosts on *nix systems, C:\Windows\System32\Drivers\etc\hosts on Windows) to allow you to access the site at mozfest.localhost:8000. To enable this, add the following line to your hosts file: 127.0.0.1 mozfest.localhost

Ticket purchases are implemented using a third-party integration with Tito. A Tito Event snippet can be created for each event for which registration is needed. A TitoWidget Streamfield block can be used to place a button on a page to open the Tito widget, linked to a specific Tito Event. A Tito Event needs a security token and newsletter question ID which can be found in the Customize -> Webhooks section of the Tito admin dashboard for the event. A webhook (Django view) receives requests from Tito when a ticket is completed in order to sign users up for the Mozilla newsletter.

Donate Site

Similar to the Mozilla Festival site, the fake data generator can generate a site structure for the Donation site that can be served under it's own domain.

For local development, the donate site can be found at donate.localhost:8000.

Gotchas

As this is REST API and CMS built on top of Django, there are some "gotcha!"s to keep in mind due to the high level of magic in the Django code base (where things will happen automatically without the code explicitly telling you).

DEBUG=True

The DEBUG flag does all sorts of magical things, to the point where testing with debugging turned on effectively runs a completely different setup compared to testing with debugging turned off. When debugging is on, the following things happen:

  • Django bypasses the ALLOWED_HOST restrictions, which again can lead to 400 Bad Request errors in DEBUG=False setting.
  • Rather than HTTP error pages, Django will generate stack traces pages that expose pretty much all environment variables except any that match certain substrings such as KEY, PASS, etc. for obvious security reasons.
  • ...there are probably more gotchas just for DEBUG so if you find any please add them to this list.

Translations

Translations of UI strings (from the Django and React apps) are stored in the fomo-l10n repository. Translations are happening in Pontoon, in multiple projects: Foundation website, *Privacy Not Included and Mozilla Festival.

The latest source strings are regularly exposed to Pontoon by a Localization PM using the following process:

Initial setup:

  • Clone the fomo-l10n repository locally.
  • Set the LOCAL_PATH_TO_L10N_REPO variable in your .env file. Use the absolute path to your copy of the fomo-l10n repository and include the trailing slash. E.g. LOCAL_PATH_TO_L10N_REPO=/Users/username/Documents/GitHub/fomo-l10n/

Exposing latest source strings:

  • Make sure your local repositories of fomo-l10n and foundation.mozilla.org are matching the latest revision from main.
  • Run inv docker-makemessages from your foundation.mozilla.org repository.
  • Files should have been updated in your fomo-l10n repository. You can now create a pull-request.

Getting the latest translations for local dev

Latest translations are uploaded to S3. To get them, run:

  • curl -o translations.tar https://foundation-site-translations.s3.amazonaws.com/translations.tar
  • tar -C network-api -xvf translations.tar

You don't need to run compilemessages and it works for both pipenv or docker workflows.

The translations_github_commit_[...] file from the archive is only used for debug purposes on Heroku. It can be safely deleted if needed.

Contributing

We love contributors, but the team maintaining this project is small and not structured to significantly support new and inexperienced contributors. If there's an unassigned issue that catches your eye, feel free to open a PR for it, but keep in mind our support will be limited. We usually don't have the capacity to walk you through the process of spinning up the project, opening a PR or describing what the solution to the issue could be.

foundation.mozilla.org's People

Contributors

alanmoo avatar amit-jha-cmd avatar chris-lawton avatar danielfmiranda avatar dependabot-preview[bot] avatar dependabot[bot] avatar fessehaye avatar gideonthomas avatar gvn avatar helenb avatar jhonatan-lopes avatar kalobtaulien avatar kevinhowbrook avatar mergify[bot] avatar mmmavis avatar morsey187 avatar mtdenton avatar patjouk avatar pomax avatar ragnarokatz avatar richbrennan avatar robdivincenzo avatar scottdowne avatar siimonevans avatar stevedya avatar taisdesouzalessa avatar tbrlpld avatar theochevalier avatar tomusher avatar victoriachan 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  avatar  avatar  avatar  avatar

foundation.mozilla.org's Issues

Finalize design for Pulse integration

Pulse items will appear on the home and project page of the new network site.

  • Home will likely just display a few featured items with link below to project page.
  • Project page will ideally include 2 dozen featured items below a few featured tags to orient a visitor and allow them to filter (e.g. Privacy, IoT, Fellows).
  • Project page should also include a prominent button with something like "See all the great stuff at pulse.mozilla.org"
  • For both, "opening" an item should probably link to the item on Pulse, so we don't need to re-implement all of that. Maybe not idea UX, but likely MVP. We can discuss.

Let's discuss @sabrinang @taisdesouzalessa and then check in with Kristina when she returns.

CMS Requirements

Network site requires a CMS so that content can remain fresh and move as quickly as our programs.

This issue recaptures previous conversations. It offers high level info for planning, not all the nitty gritty details for implementation.

Next steps:

  1. engineering review of details
  2. engineering proposal with estimation

CMS Draft Requirements

Summary

The CMS needs to manage specific content types pulled into the site. It does not need to manage the entire site. See images below.

User/Author Requirements

  • Updates by a half dozen staff members (a mix of Comms, Program, Design)
  • Can require comfort with HTML
  • Can require adherence to style guide and documented patterns (e.g. html for an image and caption)
  • Can require review by an editor or peer
  • Cannot require production support

Content Requirements

  • Enable staff to edit key info pages
    • These include Programs, About, Upcoming and other specific pages with unstructured content
  • Enable staff to create a new subpage with
    • a custom slug (e.g. /programs/custom-slug)
    • fields: Title, Subhead, CRM ID, Body (Markdown or HTML)
    • author option: Standard Join form with custom heading and subhead
  • Enable staff to add a new "Offering" featured on homepage
    • fields: heading, subhead, link URL, image, CRM ID
    • author options: sort order, future publish date,
    • note: should be compatible with Optimizely integration on frontend to manage test content
  • Enable staff to add a new member "Profile"
    • fields: name, city, country, relationship (staff, board, advisory, ...), image, linkedin url, twitter, ...
    • author option: sort order
    • note: This is a gallery of representative members with official relationship to the network. Page may link to a directory, but this is not a directory.
  • Enable staff to add a new "Campaign" or "Earned media" item
    • Similar to the "Offering" content type. A few fields, no unstructured html content.
    • Note: These two content types could initially be managed on an unstructured page to simplify initial build. They are less critical than other CMS requirements.

Future Requirements

  • Translations
    • We will want the ability to translate key info pages

Non Requirements

The cost to manage the entire site or integrate all content into the CMS, such as content that will change very infrequently, is likely greater than the cost to make updates via Github or with engineering help. These things could be added later as needs become evident. They should not slow development of core requirements.

Things out of scope:

  • Management of UI localization
  • Management of the site navigation
  • Management of content on structured pages. E.g. Intro text on the People page, or headings between sections of the homepage.
  • Management of structured content within unstructured pages (e.g. embedded things)
  • Management of members
  • Management of blog posts

Reference

home

page

CRM form integration

For launch, our email sign-up form will ideally feed directly to our CRM. Other integrations (#8) can be added post-launch.

Let's gather requirements and insights from our advocacy peers. @gvn @arlissc

Develop testing plan for copy, CTAs, offerings, etc

We discussed and identified the priority things we'll want to test. We crafted some alternate copy for the hero and join call to action. @HPaulJohnson whipped up a spreadsheet to scaffold the plan and work ahead.

@gvn set up an engineering call to gather requirements for leveraging optimizely.

Next steps TBD. Coming soon...

Add Mozilla teams to this repo

@gvn - can we add our usual teams here? Autocomplete won't help with most staff handles. Or... do you want me to move discussion on content somewhere else?

Gather requirements for CRM data collection

Goal of site is to gain new members for the Network, and track them in the CRM so we can build relationships.

The site will include typical GA tracking. Hopefully we can build in some goals and funnels for a better look at people's experience and our success. This planning should be coordinated with CRM work so they complement each other.

cc @arlissc

Implement Campaign page

Design of this page should be discussed to identify MVP version.

@HPaulJohnson will discuss what campaigns should populate this page with the advocacy team.

Home Page headline

Currently we have 3 options of home page headlines. Copy deck here

  1. Where Technology Meets Humanity
    We believe a healthy Internet and healthy society are deeply entwined. Join the network.

  2. For Those Who Believe the Internet is Worth Protecting
    The Mozilla Network is a diverse coalition fighting for a healthy web.

  3. We Are Champions of a Healthy Internet
    The Mozilla Networks brings together diverse leaders of all types. Join its ranks.

Just flagging we have 3 options so we can choose one in the future for the release. The CTA should change depending on the chosen headline:

  1. Join the Mozilla Network
    Community. Training. Funding. What you need to build a healthy web.

  2. and 3. Join Our Ranks
    Access to bright minds, passionate community and invaluable resources.

Wireframes (use keyboard side arrows to navigate through the 3 options):
https://invis.io/ZJ9YTAGEA#/216715779_Home-Page-Opt1_-2-

cc: @xmatthewx @KevZawacki

Landing page copy for Training

One of our featured offerings will be a Training, a mini DIY experience distilled by @zee-moz from the open leadership training series.

We need to craft a landing page and join form for this offering. It should follow the pattern we're creating for internet health (WIP) #29.

We can adapt content already crafted by @zee-moz.

@KevZawacki @HPaulJohnson – can you take a look and propose a draft? It should be relatively quick. Likely just needs a connection to join.

  • I like @zee-moz's statement, "Think of this short course as your launchpad into the Leadership Network."
  • Maybe we say something like "Join to learn more about this and other training opportunities," while still offering a direct link.

Design featured profile component

Our people page includes basic profiles and a few featured profiles. Featured profiles also include an interaction to "see more". Let's design and discussion options.

Prep a list of Partner to promote on the site

We will want to list key partner orgs. Current thinking is that these will show up alongside the people on the people page. Either way, we'll need to...

  • figure out who we list (fellowship host orgs, advocacy partners, grant partners, ??)
    • let's focus on a dozen or so top quality, and plan to grow more later
  • how we describe them
  • gather logos, links, and basic info

@ldecoursy – is something you could help wrangle? let's discuss next week.

@taisdesouzalessa – what info should we display? how is it similar/different from info on people

External Dependencies

#This is a list of the projects external dependencies. All are in motion, but could be blockers. We can track risks here.

Marketing

  • Name of network (impacts design, content, URL) high
  • New brand
  • Release of web font
  • Design sign-off

Content

  • People content
  • Sign off on program content and links
  • Owners to finalize : Offering CTAs β†’ destination pages

Communications

  • Tell the network this is coming high
  • Post sign-up email engagement ready high

Tech Services

  • CMS integration high
  • Join β†’ CRM integration high
  • Medium account connection #24
  • Pulse API
  • End point for contact form (simple mailto desk.com)

Sprint: Success & Next Steps

We held a work week to advance: Content, Marketing (e.g. Value proposition), Communications (Internal/External), Design UX/UI, Engagement planning.

I'll use this issue to ensure proper documentation and that next steps are assigned.

A huge thanks to @HPaulJohnson @KevZawacki @taisdesouzalessa @ldecoursy for kickin' butt and making all of this possible. cc @chrislarry33

Shoutout to @gvn @sabrinang @OpenMatt @prefontaine for their awesome work in parallel.

Successes

Project wide

  • Drafted external dependencies list #23

Communications

  • Internal comms plan advanced
  • Comms to network plan initiated
  • Sent update/announcement to staff
  • Identified open questions on MoFo/MLN social media profiles

Content

  • Drafted editorial calendar
  • Identified and drafted offerings for launch CTAs. Identified owners.
  • Identified launch Medium and earned media items
  • Finalized v1 copy, including hero options to test
  • Set requirements for staff/board/member profiles
  • Advanced work to gather content for staff, board, member profiles

Marketing & Engagement

  • Refined statement on audience, goals, value prop
  • Mapped user journey
  • Submitted name options and rationale
  • Drafted post-launch testing plan. Phases for value proposition, hero & CTAs, join #48
  • Oriented staff who will contribute to post-signup engagement
  • Mapped flow of Offerings to DB

Design

  • Drafted wireframes for join page template
  • Added and crafted a News page for earned media
  • Locked down people profile card UX design
  • UI draft complete
  • Unblocked design relative to new brand

Next steps

  • coming soon

Prepare 3+ "offerings" for launch

The site will feature 3 "offerings" to visitors, doorways to engagement, something we provide of value to network members.

We have identified 4 leading options among our upcoming 2017 highlights.

Offerings were evaluated based on ability to:

  • Help tell story of network
  • Provide a mix of offering types, with high/low engagement
  • Viability
  • Goal: turn quality visitors into members via diverse options

Options for launch include:

  • contribute to internet health report
  • view fellow cohort and express interest in future fellowships
  • take mini-leadership training
  • become an encryption champion

Each offering requires a feature card for the homepage (image, copy, url) and a landing page with join form.

We've started conversations with an owner for each of the 4 most viable offerings.

Prepare wireframes

Wireframes and IA coming along well. Link to view coming in the near future.

UX list

Things that I am working on to keep track of volume and priorities:

  • Remove Join Us from slide deck, wireframes and InVision

  • Upcoming highlights: change title of page - Just "Upcoming"

  • Upcoming highlights: simplify design

  • About page: add "Contact Us" there

  • About page: design with real info from Kevin's deck

  • Interstitial flow - build . Copy

  • "Join us" button. Consider scroll down to form. Does it fit above footer on secondary pages?

  • scroll to page seems not to work very well...maybe a bar that shows on top after user clicks? or push the content underneath it?

  • transfer copy deck to wireframes

  • Digitize the simplified user journey - not super detailed...more a rough style because it is a work in progress

  • Find patterns in all pages and way to group them.

  • Create News Page (the button from the home page will link to this page but this page WILL NOT exist in the menu).

  • [see @KevZawacki for a sentence to introduce. is there a big button to medium? or is this page just more earned media? - News page]

  • Start bringing UI elements into UX (testing columns/gutters/line-height/typeface size - h1, h2, h3) and so on

  • Bring all elements from UI to wireframes

  • Comment on InVision the pages that are still being modified so Gavin focus on elements that are already locked down in terms of structure. [review @xmatthewx]

  • Check with Sabrina UI elements - stage of development

  • Add a slide with the menu expanded

  • Campaigns Page: Remove differentiation between partner campaigns and Mozilla's campaigns. How the partners will be shown in that page? Maybe a logo on top of the picture? [review @xmatthewx]

  • Home Page: 4 news (2 Medium/2 Earned Media) with a more button.

  • Home Page: remove "Contact Us" section (it causes distraction).

  • Add news Page to the IA

  • Campaigns Page: remove news section

  • People's page: collect info from Christine's deck.

  • People's page: Iterate on how to display information there. Maybe just the quotes? How about the cards, how we consider long names, long roles? [review @xmatthewx]

Gather content for People page

The site will have a page dedicated to showing the amazing people and partnerships at the heart of this network. Shipping that page will require us to gather a bunch of images and links. We need your help!

Design is a work in progress. Things we know now about this page:

  • Goal: The page should inspire visitors. They should think "these people are awesome" and "I belong here"
  • This is not a directory. We might have a directory some day. That day is not today. This page can link there or draw from there when that day arrives.
  • This page should include a mix of Staff, Board members, Advisory members. Recognized members when we're ready.
  • Ideally this page will also include logos of partner orgs. Any chance we have a list somewhere of all the orgs we consider a partner?

This Github issue could open a pandora's box. Let's not do that. Let's choose simplicity. Let's inspire people.

Research Django interfaces

Do a web search to find popular/viable django interface bolt-ons/etc that make working with Django easier from a user/admin point of view.

Evaluate selected django interface(s) from a UX perspective.

Compare django to wordpress (UI, number of steps to complete a task…)

Design Primary (Open Menu) Navigation

Navigation will follow a mobile nav paradigm, becoming more common on desktop.

@taisdesouzalessa – we should list basic specs on layout and behavior. For example, does it always fill the whole screen, regardless of screen size?

Implement Upcoming page

Note. We will want staff to be able to edit this page content. We should probably discuss pros/cons of components before implement that instead of html content.

UX may still be a work in progress.

  • finish styling
  • add images

CRM & Offerings follow-up

When people Join the network via a specific offerings, will program staff be notified? How will they track, follow up, and engage?

Background: One of our featured offerings will be a Training, a mini DIY experience distilled by @zee-moz from the open leadership training series. The site will leverage this offering to encourage site visitors to join the network, adding their email to our CRM.

Questions: @arlissc – how will @zee-moz know that a new person joined via this offering? Can program staff craft an auto-reply related to their offering? Will these program staff have access to the CRM to contact these individuals or the group of all?

Next step: Let's figure out the short-term and long-term limits to this engagement so we can plan accordingly.

cc @HPaulJohnson @ldecoursy

Finalize About page

  • finish styling
  • add links
  • add images (or remove blue) (blue in build is where they're missing)

Implement News component (Home)

The homepage includes a section of News.

News includes 4 items

  • 2 medium blog posts written by us
  • 2 earned medium items

This will be updated regularly by editorial staff (@KevZawacki). Medium could be pulled in via API, but all 4 items will have the same presentation, labeled with the publication. So, they could also be manually added just like the earned media.

Let's aim for simplicity.

cc @sabrinang @taisdesouzalessa

May or may not depend on: #24

IA - site

Update IA to detect any gaps since the changes we made in the structure during the workweek.

Simplified version updated (for staff presentation):
simplified-ia-v2

Modify the full version with the latest updates

Implement News page

This page is linked from button below News on the homepage. Not in the primary Nav menu, but should sit at /news.

Note. We will want staff to be able to edit this page content. We should probably discuss pros/cons of components before we implement that instead of html content.

Kevin has identified earned media that populate this page. @taisdesouzalessa can share copy for implementation.

Design Health report Offering landing page

A user will visit this page after tapping a featured offering on the homepage. This template will be kept simple and reused for different offerings with the same layout.

Internet Health is currently being designed.

Gather quotes to activate the info

The site will be fairly lean in terms of text content, but where we do have it, we can make it better with a nice quote.

Useful quotes might include:

  • importance of internet health
  • awesomeness of the network
  • role of network in internet health
  • urgency of privacy and security
  • awesomeness of our events
  • transformative-ness of our fellowships, grants, & trainings
  • impact of our campaigns
  • innovation of our member projects
  • energy in member collaborations

cc @KevZawacki @prefontaine @sabrinang

Check in with MoCo on their use of django

We will want to check in with pmac and tasos to find out how django is being used on the MoCo side, specifically in terms of the following questions:

  • What django bolt-ons are they using?
  • Who are they giving django access to?
  • How many people are usually β€œneeded” to be on that to keep it running (i.e. what is the general FTE commitment necessary to keep things up and running)

Consider display of partner Campaigns

Our campaign page could feature a few initiatives by partners mixed in with our own. If we pursue this...

  • Would we face any challenges?
  • What partners could be a source for this?
  • What current/recent campaigns could be listed on launch?

What do you think @HPaulJohnson?

Implement Programs page

Note. We will want staff to be able to edit this page content. We should probably discuss pros/cons of components before implement that instead of html content.

  • finish styling
  • add links

Interview admin users

Interview current admin/program staff who are using Django (example Lucy Harris, Kristina Gorr, Hannah, and another moco) to identify pain points and wins.

Interview questions:

Interviewees:

Identify key 2017 moments

The site will include a list of the biggest moments planned for 2017. The list should be limited to 6 items, ten max.

Goal: Each item should be show off what makes the network awesome. Exemplify how we uniquely foster change in the world. This is not an events calendar. Not a comprehensive list. Signal, not noise. We can link out to a public g-cal for that if we want.

Likely on the list: MozFest, global sprint, call for new fellows, next release of internet health report.

We'll need rough dates (month or season) and a tweet length description, framed on it's role in the network and how it impacts internet health.

cc @ldecoursy @KevZawacki @sabrinang

Launch Checklist

@gvn @hannahkane @cadecairos – I'd like to craft a Launch checklist now-ish, so we can ensure essential issues are filed. Do we have a template for this already? Or reference from Science site?

If we don't have a template, can we add ideas below and create one?

"Join us" Button Interaction

I feel V2 is stronger (Luke and Sabrina contributed to that option and we all agree it seems a better one). What do you think? @xmatthewx

@gvn do you think this is feasible to implement?

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.