{"id":16999162,"url":"https://github.com/pintowar/sudoscan-web","last_synced_at":"2026-04-09T12:13:24.851Z","repository":{"id":139114290,"uuid":"422390887","full_name":"pintowar/sudoscan-web","owner":"pintowar","description":"Sudoscan web version","archived":false,"fork":false,"pushed_at":"2023-03-04T19:03:15.000Z","size":602,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-27T08:11:26.811Z","etag":null,"topics":["choco-solver","deeplearning4j","djl","dl4j","java","kotlin","micronaut","ojalgo","opencv","spi","tensorflow2"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pintowar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-10-29T00:09:31.000Z","updated_at":"2021-11-15T03:04:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"4ff21335-f65b-4157-ad35-a89efd55e8ef","html_url":"https://github.com/pintowar/sudoscan-web","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pintowar%2Fsudoscan-web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pintowar%2Fsudoscan-web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pintowar%2Fsudoscan-web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pintowar%2Fsudoscan-web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pintowar","download_url":"https://codeload.github.com/pintowar/sudoscan-web/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244924752,"owners_count":20532873,"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":["choco-solver","deeplearning4j","djl","dl4j","java","kotlin","micronaut","ojalgo","opencv","spi","tensorflow2"],"created_at":"2024-10-14T04:07:27.724Z","updated_at":"2025-12-30T20:46:39.752Z","avatar_url":"https://github.com/pintowar.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SudoScan Web\n![master status](https://github.com/pintowar/sudoscan-web/actions/workflows/gradle_master.yml/badge.svg?branch=master)\n\n![develop status](https://github.com/pintowar/sudoscan-web/actions/workflows/gradle_develop.yml/badge.svg?branch=develop)\n\n![GitHub tag (latest)](https://img.shields.io/github/v/tag/pintowar/sudoscan-web)\n![GitHub license](https://img.shields.io/github/license/pintowar/sudoscan-web)\nScan and Solve Sudoku Puzzles Web Version\n\n## Project Info\n\nThis is a web version of the [Sudoscan Project](https://github.com/pintowar/sudoscan).\nThe main engine uses Sudoscan's libs on the server side while a Typescript/React client uses webcam + websockets \nto solve Sudoku Puzzles given a Puzzle image.  \n\nThis is a toy project for educational purpose.\nI usually use this project to explore some JVM/Kotlin libs, new Gradle features/plugins,\nAI libs and CI pipes (using github actions).\n\n### Running with Docker\n\nFor a quick view of the application in action, run the following command:\n\n`docker run -p 8080:8080 pintowar/sudoscan-web`\n\nAfter the application is running, it can be accessed using the browser at `http://localhost:8080`.\n\n### Project Modules\n\nThe project was broken into the following modules (using java SPI):\n\n* sudoscan-webclient: Web client UI using React js + Typescript + Tailwind;\n* sudoscan-webserver: Webserver using Micronaut framework + Sudoscan lib.\n\n## Building Project\n\nThis project uses dependencies from the [sudoscan project](https://github.com/pintowar/sudoscan) sub-modules. Those dependencies are hosted on Github Packages. In order to make gradle be able to download them, add these lines to `$HOME/.gradle/gradle.properties` (create the file if it doesn't exist):\n\n```properties\ngpr.user=github_user\ngpr.pass=github_token\n```\n\nTo build the fat jar version of the app, run the following command:\n\n`gradle -Pweb-cli -PjavacppPlatform=linux-x86_64,macosx-x86_64,windows-x86_64 clean assembleWebApp`\n\nThe command above will build a fat jar containing the native dependencies of all informed platforms. The `web-cli` param tells gradle to add the minified client generated on **sudoscan-webclient** sub-module.\nTo build a more optimized jar, just inform the desired platform, for instance: \n\n`gradle -Pweb-cli -PjavacppPlatform=linux-x86_64 clean assembleWebApp`\n\nIt is also possible to chose in compile time, which solver/recognizer module to use. The commands above (by default)\nwill generate a jar using **sudoscan-solver-choco** and **sudoscan-recognizer-dl4j** as the main solver and recognizer.\nTo use **sudoscan-solver-ojalgo** and **sudoscan-recognizer-djl** as solver and recognizer components,\nrun the following command:\n\n`gradle -Pweb-cli -Pojalgo -Pdjl -PjavacppPlatform=macosx-x86_64 clean assembleWebApp`","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpintowar%2Fsudoscan-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpintowar%2Fsudoscan-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpintowar%2Fsudoscan-web/lists"}