{"id":30451857,"url":"https://github.com/ablomer/photorating","last_synced_at":"2025-08-23T14:18:15.982Z","repository":{"id":311109707,"uuid":"1039839046","full_name":"ablomer/photorating","owner":"ablomer","description":"📷 A modern, feature-rich web application for rating photos","archived":false,"fork":false,"pushed_at":"2025-08-22T05:51:27.000Z","size":55,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-22T07:31:56.342Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/ablomer.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,"zenodo":null}},"created_at":"2025-08-18T04:09:09.000Z","updated_at":"2025-08-22T05:51:30.000Z","dependencies_parsed_at":"2025-08-22T07:31:57.845Z","dependency_job_id":"e5c662fe-f5b4-4d18-8541-81dc2e7994d8","html_url":"https://github.com/ablomer/photorating","commit_stats":null,"previous_names":["ablomer/photorating"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/ablomer/photorating","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ablomer%2Fphotorating","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ablomer%2Fphotorating/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ablomer%2Fphotorating/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ablomer%2Fphotorating/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ablomer","download_url":"https://codeload.github.com/ablomer/photorating/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ablomer%2Fphotorating/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271751968,"owners_count":24814713,"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","status":"online","status_checked_at":"2025-08-23T02:00:09.327Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-08-23T14:18:15.345Z","updated_at":"2025-08-23T14:18:15.974Z","avatar_url":"https://github.com/ablomer.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Photo Rating App\n\nA modern, feature-rich web application built with React and TypeScript for rating and organizing photos from ZIP archives. Perfect for photographers, content creators, and anyone who needs to evaluate and categorize large collections of images.\n\n## ✨ Features\n\n- **ZIP File Processing**: Upload and extract images directly from ZIP archives\n- **Star Rating System**: Rate images on a 1-5 star scale with intuitive star interface\n- **Progress Persistence**: Automatic saving and recovery of your rating progress\n- **Image Navigation**: Easy navigation through images with keyboard shortcuts\n- **Notes \u0026 Annotations**: Add personal notes to each image for better organization\n- **Results Export**: Download comprehensive rating results and statistics\n- **Responsive Design**: Works seamlessly on desktop and mobile devices\n- **Drag \u0026 Drop**: Simple drag and drop interface for file uploads\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- Node.js (version 18 or higher)\n- npm or yarn package manager\n\n### Installation\n\n1. Clone the repository:\n```bash\ngit clone \u003crepository-url\u003e\ncd photorating\n```\n\n2. Install dependencies:\n```bash\nnpm install\n```\n\n3. Start the development server:\n```bash\nnpm run dev\n```\n\n4. Open your browser and navigate to `http://localhost:5173`\n\n### Building for Production\n\n```bash\nnpm run build\n```\n\nThe built files will be available in the `dist/` directory.\n\n## 🎯 Usage\n\n### Basic Workflow\n\n1. **Upload ZIP File**: Drag and drop a ZIP file containing images or click to browse\n2. **Rate Images**: Use the star rating system to rate each image (1-5 stars)\n3. **Add Notes**: Optionally add notes to any image for additional context\n4. **Navigate**: Use arrow keys or click navigation buttons to move between images\n5. **Save Progress**: Your progress is automatically saved and can be recovered\n6. **Export Results**: Download your ratings and notes when finished\n\n### Keyboard Shortcuts\n\n- **Left Arrow**: Previous image\n- **Right Arrow**: Next image\n- **Space**: Next image\n- **1-5**: Quick star rating\n- **N**: Add/edit notes for current image\n\n### Features\n\n- **Progress Recovery**: Automatically detects and offers to restore previous sessions\n- **Image Shuffling**: Option to randomize image order for unbiased rating\n- **Auto-save**: Progress is automatically saved to prevent data loss\n- **Session Management**: Multiple rating sessions can be managed independently\n\n## 🛠️ Technology Stack\n\n- **Frontend Framework**: React 19 with TypeScript\n- **Build Tool**: Vite\n- **Styling**: CSS with modern design principles\n- **File Processing**: JSZip for ZIP archive handling\n- **State Management**: React Hooks for local state\n- **Development Tools**: ESLint, TypeScript compiler\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## 🆘 Support\n\nIf you encounter any issues or have questions:\n\n1. Check the existing issues in the repository\n2. Create a new issue with detailed information about your problem\n3. Include browser version, operating system, and steps to reproduce\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fablomer%2Fphotorating","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fablomer%2Fphotorating","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fablomer%2Fphotorating/lists"}