To install a local development version of the GCN web site on your own computer, skip ahead to the Quick Start section below.
Contributing to General Coordinates Network
Do you have an idea to make GCN better, or do you have a bug to report? We'd love to hear from you! GCN (this site) is an open source project on GitHub. Help us by reporting feature requests and bugs in our GitHub issue tracker.
Or, if you feel like rolling your sleeves up, propose a code change by forking the project and submitting a GitHub pull request. See our GitHub guide if you are new to GitHub.
Don't know where to start? Look for issues in GitHub that are labelled good first issue.
Here are some more specific ways that you can help.
-
Write documentation. The best and easiest way to help is to contribute text or typographical corrections, especially in the Documentation section (files and directories starting with
docs.
in the app/routes directory in GitHub) and Missions section (files and directories starting withmissions.
). Look for GitHub issues with the label content.Most of the written content on this site is formatted in Markdown, an easy to use markup language. To learn Markdown, read the GitHub Flavored Markdown guide.
In general, written content should follow the American Astronomical Society style guide and use SI unit abbreviations.
-
Improve design and accessibility. We are constantly seeking to improve the GCN user experience. Look for issues in GitHub that are marked frontend.
We use the US Web Design System, an open source design language and front end framework that is common to many U.S. federal agencies. US Web Design System components for React are provided by react-uswds.
-
Add new features to the web site. We have lots of ideas for new features, visualizations, and ways to interact with GCN data. We bet you have lots of ideas too! Look for issues in GitHub that are marked frontend or backend.
GCN is built in Remix, a full stack web framework built on React and written in TypeScript (JavaScript with type annotations).
-
Add meaningful test coverage. We are actively trying to increase our test coverage to ensure consistency in our user experience. See our testing documentation for more information.
Quick Start
Here are instructions for getting the GCN site set up and running on your own computer for local development.
Set up Node.js on your computer
Make sure that Node.js and NPM are installed on your computer. There are several options to install Node.js and NPM. Pick one of the following:
- Download and run the Node.js installer for your operating system.
- Install and use the Node Version Manager, nvm.
- Install using a package manager.
Set up Docker on your computer
We use Docker containers to realistically simulate certain AWS services. There are several options to install a Docker container runtime on your computer:
- Podman is easy to install on Linux, macOS, or Windows. It is free. This is the best option for most contributors.
- Docker Desktop is just as easy to install, but it is not free.
- Docker Engine is free, and on most Linux distributions you can install it easily and directly from your favorite package manager. On macOS or Windows it requires signficant setup.
Clone and configure the project
Clone the Git repository onto your computer, install all dependencies, and install the pre-commit hooks by running these commands:
git clone https://github.com/nasa-gcn/gcn.nasa.gov cd gcn.nasa.gov npm install
Start development server
Start the local development server by running the following command:
npm run dev
Open a web browser and navigate to http://localhost:3333 to see the local site live.