Architecture
REcover is built on ASP.NET Web Forms with a traditional three-tier architecture:
- Presentation Layer (Web Forms)
- Business Logic Layer (
App_Code/) - Data Access Layer (Entity Framework)
Key Components
Presentation Layer
Default.aspx— Survey builder interfaceSurvey.aspx— Public survey interfaceSite.Master— Entry point and shared styles/libraries
Business Logic Layer
Located in App_Code/, this layer contains:
- Database contexts
- Data models
- Translation handler
Database Layer
- PRM Database — Stores survey data and responses and provides site data
- StatSchedule Database — Provides shift and schedule data
- QGenda Database — Provides shift and schedule data for AW sites
Authentication
- Microsoft Entra ID integration via PacificSnippets library
- Implemented in
Startup.cs(OWIN middleware) - Secret keys defined in
web.config - Protected routes defined in
web.config
Data Flow
- PHW staff creates survey in builder (
Default.aspx) - Draft, archived, and published surveys are saved to PRM database
- Survey is distributed via links/QR codes created by Delaino
- Responses are collected and stored under the survey’s distribution group and in the PRM database as HTML, JSON, and Base64
- Email alerts are triggered for negative responses, and sent to the survey’s distribution group
Error Handling
- Custom error monitoring system in
Global.asax.csfor global errors - Monitoring integration via PacificSnippets library
State Management
The pages maintain state through:
- ViewState for language, collections, and page state
- Session for admin data
- Database for persistent storage
- Query parameters for survey and reference IDs