Files
hristudio/README.md
Sean O'Connor 433c1c4517 docs: consolidate and restructure documentation architecture
- 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
2025-08-04 23:54:47 -04:00

157 lines
5.6 KiB
Markdown

# 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](https://nextjs.org) with App Router
- **Authentication**: [NextAuth.js v5](https://next-auth.js.org)
- **Database**: [PostgreSQL](https://postgresql.org) with [Drizzle ORM](https://orm.drizzle.team)
- **Storage**: [MinIO](https://min.io) (S3-compatible) for media files
- **API**: [tRPC](https://trpc.io) for type-safe client-server communication
- **UI**: [Tailwind CSS](https://tailwindcss.com) with [shadcn/ui](https://ui.shadcn.com) and [Radix UI](https://radix-ui.com)
- **Package Manager**: [Bun](https://bun.sh) (exclusively)
## Getting Started
### Prerequisites
- [Bun](https://bun.sh) (latest version)
- [PostgreSQL](https://postgresql.org) (14+)
- [Docker](https://docker.com) (optional, for containerized deployment)
### Installation
1. Clone the repository:
```bash
git clone https://github.com/your-org/hristudio.git
cd hristudio
```
2. Install dependencies:
```bash
bun install
```
3. Set up environment variables:
```bash
cp .env.example .env
# Edit .env with your database credentials and other settings
```
4. Start the database (using Docker):
```bash
bun run docker:up
```
5. Push the database schema:
```bash
bun run db:push
```
6. Start the development server:
```bash
bun dev
```
Open [http://localhost:3000](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:
1. **User Interface Layer**: Browser-based interfaces for experiment design, wizard control, and data analysis
2. **Data Management Layer**: PostgreSQL database with role-based access control and MinIO for media storage
3. **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
1. Fork the repository
2. Create a feature branch: `git checkout -b feature-name`
3. Make your changes following the [project guidelines](./.rules)
4. Run tests: `bun test`
5. Run type checking: `bun typecheck`
6. Run linting: `bun lint`
7. Commit your changes: `git commit -m 'Add feature'`
8. Push to the branch: `git push origin feature-name`
9. Create a Pull Request
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Support
For questions, issues, or contributions:
- Create an [issue](https://github.com/your-org/hristudio/issues)
- Check the [documentation](./docs/)
- Review the [project rules](./.rules)
## Acknowledgments
HRIStudio was developed to advance Human-Robot Interaction research by providing standardized, reproducible methodologies for Wizard of Oz studies.