mirror of
https://github.com/soconnor0919/hristudio.git
synced 2025-12-11 14:44:44 -05:00
433c1c451718fb5189ea5d839539dfa94338cd54
- Remove outdated root-level documentation files - Delete IMPLEMENTATION_STATUS.md, WORK_IN_PROGRESS.md, UI_IMPROVEMENTS_SUMMARY.md, CLAUDE.md - Reorganize documentation into docs/ folder - Move UNIFIED_EDITOR_EXPERIENCES.md → docs/unified-editor-experiences.md - Move DATATABLE_MIGRATION_PROGRESS.md → docs/datatable-migration-progress.md - Move SEED_SCRIPT_README.md → docs/seed-script-readme.md - Create comprehensive new documentation - Add docs/implementation-status.md with production readiness assessment - Add docs/work-in-progress.md with active development tracking - Add docs/development-achievements.md consolidating all major accomplishments - Update documentation hub - Enhance docs/README.md with complete 13-document structure - Organize into logical categories: Core, Status, Achievements - Provide clear navigation and purpose for each document Features: - 73% code reduction achievement through unified editor experiences - Complete DataTable migration with enterprise features - Comprehensive seed database with realistic research scenarios - Production-ready status with 100% backend, 95% frontend completion - Clean documentation architecture supporting future development Breaking Changes: None - documentation restructuring only Migration: Documentation moved to docs/ folder, no code changes required
HRIStudio
HRIStudio is a comprehensive web-based platform for managing Wizard of Oz (WoZ) studies in Human-Robot Interaction research. It provides researchers with standardized tools for designing experiments, executing trials, and analyzing data while ensuring reproducibility and scientific rigor.
Features
- Visual Experiment Designer: Drag-and-drop interface for creating complex interaction scenarios
- Real-time Trial Control: Live robot control with responsive wizard interface during experiments
- Hierarchical Study Structure: Organized workflow from Study → Experiment → Trial → Step → Action
- Multi-modal Data Capture: Synchronized recording of video, audio, logs, and sensor data
- Role-based Access Control: Four distinct roles (Administrator, Researcher, Wizard, Observer)
- Robot Platform Integration: Support for multiple robot platforms via RESTful APIs, ROS, and custom plugins
- Collaborative Research: Team management with secure data sharing and role-based permissions
Tech Stack
- Framework: Next.js 15 with App Router
- Authentication: NextAuth.js v5
- Database: PostgreSQL with Drizzle ORM
- Storage: MinIO (S3-compatible) for media files
- API: tRPC for type-safe client-server communication
- UI: Tailwind CSS with shadcn/ui and Radix UI
- Package Manager: Bun (exclusively)
Getting Started
Prerequisites
- Bun (latest version)
- PostgreSQL (14+)
- Docker (optional, for containerized deployment)
Installation
- Clone the repository:
git clone https://github.com/your-org/hristudio.git
cd hristudio
- Install dependencies:
bun install
- Set up environment variables:
cp .env.example .env
# Edit .env with your database credentials and other settings
- Start the database (using Docker):
bun run docker:up
- Push the database schema:
bun run db:push
- Start the development server:
bun dev
Open http://localhost:3000 in your browser.
Development Commands
| Command | Description |
|---|---|
bun dev |
Start development server |
bun build |
Build for production |
bun start |
Start production server |
bun typecheck |
Run TypeScript checks |
bun lint |
Run ESLint |
bun lint --fix |
Fix ESLint issues |
bun test |
Run tests |
bun db:generate |
Generate database schema |
bun db:migrate |
Run database migrations |
bun db:push |
Push schema changes |
bun db:studio |
Open database studio |
Project Structure
src/
├── app/ # Next.js app router
│ ├── (auth)/ # Authentication pages
│ ├── (dashboard)/ # Main application pages
│ ├── api/ # API routes
│ └── layout.tsx
├── components/ # Shared UI components
│ ├── ui/ # shadcn/ui components
│ ├── dashboard/ # Dashboard-specific components
│ ├── experiments/ # Experiment-related components
│ └── studies/ # Study management components
├── lib/ # Utilities and configurations
│ ├── db/ # Database setup and schemas
│ ├── trpc/ # tRPC setup and routers
│ └── auth/ # NextAuth configuration
└── types/ # Shared TypeScript types
Architecture
HRIStudio follows a three-layer architecture:
- User Interface Layer: Browser-based interfaces for experiment design, wizard control, and data analysis
- Data Management Layer: PostgreSQL database with role-based access control and MinIO for media storage
- Robot Integration Layer: Platform-agnostic communication supporting RESTful APIs, ROS, and custom plugins
Key Concepts
Hierarchical Study Structure
- Study: Top-level container for a research project
- Experiment: Parameterized template specifying experimental protocol
- Trial: Executable instance with specific participant and conditions
- Step: Distinct phase containing wizard or robot instructions
- Action: Specific atomic task (speech, movement, input gathering, etc.)
User Roles
- Administrator: Full system access and user management
- Researcher: Study creation, experiment design, data analysis
- Wizard: Trial execution and robot control
- Observer: Read-only access to trials and data
Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes following the project guidelines
- Run tests:
bun test - Run type checking:
bun typecheck - Run linting:
bun lint - Commit your changes:
git commit -m 'Add feature' - Push to the branch:
git push origin feature-name - Create a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
For questions, issues, or contributions:
- Create an issue
- Check the documentation
- Review the project rules
Acknowledgments
HRIStudio was developed to advance Human-Robot Interaction research by providing standardized, reproducible methodologies for Wizard of Oz studies.
Description
A web platform for managing human-robot interaction studies, participants, and wizard-of-oz experiments.
Languages
TypeScript
97.1%
HTML
1.8%
CSS
0.5%
Shell
0.3%
JavaScript
0.3%