{"id":28365420,"url":"https://github.com/stefaniamak/nonogram","last_synced_at":"2025-07-27T03:08:25.347Z","repository":{"id":278286458,"uuid":"535306605","full_name":"stefaniamak/nonogram","owner":"stefaniamak","description":"Solve and design nonogram puzzles with real-time interaction and smart logic!","archived":false,"fork":false,"pushed_at":"2025-05-23T17:40:04.000Z","size":1812,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-18T17:44:29.185Z","etag":null,"topics":["flutter-web","heuristic-optimization","isolated-worker","puzzle-designer","puzzle-solver","recursive-thinking","regular-expressions"],"latest_commit_sha":null,"homepage":"https://nonogram-thesis.web.app/","language":"Dart","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/stefaniamak.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":"2022-09-11T13:27:09.000Z","updated_at":"2025-05-23T17:34:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"0475d07f-08db-4c0a-a49e-9b3516e2954a","html_url":"https://github.com/stefaniamak/nonogram","commit_stats":null,"previous_names":["stefaniamak/nonogram"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/stefaniamak/nonogram","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefaniamak%2Fnonogram","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefaniamak%2Fnonogram/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefaniamak%2Fnonogram/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefaniamak%2Fnonogram/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stefaniamak","download_url":"https://codeload.github.com/stefaniamak/nonogram/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefaniamak%2Fnonogram/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267293776,"owners_count":24065325,"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-07-27T02:00:11.917Z","response_time":82,"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":["flutter-web","heuristic-optimization","isolated-worker","puzzle-designer","puzzle-solver","recursive-thinking","regular-expressions"],"created_at":"2025-05-28T21:39:56.285Z","updated_at":"2025-07-27T03:08:25.331Z","avatar_url":"https://github.com/stefaniamak.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🧩 Nonogram Solver \u0026 Puzzle Designer\n\nA full-featured nonogram solver and puzzle creation tool built as part of my university thesis. This project combines **heuristic optimization**, **responsive UI**, and **interactive puzzle design** — all inside a clean and intuitive user experience.\n\nUsers can design their own nonogram puzzles or visualize the solving process step by step, with complete control and real-time feedback.\n\n🌐 Try it live here: https://nonogram-thesis.web.app/  \n👀 There’s a hidden easter egg inside — see if you can find it!\n\n---\n\n## 🧠 Features\n\n• Solve complex nonogram puzzles using optimized heuristic algorithms  \n• Create puzzles by drawing directly on the grid or inputting clues manually  \n• Step-by-step solving slider with visual feedback  \n• Real-time puzzle validation and interactive error handling  \n• Responsive, mobile-friendly layout and intuitive UX  \n• Smooth performance using isolates and workers to offload heavy computations  \n\n---\n\n## 🛠 My Role\n\nSole designer, researcher, and developer — responsible for architecture, performance tuning, user interface, and algorithm development.\n\n---\n\n## 🎯 Project Goals\n\n• Build a high-performance nonogram solver for large and complex puzzles  \n• Offer an intuitive puzzle creation interface with real-time drawing on a grid  \n• Ensure a smooth, responsive experience across desktop and mobile devices  \n\n---\n\n## ⚙️ Technical Highlights\n\n• Heuristic algorithm reduced solving time from 9 minutes to ~1 second  \n• Recursive logic and constraint satisfaction techniques for puzzle validation  \n• Use of Flutter **Isolate** and **Flutter Worker** to keep the UI responsive  \n• Manual clue input + draw-your-own grid generation  \n• RegEx-powered validation for puzzle integrity  \n• Visual, step-by-step solving slider with animated transitions  \n\n---\n\n## 🎨 UX \u0026 UI Design\n\n• Fully responsive layout using Flutter Web  \n• Custom clue placement logic and grid rendering  \n• Animated interactions, transitions, and error feedback  \n• Focused on simplicity and clarity for all user types  \n\n---\n\n## 📚 Thesis Materials\n\n- 📄 **Thesis PDF** – *Nonogram: Development of a Puzzle Solver and Designer*  \n  _(still looking into how to get an official link through my University)_\n\n- 🎞️ **Presentation Slides**  \n  _(same here)_\n\n---\n\n## 🙋🏻‍♀️ Author\n\n**Stefania Makrygiannaki**  \n🔗 [LinkedIn](https://www.linkedin.com/in/stefaniamak)  \n📝 [Medium](https://medium.com/@stefaniamak)  \n\n---\n\n## 🏛️ Notice\n\nThis project was developed as part of my undergraduate thesis and is the intellectual property of my university. It is not open-sourced or licensed for public use or redistribution.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefaniamak%2Fnonogram","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstefaniamak%2Fnonogram","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefaniamak%2Fnonogram/lists"}