Enhance HRIStudio with immersive experiment designer and comprehensive documentation updates

- Introduced a new immersive experiment designer using React Flow, providing a professional-grade visual flow editor for creating experiments.
- Added detailed documentation for the flow designer connections and ordering system, emphasizing its advantages and implementation details.
- Updated existing documentation to reflect the latest features and improvements, including a streamlined README and quick reference guide.
- Consolidated participant type definitions into a new file for better organization and clarity.

Features:
- Enhanced user experience with a node-based interface for experiment design.
- Comprehensive documentation supporting new features and development practices.

Breaking Changes: None - existing functionality remains intact.
This commit is contained in:
2025-08-05 00:48:36 -04:00
parent 433c1c4517
commit b1684a0c69
44 changed files with 4654 additions and 5310 deletions
+80
View File
@@ -0,0 +1,80 @@
// Participant type definitions for HRIStudio
export interface ParticipantDemographics {
age?: number;
gender?: string;
grade?: number;
background?: string;
education?: string;
occupation?: string;
experience?: string;
notes?: string;
[key: string]: string | number | boolean | undefined;
}
export interface ParticipantWithStudy {
id: string;
studyId: string;
participantCode: string;
email: string | null;
name: string | null;
demographics: ParticipantDemographics | null;
consentGiven: boolean;
consentDate: Date | null;
notes: string | null;
createdAt: Date;
updatedAt: Date;
study: {
id: string;
name: string;
institution: string | null;
} | null;
}
export interface CreateParticipantData {
studyId: string;
participantCode: string;
email?: string;
name?: string;
demographics?: ParticipantDemographics;
consentGiven?: boolean;
consentDate?: Date;
notes?: string;
}
export interface UpdateParticipantData {
participantCode?: string;
email?: string;
name?: string;
demographics?: ParticipantDemographics;
consentGiven?: boolean;
consentDate?: Date;
notes?: string;
}
export interface ParticipantListItem {
id: string;
studyId: string;
participantCode: string;
name: string | null;
consentGiven: boolean;
consentDate: Date | null;
createdAt: Date;
studyName: string;
}
export interface ParticipantTrialSummary {
id: string;
experimentName: string;
status: "scheduled" | "in_progress" | "completed" | "aborted";
scheduledAt: Date | null;
startedAt: Date | null;
completedAt: Date | null;
duration: number | null;
}
export interface ParticipantDetailData extends ParticipantWithStudy {
trials: ParticipantTrialSummary[];
upcomingTrials: ParticipantTrialSummary[];
completedTrials: ParticipantTrialSummary[];
}