Go to file
Matt 8d0979e649 Comprehensive platform review: security fixes, query optimization, UI improvements, and code cleanup
Security (Critical/High):
- Fix path traversal bypass in local storage provider (path.resolve + prefix check)
- Fix timing-unsafe HMAC comparison (crypto.timingSafeEqual)
- Add auth + ownership checks to email API routes (verify-credentials, change-password)
- Remove hardcoded secret key fallback in local storage provider
- Add production credential check for MinIO (fail loudly if not set)
- Remove DB error details from health check response
- Add stricter rate limiting on application submissions (5/hour)
- Add rate limiting on email availability check (anti-enumeration)
- Change getAIAssignmentJobStatus to adminProcedure
- Block dangerous file extensions on upload
- Reduce project list max perPage from 5000 to 200

Query Optimization:
- Optimize analytics getProjectRankings with select instead of full includes
- Fix N+1 in mentor.getSuggestions (batch findMany instead of loop)
- Use _count for files instead of fetching full file records in project list
- Switch to bulk notifications in assignment and user bulk operations
- Batch filtering upserts (25 per transaction instead of all at once)

UI/UX:
- Replace Inter font with Montserrat in public layout (brand consistency)
- Use Logo component in public layout instead of placeholder
- Create branded 404 and error pages
- Make admin rounds table responsive with mobile card layout
- Fix notification bell paths to be role-aware
- Replace hardcoded slate colors with semantic tokens in admin sidebar
- Force light mode (dark mode untested)
- Adjust CardTitle default size
- Improve muted-foreground contrast for accessibility (A11Y)
- Move profile form state initialization to useEffect

Code Quality:
- Extract shared toProjectWithRelations to anonymization.ts (removed 3 duplicates)
- Remove dead code: getObjectInfo, isValidImageSize, unused batch tag functions, debug logs
- Remove unused twilio dependency
- Remove redundant email index from schema
- Add actual storage object deletion when file records are deleted
- Wrap evaluation submit + assignment update in
- Add comprehensive platform review document

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 20:31:08 +01:00
.gitea/workflows Fix CI: hardcode Gitea registry URL 2026-01-30 13:45:07 +01:00
docker Fix health check: use node instead of wget (not available in Alpine image) 2026-02-02 17:35:52 +01:00
docs Comprehensive platform review: security fixes, query optimization, UI improvements, and code cleanup 2026-02-05 20:31:08 +01:00
images Initial commit: MOPC platform with Docker deployment setup 2026-01-30 13:41:32 +01:00
prisma Comprehensive platform review: security fixes, query optimization, UI improvements, and code cleanup 2026-02-05 20:31:08 +01:00
public Display filtering controls inline for FILTERING round type 2026-02-03 10:33:34 +01:00
scripts Initial commit: MOPC platform with Docker deployment setup 2026-01-30 13:41:32 +01:00
src Comprehensive platform review: security fixes, query optimization, UI improvements, and code cleanup 2026-02-05 20:31:08 +01:00
.dockerignore Initial commit: MOPC platform with Docker deployment setup 2026-01-30 13:41:32 +01:00
.env.example Add email password change feature and fix nginx config 2026-01-30 16:15:08 +01:00
.gitignore Initial commit: MOPC platform with Docker deployment setup 2026-01-30 13:41:32 +01:00
CLAUDE.md Fix: sync package-lock.json and update CLAUDE.md dev notes 2026-01-30 13:47:00 +01:00
DEPLOYMENT.md Initial commit: MOPC platform with Docker deployment setup 2026-01-30 13:41:32 +01:00
Notes.md Initial commit: MOPC platform with Docker deployment setup 2026-01-30 13:41:32 +01:00
components.json Initial commit: MOPC platform with Docker deployment setup 2026-01-30 13:41:32 +01:00
next.config.ts Initial commit: MOPC platform with Docker deployment setup 2026-01-30 13:41:32 +01:00
package-lock.json Remove dynamic form builder and complete RoundProject→roundId migration 2026-02-04 14:15:06 +01:00
package.json Comprehensive platform review: security fixes, query optimization, UI improvements, and code cleanup 2026-02-05 20:31:08 +01:00
postcss.config.mjs Initial commit: MOPC platform with Docker deployment setup 2026-01-30 13:41:32 +01:00
tailwind.config.ts Initial commit: MOPC platform with Docker deployment setup 2026-01-30 13:41:32 +01:00
tsconfig.json Initial commit: MOPC platform with Docker deployment setup 2026-01-30 13:41:32 +01:00