Overview
REcover is a survey platform that enables hospitals to receive realtime insights from patients. It started development under the codename Onyx in December 2023, and was put into production February 2024.
Key Features
- Survey Creation — Drag-and-drop interface for building surveys with dynamic fields, autosave, duplication, and version control
- Survey Distribution — Link sharing, QR code creation
- Response Collection — Responses are saved to distribution groups and SQL database as HTML, JSON, and Base64
- Email Alerts — Realtime alerts for negative responses to distribution groups
Tech Stack
- ASP.NET 4.8.1 Web Forms
- C# (server-side), JavaScript (client-side)
- Bootstrap CSS 5.3.3
- Font Awesome
- jQuery 3.7.1
- PacificSnippets
- Entity Framework 6
- Microsoft SQL Server
Structure
├── App_Code/│ ├── PRM│ │ ├── PrmDb.cs│ │ ├── tblOnyxSurvey*.cs│ │ └── tblRecoverSurveyNurses.cs│ ├── QGenda│ │ ├── QGendaDb.cs│ │ └── vSchedules.cs│ ├── Schedule│ │ ├── ScheduleDb.cs│ │ ├── tblSite.cs│ │ └── vScheduleBatchCalendarShift.cs│ ├── Survey.cs│ └── TranslationEngine.cs├── Content/│ ├── globals.css│ ├── Mona-Sans.woff2│ ├── touchpunch.min.js│ ├── favicon.ico│ └── recover-logo.svg├── Default.aspx│ └── Default.aspx.cs├── Survey.aspx│ └── Survey.aspx.cs├── Site.Master│ └── Site.Master.cs├── Startup.cs├── Global.asax.cs├── Web.config├── packages.config└── .gitignoreApp_Code/
This is a folder that contains database contexts and models for tables from our PRM, QGenda, and StatSchedule databases (generated by Entity), as well as custom models, DTOs, helper functions, etc.
Content/
This is a folder that contains static assets, such as custom CSS, fonts, scripts, images, etc.
Default.aspx
This is the frontend code for the survey builder, where the layout and interactive features are made.
Default.aspx.cs
This is the backend code for the survey builder, where all the data fetching and business logic happens.
Survey.aspx
This is the frontend code for public surveys, where the layout and interactive features are made.
Survey.aspx.cs
This is the backend code for public surveys, where all the data fetching and business logic happens.
Site.master
This is the entry point for all pages, where global styles, libraries, etc. are placed.
Site.master.cs
This is the backend code the entry point. Only used to append a suffix to page titles.
Startup.cs
This is where middleware code is defined. Most importantly, this is where Entra ID authentication is implemented via PacificSnippets.
Global.asax.cs
This file implements application-level event handling. Most importantly, this is where we implement our error monitoring system.
Web.config
This file contains configuration settings for the ASP.NET application, including database connection strings, secrets, and application settings.
packages.config
This file lists NuGet package dependencies used by the application.
.gitignore
This file specifices which files to not track in version control.