Features
Listing management
Create, edit, publish, close, and reopen affordable housing listings. Supports draft and published states.
Application management
View, edit, add, and export applications per listing. Separate views for pending and resolved applications.
Lottery management
Run and publish lotteries for closed listings. Lottery data expires after a configurable number of days.
User management
Invite, confirm, and manage partner users and advocates. Restricted to admin roles.
Admin functions
System-level administrative operations accessible only to admin users.
Settings
Manage jurisdiction preferences, multiselect questions, and property records. Shown when the feature flag is enabled.
User roles
Access to features within the Partners Portal is controlled by role. The following roles are supported:Page structure
All pages live undersites/partners/src/pages/.
Authentication pages
Authentication pages
Listing pages (/listings)
Listing pages (/listings)
Application pages (/listings/[id]/applications and /application)
Application pages (/listings/[id]/applications and /application)
User management pages (/users)
User management pages (/users)
Admin pages (/admin)
Admin pages (/admin)
Settings pages (/settings)
Settings pages (/settings)
Settings pages are only visible when the settings feature flag is enabled.
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/partners/.env as needed. See the environment variables section below for details on each variable.3
Start the backend and partners app
From the monorepo root, this starts the backend on port 3100 and the partners portal on port 3001:Alternatively, start only the partners portal from within
sites/partners:4
Sign in
Navigate to http://localhost:3001 and sign in with the default local development credentials:
- Email:
admin@example.com - Password:
abcdef
The backend must be running on port 3100 before starting the partners portal. Sign-in and all data operations require an active API connection.
Environment variables
Copy.env.template to .env inside sites/partners/. 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 partners 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/partners/ with the app already running on port 3001 and the backend running on port 3100.Set
RUN_ACCESSIBILITY_E2E_TESTS=TRUE in .env to also run axe-based accessibility checks during the Cypress suite.