Coder Social home page Coder Social logo

pulse's Introduction

This project was decommissioned by the Office of Government-wide Policy and redirected to digitaldashboard.gov in June of 2020.

=================

The pulse of the federal .gov webspace

How the .gov domain space is doing at best practices and federal requirements.

Documentation Other Links
Setup and Deploy Instructions System Security Plan
a11y scan process Ideas for new sections to add to the site
Ongoing Work Backlog of feature requests and ideas
ATO artifacts Open Source Reuse of the site
Project Information

Setup

Pulse is a Flask app written for Python 3.5 and up. We recommend pyenv for easy Python version management.

  • Install dependencies:
pip install -r requirements.txt
gem install sass bourbon neat bitters
  • If editing styles during development, keep the Sass auto-compiling with:
make watch
  • And to run the app in development, use:
make debug

This will run the app with DEBUG mode on, showing full error messages in-browser when they occur.

Initializing dataset

To initialize the dataset with the last production scan data and database, there's a convenience function:

make data_init

This will download (using curl) the current live production database and scan data to the local data/ directory.

Install domain-scan and dependencies

Download and set up domain-scan from GitHub.

domain-scan in turn requires pshtt and sslyze. These can be installed directly via pip.

Pulse requires you to set one environment variable:

  • DOMAIN_SCAN_PATH: A path to domain-scan's scan binary.

However, if you don't have pshtt and sslyze on your PATH, then domain-scan may need you to set a couple others:

  • PSHTT_PATH: Path to the pshtt binary.
  • SSLYZE_PATH: Path to the sslyze binary.

Configure the AWS CLI

To publish the resulting data to the production S3 bucket, install the official AWS CLI:

pip install awscli

And link it to AWS credentials that allow authorized write access to the pulse.cio.gov S3 bucket.

Then run it

From the Pulse root directory:

python -m data.update

This will kick off the domain-scan scanning process for HTTP/HTTPS and DAP participation, using the .gov domain list as specified in meta.yml for the base set of domains to scan.

Then it will run the scan data through post-processing to produce some JSON and CSV files the Pulse front-end uses to render data.

Finally, this data will be uploaded to the production S3 bucket.

Public domain

This project is in the worldwide public domain. As stated in CONTRIBUTING:

This project is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the CC0 1.0 Universal public domain dedication.

All contributions to this project will be released under the CC0 dedication. By submitting a pull request, you are agreeing to comply with this waiver of copyright interest.

pulse's People

Contributors

adelevie avatar alex avatar buckley-w-david avatar captn3m0 avatar csmcallister avatar eddietejeda avatar gbinal avatar ianlee1521 avatar jeremiak avatar jmcarp avatar jtexnl avatar konklone avatar micahsaul avatar nickbristow avatar scottoneal avatar siccovansas avatar smarina04 avatar tdlowden avatar titanous avatar tswicegood avatar uncompiled avatar xtine 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

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

pulse's Issues

phase out master branch?

If we plan to heavily use the gh-pages branch, anyone have a problem with me porting over the material from master to gh-pages and killing the master branch?

[Note: I'd do this after the basic-frontend branch was merged.]

Make this repo public

Hi folks -

The other github.com/gsa admins and I are surveying the private repos and trying to tighten our belt with private to postpone the need to upgrade our plan. I think this repo is fine (even will benefit from) being public. Can we confirm whether we have ay need to keep it private? If there are needs, can we confirm their timetable and see when they might change?

User Interviews with CIO or other stakeholders

Had a quick discussion with @konklone this morning about possibly interviewing one of the CIO's we have been in contact with to talk about the dashboard. It would be great to get clarification on information that they would find useful.

Here are a few suggested questions:

  • What agency are you overseeing?
  • What are some of the challenges you face when making decisions?
  • Is there a particular tool or website that you use for helping make those decisions?
  • What kind of information do you find most useful when determining the security protocols used by your web properties?
  • Is there a standard that you have in place that the websites you manage are required to take to comply with security standards?

Kick off the design process for a proper front-end

  • Create basic front end layout and structure
  • Gather user data and information directed at the product
  • Write archetypes for our users (e.g. CIO)
  • Start developing various wireframe versions for the team to iterate over

Participate in the DAP

The front-end should itself participate in the DAP, and possibly have its own Google Analytics account, with the proper privacy knobs on.

Decide which "federal agencies" to display

Currently, there are 126 agencies identified in the data as "federal agencies" in charge of websites. Several of them are agencies in charge of just one domain, others may only have one or two, and many are not what one would traditionally think of as federal agencies (Amtrak, for example). Single-site agencies won't make compelling data visualizations (everything will be 100% in either direction), so I would propose that we remove them from visualizations, while still making their data available in the table.

Change placeholder text on live pulse.18F.gov page

Could we make the placeholder text at the top of the pulse page a little bit more official sounding in case someone who comes across the page is not technical? There has been some concern that the pre-alpha language might be confusing to non-technical folks. I know we're not publicizing anything yet, so no outside parties should get onto the site in theory, but some folks at OGP are uneasy about the language as it stands nonetheless. I'd suggest "This website is in a very early stage of development. No information or content found here should be considered definitive."

Thanks, and sorry for the nitpickiness of this issue.

Publish list of federal .gov subdomains

Pulse.cio.gov currently runs on top of the list of federal .gov 2nd level domains (e.g. fbi.gov, irs.gov). The dataset of federal .gov subdomains (e.g. blog.trade.gov, calendar.nih.gov) is not currently made public but hopefully will be at some point. Publishing it would allow the pulse scans to gain another level of detail.

Programmatic access to DAP data

We need to:

  • Create a developer project in the Google dashboard. Noah's working through the IT limitations here.
  • Have DAP authorize the credentials associated with this developer project to access their data.

Initial ATO

  • Get delegated authority from OGP to use 18F's ATO process.
  • Prepare template ATO for 18F DevOps.
  • Have something up there besides the word "PULSE".
  • Meet at scheduled time with DevOps to complete process and obtain the ATO.

Set up Travis CI

It should at least run the commands in our README (e.g. npm install and bower install and gulp [something]) to exercise them and make sure we're not breaking stuff. The default gulp command watch-es, which isn't what we want for CI.

Brainstorm: Future Dashboard Possibilities

Such as:

  • More HTTPS detail, e.g. SHA-1, forward secrecy
  • Does the site require “www”? Does it require not using “www”?
  • Load time (server-side)
  • Mobile friendliness
  • Mixed content detection (linking to insecure resources)
  • Use of third party services
  • 508 compliance (poss. with http://pa11y.org/)

Add more ideas below.

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.