Add dynamic apply wizard customization with admin settings UI

- Create wizard config types, utilities, and defaults (wizard-config.ts)
- Add admin apply settings page with drag-and-drop step ordering, dropdown
  option management, feature toggles, welcome message customization, and
  custom field builder with select/multiselect options editor
- Build dynamic apply wizard component with animated step transitions,
  mobile-first responsive design, and config-driven form validation
- Update step components to accept dynamic config (categories, ocean issues,
  field visibility, feature flags)
- Replace hardcoded enum validation with string-based validation for
  admin-configurable dropdown values, with safe enum casting at storage layer
- Add wizard template system (model, router, admin UI) with built-in
  MOPC Classic preset
- Add program wizard config CRUD procedures to program router
- Update application router getConfig to return wizardConfig, submit handler
  to store custom field data in metadataJson
- Add edition-based apply page, project pool page, and supporting routers
- Fix CSS (invalid sm:fixed-none), Enter key handler (skip textarea),
  safe area insets for notched phones, buildStepsArray field visibility

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-08 13:18:20 +01:00
parent 98fe658c33
commit e7c86a7b1b
40 changed files with 4477 additions and 1045 deletions

View File

@@ -1397,7 +1397,7 @@ Rate limiting is applied to: all tRPC endpoints (100 requests/min), auth POST en
---
## 5. Feature Proposals & Improvements — **N/A** (new features, not fixes — preserved for future reference)
## 5. Feature Proposals & Improvements — **PARTIAL** (10 of 26 features implemented)
*Reviewed by: Feature Proposer Agent*
*Date: 2026-02-05*
@@ -1410,7 +1410,7 @@ This section proposes new features and improvements based on a thorough review o
### Quick Wins (Low Effort, High Impact)
#### 5.1.1 Jury Evaluation Reminders & Deadline Countdown
#### 5.1.1 Jury Evaluation Reminders & Deadline Countdown — **DONE**
**What**: Add automated reminder notifications at configurable intervals before voting deadlines (e.g., 72h, 24h, 1h). Show a prominent countdown timer on the jury dashboard and assignment pages when deadline is approaching.
@@ -1422,7 +1422,7 @@ This section proposes new features and improvements based on a thorough review o
---
#### 5.1.2 Evaluation Progress Indicator Per Project
#### 5.1.2 Evaluation Progress Indicator Per Project — **DONE**
**What**: On the evaluation form page (`/jury/projects/[id]/evaluate`), show a visual progress indicator (e.g., "3 of 5 criteria scored") so jury members know how far along they are before submitting.
@@ -1434,7 +1434,7 @@ This section proposes new features and improvements based on a thorough review o
---
#### 5.1.3 Bulk Status Update for Projects
#### 5.1.3 Bulk Status Update for Projects — **DONE**
**What**: Allow admins to select multiple projects from the project list and change their status in bulk (e.g., mark 20 projects as SEMIFINALIST at once).
@@ -1446,7 +1446,7 @@ This section proposes new features and improvements based on a thorough review o
---
#### 5.1.4 Export Filtering Results as CSV
#### 5.1.4 Export Filtering Results as CSV — **DONE**
**What**: Add CSV export capability for filtering results, similar to the existing evaluation and project score exports.
@@ -1458,7 +1458,7 @@ This section proposes new features and improvements based on a thorough review o
---
#### 5.1.5 Observer Access to Reports & Analytics
#### 5.1.5 Observer Access to Reports & Analytics — **DONE**
**What**: Allow observers to view the Reports page (analytics charts and exports) in read-only mode.
@@ -1470,7 +1470,7 @@ This section proposes new features and improvements based on a thorough review o
---
#### 5.1.6 Conflict of Interest Declaration
#### 5.1.6 Conflict of Interest Declaration — **DONE**
**What**: When a jury member starts an evaluation, prompt them to declare any conflicts of interest with the project. Store the declaration and allow admins to flag/reassign if needed.
@@ -1532,7 +1532,7 @@ This section proposes new features and improvements based on a thorough review o
---
#### 5.2.5 Applicant Portal Enhancements
#### 5.2.5 Applicant Portal Enhancements — **DONE**
**What**: Expand the applicant portal (`/my-submission`) with:
- Application status tracking with timeline (submitted -> under review -> semifinalist -> finalist)
@@ -1584,7 +1584,7 @@ This section proposes new features and improvements based on a thorough review o
---
#### 5.2.9 AI-Powered Evaluation Summary
#### 5.2.9 AI-Powered Evaluation Summary — **DONE**
**What**: After all evaluations are submitted for a project, use AI to generate a summary of the jurors' collective feedback. Group common themes, highlight strengths and weaknesses mentioned by multiple jurors.
@@ -1699,7 +1699,7 @@ Allow admins to configure webhook URLs for external integrations (CRM, Slack, cu
### Improvements to Existing Features
#### 5.4.1 Smart Assignment Algorithm Improvements
#### 5.4.1 Smart Assignment Algorithm Improvements — **DONE**
**Current state**: The smart assignment algorithm in `assignment.ts:getSuggestions` uses expertise matching (35%), load balancing (20%), and under-min-target bonus (15%). The AI assignment uses GPT for more nuanced matching.
@@ -1712,7 +1712,7 @@ Allow admins to configure webhook URLs for external integrations (CRM, Slack, cu
---
#### 5.4.2 Evaluation Form Flexibility
#### 5.4.2 Evaluation Form Flexibility — **DONE**
**Current state**: Evaluation criteria are configurable per round with labels, descriptions, scales, and weights. Criteria support numeric scoring (1-10).
@@ -1804,33 +1804,33 @@ Allow admins to configure webhook URLs for external integrations (CRM, Slack, cu
### Priority Matrix
| Priority | Feature | Impact | Effort |
|----------|---------|--------|--------|
| P0 | 5.1.1 Jury Evaluation Reminders | High | Low |
| P0 | 5.1.2 Evaluation Progress Indicator | High | Very Low |
| P0 | 5.1.3 Bulk Project Status Update | High | Low |
| P0 | 5.1.6 Conflict of Interest Declaration | High | Low |
| P1 | 5.1.4 Export Filtering Results | Medium | Very Low |
| P1 | 5.1.5 Observer Access to Reports | Medium | Low |
| P1 | 5.2.1 Email Digest Notifications | High | Medium |
| P1 | 5.2.5 Applicant Portal Enhancements | High | Medium |
| P1 | 5.2.9 AI Evaluation Summary | High | Medium |
| P1 | 5.4.2 Evaluation Form Flexibility | High | Medium |
| P2 | 5.2.2 Evaluation Calibration Tool | Medium | Medium |
| P2 | 5.2.4 Project Comparison View | Medium | Medium |
| P2 | 5.2.6 Round Templates | Medium | Medium |
| P2 | 5.2.7 Jury Availability Preferences | Medium | Medium |
| P2 | 5.2.8 Real-Time Live Voting | Medium | Medium |
| P2 | 5.4.1 Smart Assignment Improvements | Medium | Low |
| P2 | 5.4.4 File Management Improvements | Medium | Medium |
| P2 | 5.4.5 Live Voting UX Improvements | Medium | Medium |
| P2 | 5.4.6 Mentor Dashboard Enhancements | Medium | Medium |
| P3 | 5.2.3 Multi-Language Support | High | High |
| P3 | 5.3.1 Public Website Module | High | High |
| P3 | 5.3.2 Communication Hub | High | High |
| P3 | 5.3.3 Advanced Analytics Dashboard | Medium | High |
| P3 | 5.3.4 Applicant Self-Service Drafts | Medium | Medium |
| P3 | 5.3.5 Webhooks & API Integration | Medium | Medium |
| P3 | 5.3.6 Peer Review / Collaborative Notes | Medium | High |
| P3 | 5.4.3 Audit Log Enhancements | Low | Medium |
| P3 | 5.4.7 Application Form Builder | Medium | High |
| Priority | Feature | Impact | Effort | Status |
|----------|---------|--------|--------|--------|
| P0 | 5.1.1 Jury Evaluation Reminders | High | Low | **DONE** |
| P0 | 5.1.2 Evaluation Progress Indicator | High | Very Low | **DONE** |
| P0 | 5.1.3 Bulk Project Status Update | High | Low | **DONE** |
| P0 | 5.1.6 Conflict of Interest Declaration | High | Low | **DONE** |
| P1 | 5.1.4 Export Filtering Results | Medium | Very Low | **DONE** |
| P1 | 5.1.5 Observer Access to Reports | Medium | Low | **DONE** |
| P1 | 5.2.1 Email Digest Notifications | High | Medium | |
| P1 | 5.2.5 Applicant Portal Enhancements | High | Medium | **DONE** |
| P1 | 5.2.9 AI Evaluation Summary | High | Medium | **DONE** |
| P1 | 5.4.2 Evaluation Form Flexibility | High | Medium | **DONE** |
| P2 | 5.2.2 Evaluation Calibration Tool | Medium | Medium | |
| P2 | 5.2.4 Project Comparison View | Medium | Medium | |
| P2 | 5.2.6 Round Templates | Medium | Medium | |
| P2 | 5.2.7 Jury Availability Preferences | Medium | Medium | |
| P2 | 5.2.8 Real-Time Live Voting | Medium | Medium | |
| P2 | 5.4.1 Smart Assignment Improvements | Medium | Low | **DONE** |
| P2 | 5.4.4 File Management Improvements | Medium | Medium | |
| P2 | 5.4.5 Live Voting UX Improvements | Medium | Medium | |
| P2 | 5.4.6 Mentor Dashboard Enhancements | Medium | Medium | |
| P3 | 5.2.3 Multi-Language Support | High | High | |
| P3 | 5.3.1 Public Website Module | High | High | |
| P3 | 5.3.2 Communication Hub | High | High | |
| P3 | 5.3.3 Advanced Analytics Dashboard | Medium | High | |
| P3 | 5.3.4 Applicant Self-Service Drafts | Medium | Medium | |
| P3 | 5.3.5 Webhooks & API Integration | Medium | Medium | |
| P3 | 5.3.6 Peer Review / Collaborative Notes | Medium | High | |
| P3 | 5.4.3 Audit Log Enhancements | Low | Medium | |
| P3 | 5.4.7 Application Form Builder | Medium | High | |