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.
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.
Here’s how you can help contribute to code.gov:
-
Source Code Policy
- To provide feedback on the Federal Source Code Policy, you should follow this issue tracker
-
Code.gov
- To provide feedback on [the code.gov website], you should follow this repository and this issues tracker.
- To contribute to the Code.gov website, head down to the Getting Started section.
- If you aren't sure where your question or idea fits, this is a good place to share it.
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 [code@listserv.gsa.gov].
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
.
This app uses Karma + Jasmine to handle 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.
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.
To update the dependency_licenses.json
file, run npm run licenses
.
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
.
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.
This app follows the official Angular Stlye Guide. Please ensure you follow the naming conventions defined in this guide.
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. 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.