Migrate all repos into monorepo context folders
Bahn: aisupport, Analyse-O2C-C2S, awesome-bahn-mcp-servers, beam-mcp,
Confluence_Bot, db-planet-mcp-server, O2C-Harness, project-audit,
Projekt-KIQ-HP, teamlandkarte-mcp
Dhive: Jury-Voting
Privat: CV, NoteGraph (NOTE: NoteGraph needs complete redo after consolidation)
Shared: AI-Orchestrator, OrgMyLife, power_skills_and_more
Shared/references: symphony (read-only)
Bahn repos remain available as independent remotes - this monorepo
pulls them in via subtree, the originals are untouched.
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
// Session
|
||||
export interface Session {
|
||||
id: string;
|
||||
status: 'setup' | 'active' | 'ended';
|
||||
startedAt: string | null;
|
||||
endedAt: string | null;
|
||||
config: SessionConfig;
|
||||
}
|
||||
|
||||
export interface SessionConfig {
|
||||
criteria: Criterion[];
|
||||
scaleMin: number; // default: 1
|
||||
scaleMax: number; // default: 10
|
||||
}
|
||||
|
||||
// Team
|
||||
export interface Team {
|
||||
id: string; // kebab-case slug
|
||||
number: number; // original number
|
||||
name: string; // display name
|
||||
description: string; // short description
|
||||
contact?: string; // contact person
|
||||
}
|
||||
|
||||
// Juror
|
||||
export interface Juror {
|
||||
id: string; // lowercase name
|
||||
name: string; // display name
|
||||
active: boolean; // currently has active session
|
||||
}
|
||||
|
||||
// Criterion
|
||||
export interface Criterion {
|
||||
id: string; // kebab-case
|
||||
nameDE: string; // German name
|
||||
nameEN: string; // English name
|
||||
}
|
||||
|
||||
// Score
|
||||
export interface Score {
|
||||
jurorId: string;
|
||||
teamId: string;
|
||||
criterionId: string;
|
||||
value: number; // 1–10
|
||||
updatedAt: string; // ISO timestamp
|
||||
}
|
||||
|
||||
// Per-criterion stats
|
||||
export interface CriterionStats {
|
||||
criterionId: string;
|
||||
criterionName: string;
|
||||
mean: number;
|
||||
stddev: number;
|
||||
scores: number[];
|
||||
}
|
||||
|
||||
// Aggregated Result
|
||||
export interface TeamResult {
|
||||
teamId: string;
|
||||
teamName: string;
|
||||
total: number;
|
||||
average: number;
|
||||
stddev: number;
|
||||
rank: number;
|
||||
jurorCount: number;
|
||||
complete: boolean;
|
||||
criteriaStats?: CriterionStats[];
|
||||
}
|
||||
|
||||
// Offline queue
|
||||
export interface PendingScore {
|
||||
jurorId: string;
|
||||
teamId: string;
|
||||
criterionId: string;
|
||||
value: number;
|
||||
timestamp: string;
|
||||
synced: boolean;
|
||||
}
|
||||
|
||||
// Store data (JSON file structure)
|
||||
export interface StoreData {
|
||||
session: Session;
|
||||
teams: Team[];
|
||||
jurors: Juror[];
|
||||
scores: Score[];
|
||||
}
|
||||
Reference in New Issue
Block a user