Features
Browse listings
View open and closed listings with filtering. Closed listings are capped at a configurable maximum via
MAX_BROWSE_LISTINGS.Common Application
Multi-step application flow covering contact, household, financial, community types, preferences, programs, and review.
Account management
Create an account, sign in, and access a dashboard showing all submitted applications and saved favorites.
Finder tool
Guided questionnaire that matches housing seekers to relevant listings based on their situation.
Get assistance
Connects applicants with local housing counselor services configured via
HOUSING_COUNSELOR_SERVICE_URL.FAQ
Frequently asked questions page, shown when the
SHOW_PUBLIC_LOTTERY feature flag is enabled.Page structure
All pages live undersites/public/src/pages/.
Top-level pages
Top-level pages
Listing pages (/listing)
Listing pages (/listing)
Application pages (/applications)
Application pages (/applications)
The Common Application is a multi-step flow. Each step is a separate page under
applications/:Account pages (/account)
Account pages (/account)
Running locally
1
Install dependencies
From the monorepo root:
2
Configure environment variables
Copy the template and set values for your local environment:Edit
sites/public/.env as needed. See the environment variables section below for details on each variable.3
Start the backend and public app
From the monorepo root, this starts the backend on port 3100 and the public portal on port 3000:Alternatively, start only the public portal from within
sites/public:4
Open the app
Navigate to http://localhost:3000 in your browser.
The backend must be running on port 3100 before starting the public portal. The app will fail to load listings if the API is unreachable.
Environment variables
Copy.env.template to .env inside sites/public/. The following variables control the app’s behavior:
API and backend
API and backend
Application behavior
Application behavior
Third-party integrations
Third-party integrations
Feature flags
Feature flags
Testing
The public portal has two test suites.- Cypress (E2E)
- Jest (unit/integration)
Run the full end-to-end test suite against a running instance of the app:Run from within
sites/public/ with the app already running on port 3000.Set
RUN_ACCESSIBILITY_E2E_TESTS=TRUE in .env to also run axe-based accessibility checks during the Cypress suite.