{"id":44813716,"url":"https://github.com/recursivezero/tz-fabric","last_synced_at":"2026-02-16T17:37:07.026Z","repository":{"id":306105328,"uuid":"1025028314","full_name":"recursivezero/tz-fabric","owner":"recursivezero","description":"fabric AI tools for textile industry","archived":false,"fork":false,"pushed_at":"2026-02-05T14:24:15.000Z","size":112143,"stargazers_count":1,"open_issues_count":4,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-06T01:01:23.260Z","etag":null,"topics":["fabric","fabric-ai","india","python","textile","threadzip","tz-fabric"],"latest_commit_sha":null,"homepage":"https://pro.threadzip.com","language":"TypeScript","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/recursivezero.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":".github/SUPPORT.md","governance":".github/GOVERNANCE.md","roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"recursivezero"}},"created_at":"2025-07-23T15:55:13.000Z","updated_at":"2026-02-05T14:24:19.000Z","dependencies_parsed_at":"2025-07-23T18:19:36.411Z","dependency_job_id":"16dbf846-f85e-4223-9a1f-942b00527d55","html_url":"https://github.com/recursivezero/tz-fabric","commit_stats":null,"previous_names":["recursivezero/tz-fabric"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/recursivezero/tz-fabric","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/recursivezero%2Ftz-fabric","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/recursivezero%2Ftz-fabric/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/recursivezero%2Ftz-fabric/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/recursivezero%2Ftz-fabric/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/recursivezero","download_url":"https://codeload.github.com/recursivezero/tz-fabric/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/recursivezero%2Ftz-fabric/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29514035,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T09:05:14.864Z","status":"ssl_error","status_checked_at":"2026-02-16T08:55:59.364Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["fabric","fabric-ai","india","python","textile","threadzip","tz-fabric"],"created_at":"2026-02-16T17:37:06.282Z","updated_at":"2026-02-16T17:37:07.012Z","avatar_url":"https://github.com/recursivezero.png","language":"TypeScript","funding_links":["https://github.com/sponsors/recursivezero"],"categories":[],"sub_categories":[],"readme":"# 🧵 Fabric Analyzer\n\n```text\nFabric Analyzer is an AI-powered web application that analyzes fabric \nimages to provide insightful textual descriptions.\n```\n\n🚀 Features\n\n```text\n🖼  Upload your own fabric images or use curated sample images\n🔍 Choose between **Short** or **Long** analysis\n🤖 Powered by Google Gemini Vision API for detailed AI responses\n🧠 Response caching for fast navigation (Prev/Next)\n✅ Validates whether uploaded image is a proper fabric image\n🧭 Drawer and navigation UI for enhanced experience\n📤 Upload and record of fabric images and related audios\n🔎 Search Similar images through a query\n🤖 An agentic chatbot for fabric queries and task\n```\n\n🛠️ Tech Stack of Frontend\n\n```text\nReact\nTypescript\ncss\n\nPrerequisites to use react\n-\u003eNode.js(v16 or later)\n-\u003enpm(comes with the node)\n```\n\n🛠️ Tech Stack of Backend\n\n```text\nFastapi\ngoogle-generative(gemini-api)\nLangchain agents\nMCP\nGroq\nPillow\nbase64\n```\n\n🛠️ Tech Stack of Databases\n\n```text\n-\u003e MongoDB\n```\n\n📁 Folder Structure of Frontend\n\n```text\nfrontend/\n├── public/\n│   ├── 20250312_224758__10_45_28_PM.jpeg\n│   ├── 20250323_093907__10_24_31_PM.jpeg\n│   ├── 20250323_094209__10_22_53_PM.jpeg\n│   ├── Gemini_Generated_Image_9m5wh59m5wh59m5w.png\n│   ├── index.html\n│   ├── manifest.json\n│   ├── robots.txt\n│\n├── src/\n│   ├── assets/\n│   ├── components/\n│   ├── hooks/\n│   ├── Pages/\n│   ├── Services/\n│   ├── utils/                       \n│   ├── services/                    \n│\n├── App.css                     \n├── App.js\n├── App.test.js\n├── index.css                    \n├── index.js\n├── logo.svg\n├── reportWebVitals.js\n├── setupTests.js\n│\n```\n\n📁 Folder Structure of Backend\n\n```text\nbackend/\n├── main.py\n├── cli.py\n├── LICENSE-PYTHON\n├── .env\n├── agent/\n├── core/\n├── routes/\n├── services/\n├── static/\n├── templates/\n├── tools/\n├── utils/\n├── pyproject.toml/\n├── README.md/\n```\n\n🔄 API Flow\n\n```text\nPOST /api/validate-image — Validates if uploaded image is a fabric\nPOST /api/analyze-image — Runs Gemini analysis (short or long)\nPOST /api/regenerate — Regenerates response set for same image + mode\nPOST /api/chat - chatbot\nGET  /api/assets/images/{filename} - for getting the images\nGET  /api/assets/audios/{filename} - for getting the audios\nGET  /api/media/content - for listing the uploaded media\nPOST /api/search - for searching the similar images\nPOST /api/submit - for uploading the media\nPOST /api/uploads/tmp_media - for storing the media in chat \n```\n\n## How to start\n\nClone the repo\n\n```sh\ngit clone https://github.com/recursivezero/tz-fabric.git\ncd tz-fabric\n```\n\n🛋️ Backend\n\n```sh\ncd backend\ncurl -sSL https://install.python-poetry.org | python3 -\npoetry install - to install all the dependencies\npoetry run dev\n```\n\n🛋️ Frontend\n\n```sh\n\ncd frontend\nnpm install  -\u003e to download the node modules\nnpm install axios -\u003e for backend integration\nnpm install react-icons // if react-icons is not installed\nnpm run dev\n```\n\n## Sample .env\n\nbackend/.env\n\n```text\nPORT=8000\nGEMINI_API_KEY=\"\"\nGRQ_API_KEY=\"\"\nMONGODB_URI=\"mongodb://localhost:27017\"\n```\n\nfrontend/.env\n\n```text\nVITE_API_URL=\"http://localhost:8000\"\n```\n\n\n\n🖼️ Screenshots\n\n### Homepage\n\n![Homepage](/assets/screenshots/homepage.png)\n\n---\n\n### Analysis Page\n\n![Analysis](/assets/screenshots/analysis-page.png)\n![Analysis Feature](/assets/screenshots/analysis-feature.png)\n\n---\n\n### Upload Page\n\n![Upload](/assets/screenshots/upload-page.png)\n![UploadFeature](/assets/screenshots/upload-page-feature.png)\n\n---\n\n### List Page\n\n![ListPage](/assets/screenshots/list-page.png)\n\n---\n\n### Search Page\n\n![Search Page](/assets/screenshots/search-page.png)\n![Search Crop Feature](/assets/screenshots/search-page-crop.png)\n![Search Page Feature](/assets/screenshots/search-page-action.png)\n\n---\n\n### Chat Page\n\n![Chat Page](/assets/screenshots/chat-page.png)\n![Chat feature](/assets/screenshots/chat-page-feature.png)\n\n## 📄 License\n\nThis project is licensed under the terms of the [MIT License](https://github.com/recursivezero/tz-fabric/blob/main/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frecursivezero%2Ftz-fabric","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frecursivezero%2Ftz-fabric","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frecursivezero%2Ftz-fabric/lists"}