`, etc.)
**Color & Contrast:**
- Minimum 4.5:1 contrast ratio for text
- Status indicators include icons (not just color)
- Color-blind friendly palette
- High-contrast mode support
### 11.2 Accessible Components
**Form Fields:**
```tsx
Enter a descriptive name for your ocean conservation project
```
**File Upload:**
```tsx
Upload Business Plan
PDF files only, maximum 25 megabytes
```
---
## 12. Email Notifications
### 12.1 Notification Triggers
| Event | Recipient | Subject | Content |
|-------|-----------|---------|---------|
| Application submitted | Team Lead | Application Received | Confirmation with next steps |
| Round advanced | All team members | Advanced to [Round Name] | Congratulations, next actions |
| Round rejected | Team Lead | Application Status Update | Not selected, feedback if available |
| Submission window opened | All team members | New Documents Required | List of requirements, deadline |
| Deadline approaching (7 days) | Team Lead | Deadline Reminder: 7 Days | Countdown, missing requirements |
| Deadline approaching (3 days) | Team Lead | Urgent: Deadline in 3 Days | Final reminder |
| Deadline approaching (1 day) | Team Lead | Last Chance: Deadline Tomorrow | Final warning |
| Mentor assigned | Team Lead | Mentor Assigned | Mentor intro, workspace link |
| New mentor message | Team Lead | New Message from Mentor | Preview, link to workspace |
| File promoted | Team Lead | File Promoted to Submission | Confirmation |
| Final results available | All team members | Results Announced | Outcome, next steps |
### 12.2 Email Templates
**Application Received:**
```
Subject: Application Received — Monaco Ocean Protection Challenge 2026
Dear Sarah,
Thank you for submitting your application for "OceanClean AI" to the Monaco Ocean Protection Challenge 2026.
Confirmation Number: #MOPC-2026-001234
Submission Date: February 15, 2026
What Happens Next:
1. AI Screening (March 1-5, 2026)
Your project will undergo automated eligibility screening.
2. Jury 1 Evaluation (March 6-20, 2026)
If you pass screening, your project will be reviewed by our expert jury.
3. Results (March 25, 2026)
You'll be notified via email and your applicant dashboard.
Track Your Progress:
Visit your dashboard at any time to see your application status:
https://monaco-opc.com/applicant/dashboard
Questions?
Contact us at info@monaco-opc.com
Best regards,
Monaco Ocean Protection Challenge Team
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
This is an automated message. Please do not reply directly.
View in browser: https://monaco-opc.com/emails/[token]
```
**Round Advanced (Semi-finalist):**
```
Subject: 🎉 Congratulations! You're a Semi-finalist
Dear Sarah,
Exciting news! Your project "OceanClean AI" has been selected as a SEMI-FINALIST in the Monaco Ocean Protection Challenge 2026.
Out of 150 applications, only 20 projects advanced to this round. Your innovation and impact potential impressed our jury.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Next Steps:
1. Submit Additional Documents (Due: April 30, 2026)
We need updated materials to prepare for the next jury round:
• Updated Business Plan (required)
• Financial Projections (required)
• Video Pitch (required)
Upload at: https://monaco-opc.com/applicant/submissions/round-4
2. Jury 2 Evaluation (May 1-15, 2026)
A second jury panel will review your updated materials.
3. Finalist Announcement (May 20, 2026)
Top 6 projects will be selected for the live finals in Monaco.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Jury Feedback:
• Strong technical approach and innovation
• Excellent team credentials
• Consider strengthening financial projections
• Market analysis could be more detailed
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Questions?
Contact us at info@monaco-opc.com
Congratulations again!
Monaco Ocean Protection Challenge Team
```
**Mentor Assigned:**
```
Subject: Your Mentor Has Been Assigned — Dr. Martin Duval
Dear Sarah,
Great news! We've assigned a mentor to help you prepare for the live finals.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Your Mentor:
Dr. Martin Duval
Senior Researcher, Monaco Ocean Institute
Expertise: Marine Biology, Ocean Technology, Sustainability
"I'm excited to work with the OceanClean AI team. Your approach to autonomous plastic collection is innovative and has significant potential for real-world impact. Let's work together to refine your pitch and strengthen your business plan."
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Mentoring Period: June 1 – June 30, 2026
Access Your Workspace:
https://monaco-opc.com/applicant/mentoring
Features:
• Private chat with Dr. Duval
• Shared file workspace with comments
• Milestone tracking
• File promotion to official submissions
Dr. Duval will reach out to you within 48 hours to schedule an initial meeting.
Best regards,
Monaco Ocean Protection Challenge Team
```
---
## 13. API Changes
### 13.1 New Procedures
**Applicant Router (`src/server/routers/applicant.ts`):**
```typescript
// Dashboard
applicant.getDashboard.useQuery()
→ Returns: {
project, competitionProgress, activeTasks,
submissionWindows, notifications, upcomingDeadlines
}
// Multi-round submissions
applicant.getSubmissionWindows.useQuery()
→ Returns: Array<{ id, name, status, requirements, progress }>
applicant.getSubmissionWindowDetail.useQuery({ windowId })
→ Returns: { window, requirements, uploadedFiles, isLocked }
applicant.uploadFileToWindow.useMutation({ windowId, requirementId, file })
→ Uploads file to specific submission window
applicant.deleteFileFromWindow.useMutation({ fileId })
→ Deletes uploaded file (if window is still open)
// Mentoring workspace
applicant.getMentoringWorkspace.useQuery()
→ Returns: { mentor, workspaceStatus, messages, files, milestones }
applicant.uploadWorkspaceFile.useMutation({ mentorAssignmentId, file })
→ Uploads file to private mentoring workspace
applicant.addFileComment.useMutation({ fileId, content, parentCommentId? })
→ Adds comment to workspace file
applicant.promoteFileToSubmission.useMutation({
mentorFileId, submissionWindowId, requirementId
})
→ Promotes workspace file to official submission
applicant.sendMentorMessage.useMutation({ mentorAssignmentId, message })
→ Sends chat message to mentor
applicant.getMentorMessages.useQuery({ mentorAssignmentId })
→ Retrieves chat history
// Team management
applicant.inviteTeamMember.useMutation({ email, name, role })
→ Sends team invitation
applicant.removeTeamMember.useMutation({ memberId })
→ Removes team member
applicant.updateTeamMemberRole.useMutation({ memberId, role })
→ Changes member role (MEMBER/ADVISOR)
// Status & results
applicant.getCompetitionStatus.useQuery()
→ Returns: Round-by-round status with results and feedback
applicant.getFinalResults.useQuery()
→ Returns: Final competition results (post-Round 8)
```
### 13.2 Modified Procedures
**Updated:**
```typescript
// Was: applicant.getMyDashboard()
// Now: Enhanced with multi-round support
applicant.getDashboard.useQuery()
// Added fields:
// - competitionProgress: Array
// - submissionWindows: Array
// - activeTasks: Array
// - upcomingDeadlines: Array
```
### 13.3 Data Validation
**Zod Schemas:**
```typescript
// Submission window upload
const uploadToWindowSchema = z.object({
windowId: z.string().cuid(),
requirementId: z.string().cuid(),
fileName: z.string().min(1).max(255),
mimeType: z.string(),
size: z.number().positive(),
})
// File promotion
const promoteFileSchema = z.object({
mentorFileId: z.string().cuid(),
submissionWindowId: z.string().cuid(),
requirementId: z.string().cuid().optional(),
})
// Team invitation
const inviteTeamMemberSchema = z.object({
email: z.string().email(),
name: z.string().min(1).max(255),
roleInTeam: z.string().optional(),
teamRole: z.enum(['MEMBER', 'ADVISOR']),
personalMessage: z.string().optional(),
})
```
---
## Summary
The redesigned Applicant UI transforms the platform from a basic submission system into a **comprehensive competition management experience**:
1. **Multi-Round Submissions** — Teams progress through multiple document submission windows, each with its own requirements, deadlines, and locking behavior.
2. **Mentoring Workspace** — Private collaboration space with chat, file sharing, threaded comments, and promotion to official submissions.
3. **Team Management** — Full team roster with role-based permissions, invitations, and member management.
4. **Progress Tracking** — Visual round-by-round tracker showing status, results, and feedback at each stage.
5. **Deadline Management** — Countdown timers, grace periods, late submission handling, and reminder notifications.
6. **Mobile-First Design** — Responsive layouts optimized for all screen sizes with touch-friendly interactions.
7. **Accessibility** — WCAG 2.1 AA compliant with keyboard navigation, screen reader support, and high-contrast mode.
8. **Comprehensive Notifications** — Email and in-app notifications for all critical events with actionable links.
This redesign aligns with the broader architecture changes (Competition → Round model, SubmissionWindow entities, MentorFile system) and provides applicants with a world-class competition experience from initial application through final results.