Skip to content

Commit 708ddae

Browse files
authored
Readme updates for project pause (#641)
* Note pause in development and update project description * Review ADRs for relevance at time of writing; create "loose ends" list, documenting things we might want to reconsider if project development is resumed. * Add colon to "notice" * Add team email address to README
1 parent f2df2b4 commit 708ddae

File tree

8 files changed

+35
-5
lines changed

8 files changed

+35
-5
lines changed

README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
# 10x Forms Platform
22

3-
Test bed for 10x forms tooling, completed as part of the [10x Forms Platform](https://github.com/orgs/GSA-TTS/projects/38?pane=issue&itemId=58755590&issue=GSA-TTS%7C10x-projects%7C29) project.
3+
> **Notice:**
4+
> As of early May 2025, Forms Platform development is paused pending administrative prioritization.
5+
6+
Forms Platform is the product of extensive research and development completed by [10x](https://10x.gsa.gov/), a federal venture studio housed within the [General Services Administration](https://www.gsa.gov/)'s [Technology Transformation Services](https://tts.gsa.gov/).
7+
8+
Forms Platform aims to solve a persistent challenge faced by federal agencies: delivery of compliant and user-friendly forms, delivered cost-effectively, seamlessly integrated with diverse agency workflows, and accessible to non-technical program office staff. Deployed broadly, Forms Platform would serve as a common interface to federal government services, tailored to public sector needs.
9+
10+
If you would like to connect with the team or are interested in Forms Platform for your agency, please contact us at [10x-forms-platform@gsa.gov](mailto:10x-forms-platform@gsa.gov).
411

512
## Overview
613

documents/adr/0005-build-system.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# 5. Infrastructure as Code
1+
# 5. Build system
22

33
Date: 2023-10-12
44

documents/adr/0008-initial-form-handling-strategy.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,4 @@ By starting small and not pulling in dependencies we do not immediately need, we
3232

3333
However, we risk losing the opportunity to quickly get "big wins" by pulling in a more fully-baked interview format at the onset. As a result, such solutions should be considered near-term integration opportunities.
3434

35-
This ADR will need to be continually reevaluated through the course of 10x phase 3 work.
35+
This ADR should be continually reevaluated through the course of development.

documents/adr/0013-database-strategy.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ The database should be commonly used and easy to host in many varied deployment
1818

1919
## Decision
2020

21-
We will use PostgreSQL in our production deployments. We will use [Testcontainers](https://testcontainers.com/) to unit-test database gateway logic against a PostgreSQL container. Integration testing will be handled with an in-memory SQLite database.
21+
We will use PostgreSQL in our production deployments. We will use [Testcontainers](https://testcontainers.com/) to unit-test database gateway logic against a PostgreSQL container. Integration testing will be handled with ephemeral in-memory SQLite databases.
2222

2323
[Knex.js](https://knexjs.org/) is the most widely-used node.js query builder, and has backend adapters for most common relational databases. We will utilize Knex.js for its migration support. Knex.js may also be used for queries, as appropriate.
2424

documents/adr/0014-authentication.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ Date: 2024-09-04
66

77
Approved
88

9+
> *NOTE: Lucia [is deprecated](https://github.com/lucia-auth/lucia/discussions/1714), and there were some challenges integrating it cleanly into the [auth package](../../packages/auth/). As a result, this ADR should be reconsidered.*
10+
911
## Context
1012

1113
Forms Platform requires a method of authenticating users. We are inclined to default to [Login.gov](https://login.gov/), a government-wide federated service hosted by [TTS](https://www.gsa.gov/about-us/organization/federal-acquisition-service/technology-transformation-services), unless circumstances prevent its usage.

documents/adr/0015-rest-api.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ Date: 2024-09-04
66

77
Approved
88

9+
> *NOTE: The strategy for API management would benefit from being reconsidered.*
10+
911
## Context
1012

1113
During the prototyping and demo phase, Forms Platform used client-side services that persisted to browser local storage. As we introduce a backend to support agency users, we need to structure an API for the content authoring operations of the platform.

documents/adr/0017-use-named-exports.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,37 @@
1-
# ADR 0017: Use Named Exports Over Default Exports and Avoid index Files
1+
# 17. Use Named Exports Over Default Exports and Avoid index Files
22

33
Date: 04-16-2025
44

55
## Status
6+
67
Approved
78

89
## Context
10+
911
During the recent refactoring of the `Form` and `FormManager` components in the `design` package, we noticed inconsistencies in the use of default exports, named exports, and `index` files. Some files used default exports, while others used named exports. Additionally, many directories relied on `index.tsx` files, which made it harder to locate specific components or utilities in the codebase.
1012

1113
Default exports can sometimes lead to ambiguity, especially when renaming imports, and they do not provide the same level of tooling support (e.g., auto-imports in IDEs) as named exports. Named exports, on the other hand, make it clear what is being exported and allow for more consistent imports across the codebase.
1214

1315
Similarly, `index` files can introduce ambiguity when navigating the codebase, as multiple `index.tsx` files across different directories make it harder to locate specific functionality. Using descriptive file names improves clarity and maintainability.
1416

1517
## Decision
18+
1619
We will adopt the following guidelines for exports and file structure moving forward:
1720
1. **Use named exports** for all components, utilities, and types.
1821
2. **Avoid default exports**, except in cases where a file exports a single, primary entity (e.g., a React component that represents the main purpose of the file).
1922
3. **Avoid `index` files** in favor of descriptive file names (e.g., `FormManager.tsx` instead of `index.tsx`).
2023

2124
## Consequences
25+
2226
- **Consistency:** The codebase will have a consistent export style and file structure, making it easier to read and maintain.
2327
- **Tooling Support:** Named exports improve IDE tooling, such as auto-imports and refactoring.
2428
- **Clarity:** Named exports and descriptive file names make it clear what is being exported and where functionality resides, reducing ambiguity.
2529
- **Ease of Navigation:** Avoiding `index` files ensures that file names are descriptive, making it easier to locate specific components or utilities.
2630

2731
## Examples
32+
2833
### Before (Default Export):
34+
2935
```tsx
3036
// FormManager.tsx
3137
export default function FormManager() { ... }
@@ -36,6 +42,7 @@ import FormManager from './FormManager';
3642

3743
### After (Named Export):
3844
```tsx
45+
3946
// FormManager.tsx
4047
export function FormManager() { ... }
4148

@@ -44,6 +51,7 @@ import { FormManager } from './FormManager';
4451
```
4552

4653
## Related Changes
54+
4755
This decision was applied during the refactoring of the `Form` and `FormManager` components in the design package. As part of this refactor:
4856

4957
- Default exports were replaced with named exports.

documents/pending-loose-ends.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Pending loose ends
2+
3+
## Context
4+
5+
In early May 2025, Forms Platform development was suspended indefinitely. At that point, the project team was preparing for a pilot production launch, which would have brought functionality to an MVP status and wrapped up technical loose ends. This document describes that unfinished technical work that should be considered project development resumes.
6+
7+
## Task list
8+
9+
- ADR [0014-authentication](./adr/0014-authentication.md) describes an authentication approach that leverages the Lucia library. Lucia usage should be reconsidered when integrating with a production identity provider.
10+
- ADR [0015-rest-api](./adr/0015-rest-api.md) describes a simple strategy for bootstrapping an API with Astro. At some point, before extensive API growth but probably perhaps pilot, a more thought out strategy should be considered.
11+
- ADRs [0007-initial-css-strategy](./adr/0007-initial-css-strategy.md) and [0016-unused-css](./adr/0016-unused-css.md) describe CSS approaches. This approach should be reconsidered when the ability to integrate with agency USWDS themes and component encapsulation become important qualities.

0 commit comments

Comments
 (0)