{"id":16746663,"url":"https://github.com/feduke-nukem/flutter_captcha","last_synced_at":"2025-07-20T17:32:55.510Z","repository":{"id":204507700,"uuid":"658326509","full_name":"feduke-nukem/flutter_captcha","owner":"feduke-nukem","description":null,"archived":false,"fork":false,"pushed_at":"2023-10-30T21:13:36.000Z","size":7492,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-16T02:26:03.621Z","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/feduke-nukem.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-25T12:29:59.000Z","updated_at":"2024-11-21T07:12:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"f0bf2801-c77e-43d0-9c2f-13f920aced81","html_url":"https://github.com/feduke-nukem/flutter_captcha","commit_stats":null,"previous_names":["feduke-nukem/flutter_captcha"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/feduke-nukem/flutter_captcha","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feduke-nukem%2Fflutter_captcha","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feduke-nukem%2Fflutter_captcha/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feduke-nukem%2Fflutter_captcha/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feduke-nukem%2Fflutter_captcha/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/feduke-nukem","download_url":"https://codeload.github.com/feduke-nukem/flutter_captcha/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feduke-nukem%2Fflutter_captcha/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266165709,"owners_count":23886668,"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":"2024-10-13T02:08:04.233Z","updated_at":"2025-07-20T17:32:55.418Z","avatar_url":"https://github.com/feduke-nukem.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003ca href=\"https://codecov.io/gh/feduke-nukem/flutter_captcha\" \u003e \n \u003cimg src=\"https://codecov.io/gh/feduke-nukem/flutter_captcha/graph/badge.svg?token=XEATIDADCY\"/\u003e \n\u003c/a\u003e\n\n#### Flutter Captcha\n\n\u003cimg src=\"https://github.com/feduke-nukem/flutter_captcha/assets/72284940/772e9b3c-4fd7-4ae0-9f55-5865b7b5be1c\" alt=\"2\" height=\"400\"/\u003e\n\u003cimg src=\"https://github.com/feduke-nukem/flutter_captcha/assets/72284940/455803fd-7671-4e59-b828-08c4b08dcf55\" alt=\"3\" height=\"400\"/\u003e\n\n\n\n## Features\n\nProvide any widget, and it will be automatically divided into parts that can be rotated and positioned. At any point, you can check the solution status to confirm if the user has successfully passed the captcha test.\n\n## Getting started\n\n```dart\nvoid main() {\n  runApp(const MyApp());\n}\n\nclass MyApp extends StatefulWidget {\n  const MyApp({super.key});\n\n  @override\n  State\u003cMyApp\u003e createState() =\u003e _MyAppState();\n}\n\nclass _MyAppState extends State\u003cMyApp\u003e {\n  final _controller = FlutterCaptchaController(\n    random: Random.secure(),\n  )..init();\n\n  @override\n  void dispose() {\n    _controller.dispose();\n    super.dispose();\n  }\n\n  @override\n  Widget build(BuildContext context) {\n    return MaterialApp(\n      title: 'Flutter Demo',\n      theme: ThemeData(\n        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),\n        useMaterial3: true,\n      ),\n      home: Scaffold(\n        body: Center(\n          child: FlutterCaptcha(\n            controller: _controller,\n            crossLine: (color: Colors.white, width: 10),\n            fit: BoxFit.cover,\n            draggingBuilder: (_, child) =\u003e Opacity(opacity: 0.5, child: child),\n            child: Image.network(\n              'https://upload.wikimedia.org/wikipedia/commons/4/4f/Dash%2C_the_mascot_of_the_Dart_programming_language.png',\n            ),\n          ),\n        ),\n      ),\n    );\n  }\n}\n```\n\nTry it out by [link](https://feduke-nukem.github.io/flutter_captcha/)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeduke-nukem%2Fflutter_captcha","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffeduke-nukem%2Fflutter_captcha","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeduke-nukem%2Fflutter_captcha/lists"}