Simpler Grants.gov
repository·main·Indexed 41 days ago
https://github.com/hhs/simpler-grants-govA modernization project for the US federal Grants.gov system. Includes the simpler-grants-gov-analytics Python package (v0.1.0) for ETL data pipelines from GitHub to Postgres and Metabase, tools for Metabase backup and restoration, and mock SOAP API services for Applicants and Grantors.
What's inside Simpler Grants
- Simpler.Grants.gov is a modernization effort for Grants.gov, aimed at making federal financial assistance more accessible and easy to use. The project focuses on improving how applicants search for, discover, and apply for funding opportunities, as well as assisting federal grantmaking agencies in reaching their communities.
Overview of Simpler Grants Analytics
mainThe
simpler-grants-gov-analyticspackage is a data pipeline service that extracts project data from GitHub and transforms it into rows for a Postgres data warehouse. It facilitates the ETL (Extract, Transform, Load) process in the following flow:SGG Project Data → GitHub → ETL → Postgres DW → Metabase → End UserData visualization and Business Intelligence are provided via Metabase. The service is not a daemon or a web server; it is a task-based service triggered manually via CLI,
Makecommands, or orchestrated via AWS Step Functions.Overview of Simpler Grants Analytics metrics
mainThe analytics pipeline calculates several key performance metrics to track progress and completion. The available metrics include:
- Burndown: Tracks the rate at which work or tasks are being completed over time.
- Percent complete: Measures the overall progress of a specific process or dataset relative to its total scope.
Overview of the frontend application stack
mainThe frontend is a Next.js React web application written in TypeScript. It utilizes the following technologies for styling and component management:
- U.S. Web Design System (USWDS): Provides themeable styling and common components.
- React-USWDS: Provides React components with USWDS theming integrated. For usage examples, refer to
react-uswds-hello.tsxin the codebase. - Storybook: Used as a frontend workshop for component development and documentation.
Overview of Notice of Funding Opportunity (NOFO) Prototypes
mainThenotice_of_funding_opportunity_prototypesdirectory contains prototypes of Notice of Funding Opportunities (NOFOs). These prototypes implement simplified language and user-centered design enhancements aimed at increasing readability and usability. The core design principle is that funding opportunities should be easy to read and understand.Overview of the GET Opportunities API endpoint
mainThe
GET Opportunitiesdeliverable involves deploying a public API endpoint to production that shares information about every grant opportunity listed ongrants.gov.Purpose
- Data Access: Allows users to access at least one field per grant opportunity from the live
grants.govdataset. - Validation: Proves the successful connection between
grants.govandsimpler.grants.govenvironments and validates security approvals for sharing production data. - Iterative Development: Enables building features on top of real-world data rather than mock data, reducing migration risks.
Key Characteristics
- Data Consistency: Aims for consistency between legacy
grants.govandsimpler.grants.gov. - Availability: The endpoint is designed to remain available even during legacy
grants.govdowntime or maintenance. - Propagation: Updates from legacy
grants.govare expected to propagate to the new endpoint within 1 hour.
- Data Access: Allows users to access at least one field per grant opportunity from the live
Overview of the Simpler Grants Project
mainThe Simpler Grants Project aims to modernize Grants.gov to make it an extremely simple, accessible, and easy-to-use tool for posting, finding, sharing, and applying for federal financial assistance. The project's mission is to increase access to grants and improve the overall grants experience for all users.Compare video conferencing options for Simpler Grants
mainThe project evaluated several video conferencing platforms based on features, pricing, and alignment with organizational values. The options considered include:
- Zoom: Feature-rich (breakout rooms, webinars, screen sharing) with a user-friendly interface. Pricing starts at $149.90/year/user. Requires 15-30 paid users; others can join via invite link.
- Microsoft Teams: Best for Microsoft 365 ecosystems. Offers deep integration with Office apps and strong security. Pricing starts at $4/user/month; Webinar hosting requires Business Standard ($12.50/user/month).
- Google Meet: Part of Google Workspace. High-quality audio/video and browser-based access (no software install). Live transcription is available but limited to English only. Pricing starts at $6/user/month.
- Jitsi: An open-source, free, and lightweight solution. Supports self-hosting for greater privacy and end-to-end encryption. Does not have built-in webinars or breakout rooms (requires third-party integrations).
- Meet.coop: An ethical, sustainable, and community-driven European solution. Aligns with Simpler Grants' values regarding data ownership and cooperative principles. Pricing starts at $12/month for 10 participants.
Understand the backend architecture and shared resources
mainUse the Terraform S3 backend module
mainThe
terraform-backend-s3module automates the creation of the infrastructure required to host a remote Terraform S3 backend. This is used to securely store Terraform state files and manage state locking to prevent concurrent modifications.When you use this module, it provisions:
- An S3 bucket for storing Terraform state files.
- An S3 bucket dedicated to storing S3 access logs for auditing.
- A DynamoDB table to handle Terraform state locking.
Compare Wiki Platform options
mainThis document provides a comparison of various wiki and documentation platforms considered for the project, evaluating them based on hosting, pricing, public access, content review, version history, media support, internationalization (I18n), web analytics, and data access.
Key platforms evaluated include:
- Confluence: SaaS, user-friendly, supports drafts and page history, but lacks a formal review process and has limited I18n.
- Notion: SaaS, supports structured data and has a robust API, but has limited version history (30-90 days) and no formal content review.
- GitHub Wiki: Free for public repositories, easy to export/clone, but difficult for non-technical users and has very limited media support.
- GitBook: SaaS, prioritizes version control and content review via GitHub PRs, supports native I18n and Google Analytics, and can sync data to GitHub.
- Wiki.js: Open Source and self-hosted, offers total data control and is covered under the existing Grants.gov ATO, but requires significant maintenance and has a steeper learning curve.
Understand the purpose of the Simpler.Grants.Gov Storybook
mainThe Simpler.Grants.Gov Storybook is a documentation tool used to showcase and test Next.js components in isolation. It serves several roles:
- Engineers: Use it to develop and test components without running the full application environment.
- Designers & Product Managers: Use it to preview, manually test, and demo component versions before production release.
- General Stakeholders: Use it to quickly view specific application states (like complex multi-step forms) without navigating the full application flow.
Note that this Storybook is not an exhaustive library of all components. It focuses on custom components and page layouts specific to Simpler.Grants.Gov. For standard patterns, refer to the official USWDS documentation or the ReactUSWDS Component Library.