{"id":30340664,"url":"https://github.com/juliengriffoul/labelx","last_synced_at":"2026-05-17T09:43:22.318Z","repository":{"id":173843922,"uuid":"497341756","full_name":"juliengriffoul/labelx","owner":"juliengriffoul","description":"A Flask application to manually label an existing dataset.","archived":false,"fork":false,"pushed_at":"2022-09-20T17:36:49.000Z","size":2176,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-18T08:28:41.714Z","etag":null,"topics":["dataset-generation","flask","labeling-tool","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/juliengriffoul.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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-05-28T14:30:47.000Z","updated_at":"2022-10-10T19:58:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"5de215f3-3c7f-4b53-ae84-16a43279c2b5","html_url":"https://github.com/juliengriffoul/labelx","commit_stats":null,"previous_names":["juliengriffoul/labelx"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/juliengriffoul/labelx","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juliengriffoul%2Flabelx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juliengriffoul%2Flabelx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juliengriffoul%2Flabelx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juliengriffoul%2Flabelx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/juliengriffoul","download_url":"https://codeload.github.com/juliengriffoul/labelx/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juliengriffoul%2Flabelx/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274231437,"owners_count":25245585,"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-09-08T02:00:09.813Z","response_time":121,"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":["dataset-generation","flask","labeling-tool","python"],"created_at":"2025-08-18T08:19:04.055Z","updated_at":"2025-10-16T09:44:13.416Z","avatar_url":"https://github.com/juliengriffoul.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# labelx\n![GitHub](https://img.shields.io/github/license/juliengriffoul/labelx)\n![GitHub last commit (branch)](https://img.shields.io/github/last-commit/juliengriffoul/labelx/main?label=last%20commit%20on%20main)\n![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/juliengriffoul/labelx/makefile/main)  \nA Flask application to manually label an existing dataset.\n\n### Example scenario\nYou want to create a training dataset for your next model. You have your `assets/cars.csv` with already several fields:\n```\nCar;MPG;Cylinders;Displacement;Horsepower;Weight;Acceleration;Model;Origin\n```\nOn top of these, you want to add a custom field with a special value that actually, just a human can set.\nFor example: `Good_Looking`, with two possible values `Yes` and `Ǹo`.  \nThe objective is to go through a maximum of dataset rows and set this value.\nIterating manually over the CSV file is not the more efficient way to do it.  \nWith this project, you define the label settings and the labelling interface appearance and quickier your manual labelling.\n\n### Demo\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"docs/demo.gif\" width=\"800\" /\u003e\n\u003c/p\u003e\n\n### Configuration\nUpdate the `config.json` file to configure project.\n```\n{\n    \"data\": {\n        \"input\": \"assets/cars.csv\",\n        \"output\": \"assets/labelled_cars.csv\",\n        \"delimiter\": \";\"\n    },\n    \"interface\": {\n        \"fields\": [\"Car\", \"Model\", \"Origin\"],\n        \"theme\": \"light\"\n    },\n    \"label\": {\n        \"name\": \"Good_Looking\",\n        \"values\": [\"Yes\", \"No\"]\n    }\n}\n```\n\n### Setup instructions\n1. Installing virtual environment:\n```\npython3 -m pip install --user virtualenv\npython3 -m venv env\nsource env/bin/activate\n```\n2. Installing dependencies:\n```\nmake\n```\n3. Starting project:\n```\nmake run\n```\nLabelling interface now available at `http://127.0.0.1:5000`.\n\n### Roadmap\n- Fix setuptools configuration;\n    - Replace with Poetry?\n- Improve CI (linting, etc.);\n- Setup release flow;\n- Implement skip button;\n- Local Bootstrap.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuliengriffoul%2Flabelx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuliengriffoul%2Flabelx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuliengriffoul%2Flabelx/lists"}