Giter Club home page Giter Club logo

eregs.github.io's People

Contributors

ascott1 avatar audiodude avatar brittag avatar cfarm avatar cmc333333 avatar dependabot[bot] avatar donjo avatar jehlers avatar kimberlymunoz avatar tadhg-ohiggins avatar theconnman avatar waldoj avatar willbarton avatar xtine avatar yowill avatar

Stargazers

 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

eregs.github.io's Issues

Proposal: Use Babel + ES6 syntax

A logical progression of #54 and #55 is to include a transpiler for our JS code. I think this would make the code base easier to grok by more developers and simplify a lot of our code.

Two small stumbling points in setup instructions

While setting up a copy of this site I ran into two questions that would be nice to answer in the readme:

After I ran “bundle install”, the result ended with this message:

Post-install message from html-pipeline:
-------------------------------------------------
Thank you for installing html-pipeline!
You must bundle Filter gem dependencies.
See html-pipeline README.md for more details.
https://github.com/jch/html-pipeline#dependencies

Does this project expect the reader to ignore that message, or does it expect the reader to do something at that point?

After I ran the Jekyll command, the OS X firewall system popped up a dialog box that says “Do you want the application ‘ruby’ to accept incoming network connections? (Deny / Allow)”. What does this project expect the reader to choose?

Proposal: quarterly releases

We have a tendency to cut releases of our libraries when they are convenient for downstream projects. This works pretty well and should probably continue, but doesn't help downstream projects that we're unaware of. I propose that we aim to cut new releases at least once a quarter (unless no changes have been made in that time).

What do you think?

Making eRegs friendly to new developers

Since our workshop, I've had a lot of thoughts bouncing around in my brain wrt what eRegs needs to be in order to catch up to the demands being placed on it now and in the future. I want to continue conversations we started during the workshop around the technical direction of eRegs.

Goals:

  • new back end developers, who are likely inexperienced in the exact pieces that comprise the parser, can reasonably quickly get up to speed on core parser concepts, its interface(s) and the pertinent information around the regulations ecosystem that will make clearer why the parser does things that it does.
  • all new developers can understand how the different pieces of eRegs fit together - how -site and the back ends work as well as the ability to find out where all related data comes from (GPO, Federal Register, etc) and how it relates to the parsed content.
  • front end developers can understand how to create a theme or otherwise extend the UI of eRegs
  • ?

Why?

  • hopefully, longer term, this work will help enable us to move both 18F and CFPB to shared core instances of eRegs
  • on the 18F side, it should speed up development of new client instances
  • more people involved increases the reach, potential and capacity of eRegs
  • more brains = more ideas
  • can get more meaningful open source contributions
  • ?

How?

  • thorough, well-designed and organized documentation
  • implementing some kind of theme/skin system
  • thinking about the parser interfaces as public ones, documenting and potentially restructuring code to bring to the surface clear touch points into the process
  • ?

Any revisions/thoughts/additions?

Make this an organization page

We could rename this repo so that the repo is eregs.github.io rather than eregs.github.io/eRegulations. Any objections?

Move 18f regulations-* repos to eregs org

18f's regulations-parser, -core, and -site are intended for general agency usage. I recommend we move them into the eregs github organization to limit confusion from new users and share governance.

Upload all presentations

We've created many, many presentations around eRegs, but they are all locked up in Google Drive, etc. Let's export them and post them somewhere on eregs.github.io

Maybe include a viewer like http://viewerjs.org/ ?

Proposal: Switch ESLinting to Airbnb's

Airbnb's linter configuration has become a decent standard; let's adopt it rather than rolling out own. I propose we include eslint-config-airbnb and replace our existing eslint with

extends: airbnb

This will no doubt raise lots of issues; we can go through them and turn off all of those rules to a "quiet" state and then begin fixing.

Refactor information architecture

We've been sort of shoving everything in the left-hand navigation rather than thinking about the site's structure. Currently, we have:

  • Overview and live instances (which is basically just a link farm to other pages)
  • Features
  • Code and documentation
  • Theming an instance
  • History, present, and future
  • Introduction to regulations
  • Guidelines (how to write regulations)
  • Contact and Governance

I propose the following instead:

  • Overview (ideally revamped content to be more of a summary)
  • History and Trajectory (includes scope section from current history page)
    • Projects and Phases (see #61, includes parts of the "Features" content)
    • In the News (current, on the History page)
    • Presentations (split this from the news part)
  • Guides
    • Introduction to regulations
    • Creating an eRegs instance (revised content, collected from ATF docs, /story, Theming an instance, etc.)
    • Architecture (revised content, collected from /technology, read-the-docs, etc.)
    • Writing regulations guide
  • Contact and Governance (now to include open source info)

Proposal: Incrementally shift -site to React + Redux

As we've added new features (particularly Notice & Comment) which have required significant JS code, we've run into difficulties testing the frontend and following the logic between events. React should help the testing problem by providing very clean abstractions. Redux should make the eventing system easier to follow as it keeps track of the app's state in a single location.

We've also spoke a bit about isomorphic JS and how that could solve some of our split-brain backend-frontend issues. Getting these libraries in will make that direction easier to take, but let's keep the existing backend-generated HTML and focus only on the chunks of markup that are generated in JS. We can revisit once we prove the strategy's usefulness.

The incremental replacement approach is being using now in https://github.com/18F/calc and described in this talk: https://www.youtube.com/watch?v=BF58ZJ1ZQxY

Thanks to @jmcarp for suggesting this originally. What are your thoughts, @theresaanna @ascott1 @xtine?

Thoughts on regulations-site

Currently, regulations-site is a CFPB branded Django app. It's the result of a process where we were rapidly testing ideas and re-designing on the fly. This means that there are shards of code left where they shouldn't be and overall the app feels a bit messy.

As 18F expands regulations-site there is a need for it to be re-branded for various agencies. The current solution for this is to fork a version of reg-site. This works ok, but means that it's hard to contribute back to the original project.

Proposal

github.com/eregs/regulations-site could house a new and stripped down version of regulation site. This would contain minimal templates, styles, and JavaScript to produce a working regulations-site when paired with regulations-core. The output would look something like a wireframe.

Based on this frame of a site, individual organizations would be able to create themes that would contain template, style, and JS overrides (or complete replacements). This would allow organizations to style their own versions of eRegs however they'd like while also being able to use the base site.

Open questions

  • Is Django the right format for this? Could it be a static site generator? Something else?
  • Once of the nice things about the current setup is that eRegs is both a single page application as well as a Django app that works without JavaScript. Is this something we would like to preserve? If so, how else might we best accomplish this?

Add more to governance policy

From @brittag:

What about documenting how people can become part of the eregs org?
I’d also be interested in seeing a list there of the orgs/teams that are currently actively involved with eregs (even if it’s just CFPB and 18F)
And where should policy changes be discussed? Do people just discuss them by making an issue or PR on the docs repo? Would be good to note that
you likely already saw this, but Compliance Masonry has been talking about governance, and there’s a good list of questions in this repo from folks: opencontrol/discuss#5
And we’re looking at openopps/openopps-platform#1287 + https://github.com/openopps/openopps-platform/blob/dev/GOVERNANCE.md as a model

On code & documentation page, explain more about where to find the docs

Currently https://eregs.github.io/technology/ explains where to find the various parts of eRegulations and what they do. We have a bunch of other documentation that's a little bit hard to find from that page - you have to poke around a bit to find it. For example: some of the repository readmes have extensive explanations in themselves, and some of the readmes also lead to additional resources.

For example:

Let's make this /technology/ page better communicate where to find explanations.

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.