# [HRIStudio](https://www.hristudio.com) A web platform for managing human-robot interaction studies, participants, and wizard-of-oz experiments. ![HRIStudio Homepage](.github/homepage-screenshot.png) ## Features - Role-based access control with granular permissions - Study management and participant tracking - Wizard-of-oz experiment support - Data collection and analysis tools - Secure authentication with Clerk - Real-time participant management - Study-specific data isolation ## Tech Stack - [Next.js](https://nextjs.org/) - React framework with App Router - [TypeScript](https://www.typescriptlang.org/) - Static type checking - [Clerk](https://clerk.com/) - Authentication and user management - [Drizzle ORM](https://orm.drizzle.team/) - TypeScript ORM - [PostgreSQL](https://www.postgresql.org/) - Database - [TailwindCSS](https://tailwindcss.com/) - Utility-first CSS - [Shadcn UI](https://ui.shadcn.com/) - Component library - [Radix UI](https://www.radix-ui.com/) - Accessible component primitives - [Lucide Icons](https://lucide.dev/) - Icon system ## Getting Started 1. Clone the repository: ```bash git clone https://github.com/yourusername/hristudio.git ``` 2. Install dependencies: ```bash pnpm install ``` 3. Set up environment variables: ```bash cp .env.example .env ``` 4. Set up the database: ```bash pnpm db:push ``` 5. Start the development server: ```bash pnpm dev ``` 6. Open [http://localhost:3000](http://localhost:3000) in your browser ## Project Structure ``` src/ ├── app/ # Next.js app router pages and API routes ├── components/ # React components │ ├── ui/ # Shadcn UI components │ └── ... # Feature-specific components ├── context/ # React context providers ├── db/ # Database schema and configuration ├── hooks/ # Custom React hooks ├── lib/ # Utility functions and permissions └── types/ # TypeScript type definitions ``` ## Development - Run `pnpm db:studio` to open the Drizzle Studio database UI - Use `pnpm lint` to check for code style issues - Run `pnpm build` to create a production build ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. ## Contributing Contributions are welcome! Please read our [Contributing Guide](CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests.