{"id":27604035,"url":"https://github.com/codehagen/euveka","last_synced_at":"2025-04-22T19:23:17.424Z","repository":{"id":283893373,"uuid":"953219587","full_name":"Codehagen/euveka","owner":"Codehagen","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-22T20:59:04.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-22T21:34:21.446Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://euveka.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Codehagen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-22T20:58:51.000Z","updated_at":"2025-03-22T21:00:45.000Z","dependencies_parsed_at":"2025-03-22T21:44:32.377Z","dependency_job_id":null,"html_url":"https://github.com/Codehagen/euveka","commit_stats":null,"previous_names":["codehagen/euveka"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Codehagen%2Feuveka","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Codehagen%2Feuveka/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Codehagen%2Feuveka/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Codehagen%2Feuveka/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Codehagen","download_url":"https://codeload.github.com/Codehagen/euveka/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250306900,"owners_count":21408988,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-22T19:23:16.901Z","updated_at":"2025-04-22T19:23:17.404Z","avatar_url":"https://github.com/Codehagen.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Euveka Device Controller\n\nA modern web application for controlling a mannequin device with adjustable parameters. This application allows users to input different body measurements, visualize the changes on a mannequin model, save/load configurations, and simulate sending parameters to the physical device.\n\n## Features\n\n- **Parameter Controls**: Adjust seven different body measurements with user-friendly sliders\n- **Real-time Visualization**: See changes applied to the mannequin in real-time as you adjust parameters\n- **Configuration Management**: Save, load, edit, and delete parameter sets\n- **Device Communication**: Simulate sending parameters to a physical mannequin device\n- **Responsive Design**: Works on desktop and tablets with a clean, intuitive interface\n- **Dark Mode Support**: Full support for both light and dark themes\n\n## Tech Stack\n\n- **Framework**: Next.js 14 with App Router\n- **UI Library**: React with TypeScript\n- **Styling**: Tailwind CSS\n- **UI Components**: Shadcn UI (built on Radix UI)\n- **State Management**: React's built-in hooks for local state\n- **Storage**: Browser LocalStorage for saved configurations\n- **Animation**: CSS transitions and Tailwind animations\n\n## Setup and Installation\n\n### Prerequisites\n\n- Node.js 18 or later\n- pnpm package manager\n\n### Installation Steps\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/codehagen/euveka.git\n   cd euveka\n   ```\n\n2. Install dependencies:\n   ```bash\n   pnpm install\n   ```\n\n3. Run the development server:\n   ```bash\n   pnpm dev\n   ```\n\n4. Open your browser and navigate to `http://localhost:3000`\n\n## Building for Production\n\n```bash\npnpm build\npnpm start\n```\n\n## How to Use\n\n1. **Adjust Parameters**: Use the sliders to modify body measurements\n2. **Save Configuration**: Click \"Save / Load\" button, enter a name, and save\n3. **Load Configuration**: Click \"Save / Load\" button, select a saved configuration\n4. **Send to Device**: Click \"Send to Device\" to simulate sending parameters to the physical mannequin\n\n## Design Approach\n\n### Architecture\n\nThe application is built using a component-based architecture with clear separation of concerns:\n\n- **Page Components**: Main entry points for routes\n- **UI Components**: Reusable interface elements\n- **Feature Components**: Domain-specific functionality grouped by feature\n- **Utility Functions**: Helpers for calculations and common operations\n\n### Key Design Decisions\n\n1. **Modular Component Structure**: Components are organized by feature with clear interfaces between them\n2. **State Management**: Simplified state management using React's context and hooks instead of external libraries\n3. **Server Components + Client Islands**: Server components for static parts, client components only where interactivity is needed\n4. **Real-time Updates**: Immediate visual feedback as parameters change\n5. **Error Handling**: Comprehensive error handling for localStorage operations and API calls\n6. **Responsive UI**: Mobile-first approach with responsive breakpoints\n7. **Accessibility**: Focus management, keyboard navigation, and proper aria attributes\n8. **Theme Support**: Consistent appearance in both light and dark modes\n\n### Error Handling\n\nThe application includes error handling for:\n\n- Loading and parsing localStorage data (with user feedback)\n- Saving, updating, and deleting configurations\n- Network request simulation with random failures\n- Input validation\n\n## Future Improvements\n\nWith additional time, I would consider the following enhancements:\n\n1. **More Comprehensive Testing**: Add unit and integration tests with Jest and React Testing Library\n2. **Backend Integration**: Replace localStorage with a real backend API\n3. **Real Device Communication**: Implement actual device communication via Bluetooth or WebUSB\n4. **User Authentication**: Add user accounts to store configurations in the cloud\n5. **History and Versioning**: Track changes to configurations over time\n6. **Advanced Measurements**: Add more parameters and detailed adjustments\n7. **3D Visualization**: Replace the 2D mannequin with a 3D model\n8. **Preset Templates**: Add standard size presets (S, M, L, etc.)\n9. **Performance Optimization**: Further optimize for larger datasets\n10. **Analytics**: Track usage patterns to improve the interface\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodehagen%2Feuveka","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodehagen%2Feuveka","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodehagen%2Feuveka/lists"}