Technical Overview - DOI-ONRR/nrrd GitHub Wiki
Description
This document provides a high level overview of the various technologies we use to implement our solution for the revenue data site.
Architecture
We use JAMstack as our architectural design framework. This provide us the ability to use a very modular approach to achieving some of our design goals such as:
- Easily update content
- Security
- Performance
Development Environment
- Gatsbyjs - Static site generator and our development environment setup
- Docker - We have dockerized our development environment to easily get started on any platform (except for government issued laptops)
- CircleCI - Provides continuous integration, creates previews and runs tests
Frontend Overview
- Reactjs - Client side state management
- D3js - Assist in data visualizations
- MaterialUI - Base component library
- Apollo Client - Connect to our backend graphql server
API/Backend Overview
- Hasura - Graphql Server/API
- PostgresSql - Database
- Cloud.gov - Hosting solution
Testing Overview
- Previews - User Acceptance testing, each code branch has a preview site generated
- ESLint - Code syntax and formatting
- Jest - Javascript Testing Framework
- react-testing-library - Integration, Unit testing
- puppeteer - End to End testing
- lighthouse - Performance and Accessibility testing