System Architecture
ADAPT consists of three major components:
ADAPT Admin - frontend Angular application that is accessible by authorized users, designated by the State, to load data, develop and publish accessible reports for everyone to use.
ADAPT Viewer - frontend Angular application that is accessible by anyone to view accessible reports that have been developed and published by the State.
ADAPT AWS Services (Admin and Viewer) - AWS CDK project that consists of the AWS resources that make up the backend services used by the Admin and Viewer applications. It also includes infrastructure as code (IaC) code for hosting and deploying the application code to AWS.

The ADAPT Admin application’s static assets (HTML, CSS, JavaScript, etc.) are deployed to an Amazon S3 bucket that is configured for static website hosting. Since S3 is a fully managed object storage service, it eliminates the need for traditional web servers while ensuring durability and high availability.
The ADAPT Viewer application is a server-side rendered (SSR) Angular application that is deployed to Amazon ECS (Elastic Container Service). Pages are rendered before sending them to the client which improves SEO, reduces initial load time, and enhances performance for users with slow connections. The application is packaged as a Docker image, which includes the NodeJS runtime required to serve the pre-rendered pages.
Open-Source Tools and Frameworks
The table below shows the tools and frameworks used to develop ADAPT.
Angular v18.2
TypeScript-based, open-source single-page web application framework
Disclosure Avoidance Redaction Tool (DAR-T)
Open-source project from the Community of Innovation that provides data redaction and anonymization
Nx
Set of extensible development tools for mono repos
Python
Programming language
United States Web Design System (USWDS)
Standardized design library for US government websites
AWS Services
The table below shows the AWS Services used to develop ADAPT.
API Gateway
Fully managed service for creating, deploying, and managing APIs at scale, enabling secure and reliable communication between client applications and backend services
Athena
Interactive query service that enables data analysis in Amazon S3 using standard SQL without needing to manage any infrastructure
Cloud Development Kit (CDK)
Open-source infrastructure as code software development framework
CloudFront
Content delivery network (CDN) service that helps to distribute static and dynamic content
Cognito
Service that simplifies adding user sign-up, sign-in, and access control to web and mobile applications through scalable user authentication and authorization
DynamoDB
Fully managed NoSQL database service that provides fast and predictable performance with seamless scalability for key-value and document data
Elastic Container Service
Fully managed container orchestration service that allows the deployment, management, and scaling of containerized applications seamlessly
Glue
Fully managed data integration service that simplifies discovering, preparing, and combining data for analytics, machine learning, and application development
Identity and Access Management (IAM)
Service that enables secure management access to AWS resources by defining who can access them, what actions they can perform, and under what conditions
Lambda
Serverless compute service that allows code to run in response to events without provisioning or managing servers
Simple Storage Service (S3)
Scalable, secure, and durable object storage service for storing and retrieving any amount of data from anywhere
Translate
Text translation service that uses advanced machine learning technologies to provide high-quality translation on demand
Design Tokens
We utilize design tokens to abstract design decisions like color, text / font sizes, line spacing, etc. into configurable JSON files that allow the user to configure and tailor their website experience to fit their needs via the use of CSS custom attributes. CSS custom attributes allow the user to update the CSS of the website real time without having to rebuild or refresh the page.
Language Translations
The language translation of UI labels and report labels were developed using Amazon Translate, a machine learning text translation service. The translation of UI labels in the Admin and Viewer applications are handled as part of the tool installation process.
Supported languages are using a JSON file that is hosted with the application files. Toggling between languages in the Admin tool will switch the source language the JSON file loads labels from and will not require any additional network or API requests.
Report labels and fields that are translated will be set as part of the report creation process in the Admin tool. Labels that are created and set in English are automatically translated using AWS Translate and saved as part of the report data.
Likewise, public users can toggle between languages in the Viewer tool, which will switch labels based on the language selected and will not require any additional network or API requests.
Last updated