/atj-platform

Friendly court forms for self-represented litigants.

Primary LanguageTypeScript

10x Access to Justice Tooling

Test bed for ATJ platform tooling, completed as part of the 10x Digital Access to Justice Platform project.

Overview

The workspace dependencies are depicted in this auto-generated workspace project dependencies graph.

Additional documentation:

Overview

The platform is made up of the following high-level terms.

Key personas

  • Content authors: legal experts who craft guided interview experiences via a "no code" interface
  • Self-represented litigants (SREs): end-users who interact with the court via guided interviews created by content authors

Things

  • Blueprint: produced by a content author, the blueprint defines the structure of an interactive session between a court and an SRL
  • Conversation: one instance of a blueprint; the interactive session between a court and an SRL. Other terms for this concept include dialogue or session.
  • Pattern/template: the building blocks of a blueprint, patterns implement UX best-practices, defining the content and behavior of the user interface.
  • Prompt: produced by a pattern, the prompt defines what is presented to the end user at single point in a conversation.
  • Component: user interface component that acts as the building block of prompts.

Development

This project uses the version of Node.js defined in .nvmrc. To ensure you're using the correct node version, you may use the Node Version Manager (NVM):

nvm install

This project uses pnpm workspaces. To work with this project, install pnpm and then the project dependencies:

pnpm install

To install the browsers needed for the Storybook testing with @vitest/browser, you need to do a one-time install with pnpm dlx install playwright --with-deps. To run the complete test suite, with coverage metrics generated:

pnpm test

To run tests in watch mode (except the infra tests, which use Jest):

pnpm vitest

To start developing with hot reloading, use:

pnpm build

then run:

pnpm dev

These local servers will be started:

To lint the source code:

pnpm lint

Command-line interface

A command-line interface is provided for manually running operations. The corresponding app resides in ./apps/cli. A wrapper script, in the root directory, is provided.

./manage.sh --help