{"id":29285745,"url":"https://github.com/moinsen-dev/doodle_disaster","last_synced_at":"2025-07-05T23:10:06.591Z","repository":{"id":301483425,"uuid":"1008862919","full_name":"moinsen-dev/doodle_disaster","owner":"moinsen-dev","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-27T04:19:53.000Z","size":336,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"develop","last_synced_at":"2025-06-27T05:29:41.944Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/moinsen-dev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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-06-26T07:55:46.000Z","updated_at":"2025-06-27T04:19:57.000Z","dependencies_parsed_at":"2025-06-27T05:30:05.598Z","dependency_job_id":"7acc9169-92a5-4ef4-84b5-fd11d8619cc9","html_url":"https://github.com/moinsen-dev/doodle_disaster","commit_stats":null,"previous_names":["moinsen-dev/doodle_disaster"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/moinsen-dev/doodle_disaster","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moinsen-dev%2Fdoodle_disaster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moinsen-dev%2Fdoodle_disaster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moinsen-dev%2Fdoodle_disaster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moinsen-dev%2Fdoodle_disaster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moinsen-dev","download_url":"https://codeload.github.com/moinsen-dev/doodle_disaster/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moinsen-dev%2Fdoodle_disaster/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263819240,"owners_count":23516123,"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-07-05T23:09:51.729Z","updated_at":"2025-07-05T23:10:06.531Z","avatar_url":"https://github.com/moinsen-dev.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🎨 Doodle Disaster\n\n\u003cdiv align=\"center\"\u003e\n  \n  **Draw it. Pass it. Watch it fall apart!**\n  \n  [![Flutter](https://img.shields.io/badge/Flutter-%2302569B.svg?style=for-the-badge\u0026logo=Flutter\u0026logoColor=white)](https://flutter.dev)\n  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)\n  [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=for-the-badge)](http://makeapullrequest.com)\n  \n  \u003cimg src=\"https://via.placeholder.com/600x300/6B46C1/FFFFFF?text=Doodle+Disaster+Demo\" alt=\"Doodle Disaster Demo\" width=\"600\"\u003e\n  \n  *A hilarious multiplayer drawing game where simple prompts transform into delightful disasters through chains of interpretation.*\n  \n\u003c/div\u003e\n\n## 🎮 About The Game\n\nDoodle Disaster brings the classic \"Telephone\" game into the digital age. Players take turns drawing prompts and guessing what others have drawn, creating hilarious chains of artistic interpretation. What starts as \"cat on a skateboard\" might end up as \"alien pizza delivery\" through the beautiful chaos of human creativity and questionable drawing skills.\n\n### ✨ Key Features\n\n- **Local Multiplayer via Bluetooth** - No internet required! Perfect for game nights, parties, or casual gatherings\n- **Simple, Intuitive Gameplay** - Easy to learn, impossible to master (because mastery isn't the point - laughter is!)\n- **Minimal Design** - Clean interface that gets out of the way and lets the terrible drawings shine\n- **Customizable Settings** - Adjust timer lengths, number of rounds, and more to fit your group's style\n- **No Artistic Skill Required** - In fact, being bad at drawing often makes the game more fun!\n\n## 🚀 Getting Started\n\n### Prerequisites\n\nBefore you begin, ensure you have the following installed on your development machine:\n\n- **Flutter SDK** (3.0.0 or higher) - [Installation Guide](https://flutter.dev/docs/get-started/install)\n- **Dart SDK** (2.17.0 or higher) - Comes with Flutter\n- **Android Studio** or **VS Code** with Flutter extensions\n- **A physical device** for testing (Bluetooth doesn't work on emulators)\n\n### Installation\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/yourusername/doodle_disaster.git\n   cd doodle_disaster\n   ```\n\n2. **Install dependencies**\n   ```bash\n   flutter pub get\n   ```\n\n3. **Run the app**\n   ```bash\n   flutter run\n   ```\n\n### Platform-Specific Setup\n\n#### Android\nNo additional setup required! The app will request Bluetooth permissions at runtime.\n\n#### iOS\nAdd the following to your `ios/Runner/Info.plist`:\n```xml\n\u003ckey\u003eNSBluetoothAlwaysUsageDescription\u003c/key\u003e\n\u003cstring\u003eDoodle Disaster uses Bluetooth to connect with nearby players\u003c/string\u003e\n\u003ckey\u003eNSBluetoothPeripheralUsageDescription\u003c/key\u003e\n\u003cstring\u003eDoodle Disaster uses Bluetooth to create local multiplayer games\u003c/string\u003e\n```\n\n## 🎯 How to Play\n\n1. **Create or Join a Game**\n   - One player creates a game and shares the room code\n   - Other players join using the code\n\n2. **Drawing Phase**\n   - Each player receives a unique prompt\n   - Draw your interpretation within the time limit\n   - Don't worry about artistic quality - quick and recognizable is the goal!\n\n3. **Guessing Phase**\n   - View another player's drawing\n   - Type what you think it represents\n   - Be creative but try to be accurate!\n\n4. **The Reveal**\n   - Watch as each chain of drawings and guesses is revealed\n   - Laugh at the hilarious transformations\n   - Vote for your favorite disaster (optional)\n\n## 🏗️ Architecture\n\nDoodle Disaster follows Domain-Driven Design principles with a clean architecture approach:\n\n```\nlib/\n├── domain/           # Business logic and models\n│   ├── models/      # Game entities (Player, DrawingData, GameSession, etc.)\n│   ├── repositories/# Data interfaces\n│   └── services/    # Business logic services\n├── presentation/    # UI layer\n│   ├── screens/     # Full-screen widgets\n│   ├── widgets/     # Reusable UI components\n│   └── providers/   # State management (Riverpod)\n└── core/           # Shared utilities and constants\n```\n\n### Key Technologies\n\n- **Flutter** - Cross-platform UI framework\n- **Riverpod** - State management solution\n- **flutter_blue_plus** - Bluetooth connectivity\n- **perfect_freehand** - Smooth drawing stroke algorithm\n- **uuid** - Unique identifier generation\n\n## 🤝 Contributing\n\nWe love contributions! Doodle Disaster is a community project, and we welcome developers, designers, and idea-contributors alike.\n\n### Ways to Contribute\n\n1. **Report Bugs** - Found something broken? [Open an issue](https://github.com/yourusername/doodle_disaster/issues)\n2. **Suggest Features** - Have an idea? We'd love to hear it!\n3. **Submit Pull Requests** - Check out our [Contributing Guidelines](CONTRIBUTING.md)\n4. **Improve Documentation** - Help others by improving our docs\n5. **Create Prompt Packs** - Design themed prompt collections\n6. **Translate** - Help make the game accessible in more languages\n\n### Development Setup\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.\n\n## 📱 Screenshots\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://via.placeholder.com/250x500/6B46C1/FFFFFF?text=Home+Screen\" alt=\"Home Screen\" width=\"250\"\u003e\n  \u003cimg src=\"https://via.placeholder.com/250x500/6B46C1/FFFFFF?text=Drawing+Phase\" alt=\"Drawing Phase\" width=\"250\"\u003e\n  \u003cimg src=\"https://via.placeholder.com/250x500/6B46C1/FFFFFF?text=Reveal+Phase\" alt=\"Reveal Phase\" width=\"250\"\u003e\n\u003c/div\u003e\n\n## 🗺️ Roadmap\n\n### Current Version (MVP)\n- ✅ Core drawing and guessing gameplay\n- ✅ Bluetooth multiplayer support\n- ✅ Basic prompt system\n- ✅ Single round gameplay\n\n### Upcoming Features\n- 📱 Online multiplayer support\n- 🎨 Drawing tools (colors, brush sizes)\n- 🏆 Achievement system\n- 🌍 Internationalization\n- 🎵 Sound effects and music\n- 💾 Game history and statistics\n- 🎭 Custom prompt packs\n- 🤖 AI-generated prompts\n\nSee the [open issues](https://github.com/yourusername/doodle_disaster/issues) for a full list of proposed features.\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. This means you can:\n- Use the code for commercial purposes\n- Modify and distribute the code\n- Use it for private purposes\n\nAll we ask is that you include the original copyright and license notice in any copies.\n\n## 🙏 Acknowledgments\n\n- Inspired by the classic party games Telestrations and Telephone Pictionary\n- Built with [Flutter](https://flutter.dev) and love\n- Drawing smoothing powered by [perfect-freehand](https://github.com/steveruizok/perfect-freehand)\n- Icons from [Material Design Icons](https://material.io/resources/icons/)\n\n## 📞 Contact\n\nGot questions? Reach out!\n\n- Project Link: [https://github.com/yourusername/doodle_disaster](https://github.com/yourusername/doodle_disaster)\n- Issue Tracker: [GitHub Issues](https://github.com/yourusername/doodle_disaster/issues)\n- Discussions: [GitHub Discussions](https://github.com/yourusername/doodle_disaster/discussions)\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  Made with ❤️ by the open-source community\n  \n  If you enjoyed Doodle Disaster, please consider giving it a ⭐!\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoinsen-dev%2Fdoodle_disaster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoinsen-dev%2Fdoodle_disaster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoinsen-dev%2Fdoodle_disaster/lists"}