Files
MOPC-Portal/docs/codex-architecture-redesign-docs/09-appendix-system-inventory.md
Matt 6ca39c976b
All checks were successful
Build and Push Docker Image / build (push) Successful in 7m45s
Competition/Round architecture: full platform rewrite (Phases 1-9)
Replace Pipeline/Stage system with Competition/Round architecture.
New schema: Competition, Round (7 types), JuryGroup, AssignmentPolicy,
ProjectRoundState, DeliberationSession, ResultLock, SubmissionWindow.
New services: round-engine, round-assignment, deliberation, result-lock,
submission-manager, competition-context, ai-prompt-guard.
Full admin/jury/applicant/mentor UI rewrite. AI prompt hardening with
structured prompts, retry logic, and injection detection. All legacy
pipeline/stage code removed. 4 new migrations + seed aligned.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 23:04:15 +01:00

3.5 KiB

09. Appendix: System Inventory (As Reviewed)

1) Data Model Inventory (Selected Competition-Critical Models)

Pipeline/Stage Engine

  • Pipeline
  • Track
  • Stage
  • StageTransition
  • ProjectStageState
  • Cohort
  • CohortProject
  • LiveProgressCursor
  • OverrideAction
  • DecisionAuditLog

Assignment/Evaluation

  • Assignment
  • AssignmentJob
  • Evaluation
  • EvaluationForm
  • EvaluationSummary
  • EvaluationDiscussion
  • DiscussionComment
  • ConflictOfInterest
  • GracePeriod
  • ReminderLog

Filtering

  • FilteringRule
  • FilteringResult
  • FilteringJob

Awards

  • SpecialAward
  • AwardEligibility
  • AwardJuror
  • AwardVote

Mentorship

  • MentorAssignment
  • MentorMessage
  • MentorNote
  • MentorMilestone
  • MentorMilestoneCompletion

Documents/Submission

  • FileRequirement
  • ProjectFile

Live Voting

  • LiveVotingSession
  • LiveVote
  • AudienceVoter

Identity/Team

  • User
  • TeamMember

2) Service Inventory (Competition-Critical)

  • src/server/services/stage-engine.ts
  • src/server/services/stage-filtering.ts
  • src/server/services/stage-assignment.ts
  • src/server/services/live-control.ts
  • src/server/services/stage-notifications.ts
  • src/server/services/evaluation-reminders.ts
  • src/server/services/smart-assignment.ts
  • src/server/services/ai-assignment.ts
  • src/server/services/ai-filtering.ts
  • src/server/services/award-eligibility-job.ts
  • src/server/services/mentor-matching.ts

3) tRPC Router Inventory

  • program
  • project
  • user
  • assignment
  • evaluation
  • file
  • export
  • audit
  • settings
  • gracePeriod
  • learningResource
  • partner
  • notionImport
  • typeformImport
  • tag
  • applicant
  • liveVoting
  • analytics
  • avatar
  • logo
  • application
  • mentor
  • filtering
  • specialAward
  • notification
  • message
  • webhook
  • projectPool
  • wizardTemplate
  • dashboard
  • pipeline
  • stage
  • stageFiltering
  • stageAssignment
  • cohort
  • live
  • decision
  • award

4) Page Inventory (High-Level by Role Group)

Admin

  • members, invite members, programs, apply settings, pipeline wizard/advanced/editor, projects, mentors, awards, reports, settings, audit, messaging, partner, learning

Applicant

  • dashboard, team, pipeline views, stage docs/status views, mentoring, document center

Jury

  • stage list, assignment list, project evaluate pages, compare page, live page, awards, learning

Mentor

  • dashboard, projects, project detail, resources

Auth/Public

  • apply, edition apply, accept invite, login, onboarding, set password, public vote/live score, submission pages

5) Existing Test Inventory

Unit

  • tests/unit/stage-engine.test.ts
  • tests/unit/stage-assignment.test.ts
  • tests/unit/stage-filtering.test.ts
  • tests/unit/live-control.test.ts
  • tests/unit/override-validation.test.ts
  • tests/unit/award-governance.test.ts

Integration

  • tests/integration/pipeline-crud.test.ts
  • tests/integration/stage-config.test.ts
  • tests/integration/assignment-preview.test.ts
  • tests/integration/cohort-voting.test.ts
  • tests/integration/live-runtime.test.ts
  • tests/integration/decision-audit.test.ts

6) Legacy/Transition Observations

  1. roundId fields still exist as legacy optional references in multiple models.
  2. Stage/pipeline is active architecture but legacy wording remains in some routers/comments/UI labels.
  3. Some critical business rules still rely on JSON keys and implicit route behavior.

This inventory is the baseline used for the redesign and migration plans in this folder.