Giter VIP home page Giter VIP logo

code-gov-web's Introduction

Code.gov - Unlocking the potential of the Federal Government’s software.

Build Status Code Climate Test Coverage

Introduction

Code.gov is a website promoting good practices in code development, collaboration, and reuse across the U.S. Government. Code.gov will provide tools and guidance to help agencies implement the Federal Source Code Policy. It will include an inventory of the government's custom code to promote reuse between agencies and will provide tools to help government and the public collaborate on open source projects.

To learn more about the project, check out this blog post.

Code.gov is an open source project, so we invite your contributions, be it in the form of code, design, or ideas.

Project Timeline

The development of code.gov is guided by the requirements set forth in Section 7.2 (Code Inventories and Discovery), Section 7.3 (Code.gov), and Section 7.6 (Agency Policy) of the Federal Source Code Policy. Namely:

  • "Within 90 days of the publication date of this policy, the Administration will launch https://www.code.gov, an online collection of tools, best practices, and schemas to help agencies implement this policy.";

  • "Within 90 days of the publication date of this policy, each agency’s CIO—in consultation with the agency’s CAO—shall develop an agency-wide policy that addresses the requirements of this [document.]"; and

  • "Within 120 days of the publication date of this policy, each agency must update—and thereafter keep up to date—its inventory of agency information resources to include an enterprise code inventory that lists custom-developed code for or by the agency after the publication of this policy."

Over the next few weeks, we will begin the discovery sprint for code.gov. During that time, we will conduct user interviews and engage this community in discussions that will inform the user experience for code.gov.

After the discovery sprint, we'll begin building the site. We'll be relying on input from the community and from agencies about what features should be delivered first. That list of features will drive the design sprint and development sprint. And because this site is being developed in the open, you will be able to make contributions and provide feedback here as we go.

Contributing

Here’s how you can help contribute to code.gov:

Questions?

If you have questions, please feel free to open an issue here: https://github.com/presidential-innovation-fellows/code-gov-web/issues or send us an email at [[email protected]].

Getting Started

After you have cloned this repo, you can use npm install to install all of the project’s dependencies.

You can then run the server using npm start.

By default, the development server will listen on http://localhost:2700/. You can change the default port by setting the PORT environment variable before starting the server (for example, PORT=3000 npm start).

Testing

Unit tests

This app uses Karma + Jasmine to handle unit testing. Run npm test to execute tests. To add tests, simply create a file with .spec.ts as the extension and your tests will be included.

End-to-end tests

End-to-end testing is done with Protractor and tests are written in Jasmine with the Protractor API used to locate elements and interact with the page. Running e2e tests requires the following steps:

  • Run npm start to start the application.
  • In a second terminal window, run npm run webdriver:start to start the selenium server used to run the tests. This step must be done before the next step.
  • In a third terminal window, run npm run e2e. The Chrome browser will be launched to run the tests and the test results will be displayed in this window.

End-to-end tests need to be written in a file with an .e2e.ts extension.

Deployment

This app uses the github-deploy package for handling deployment. To configure deployment, customize the config/github-deploy and webpack.github-deploy files to match your settings. When ready to deploy, run npm run github-deploy:dev or npm run github-deploy:prod, depending on your intended destination.

Generating License Data

To update the dependency_licenses.json file, run npm run licenses.

File Structure

The directories in src/app are organized around the pillars of Angular, along with several additional custom file types. When creating new files, be sure to add your file and any necessary templates, styles, and tests to a directory dedicated to your new file in the appropriate place.

For the most part, components are organized based on the navigation structure of the app. For example, you can find Policy Guide content in src/app/components/policy-guide.

Component Structure

Most Components have a style, template, and component file. Template files are composed of HTML with Angular syntax for inserting content and view conditionals. Styles are encapsulated by default unless the Component has ViewEncapsulation disabled, so global class names are generally not an issue.

Style Guide

This app follows the official Angular Style Guide. Please ensure you follow the naming conventions defined in this guide.

License

As stated in CONTRIBUTING:

[..] this project is in the worldwide public domain (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.

This repo is built on top of the Angular2 Webpack Starter from Angular Class and includes the original [MIT License](/AngularClass License.txt). Should you choose to use this repo for your own purposes, be sure to retain the MIT license that comes with it.

For a detailed list of licenses from each of the node_modules, view the Dependency Licenses file.

code-gov-web's People

Contributors

alvandsalehi avatar bodnarbm avatar cdoremus avatar cixtor avatar coreylenertz avatar eriemeyer avatar ianlee1521 avatar jeffbcross avatar joewiz avatar lukad03 avatar mattbailey0 avatar mcmahonjohn avatar michael-balint avatar mikengarrett avatar pashariger avatar paulschreiber avatar peteranglea avatar rossdakin avatar theresaanna avatar tomdyson avatar

Watchers

 avatar  avatar

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.