{"id":30174156,"url":"https://github.com/btawaifi/image_moderation_system","last_synced_at":"2026-04-10T12:33:42.135Z","repository":{"id":195637741,"uuid":"514873930","full_name":"BTawaifi/image_moderation_system","owner":"BTawaifi","description":"An application for moderating incoming image reports and sending the moderation result to a system using a callback Url","archived":false,"fork":false,"pushed_at":"2022-07-17T16:05:17.000Z","size":280,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-12T00:38:56.676Z","etag":null,"topics":["docker","docker-compose","express","fileserver","image-moderation","javascript","moderation","mysql","node","react","sightengine","typeorm","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/BTawaifi.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}},"created_at":"2022-07-17T14:57:59.000Z","updated_at":"2023-07-08T00:09:03.000Z","dependencies_parsed_at":"2023-09-19T02:47:10.476Z","dependency_job_id":null,"html_url":"https://github.com/BTawaifi/image_moderation_system","commit_stats":null,"previous_names":["btawaifi/image_moderation_system"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BTawaifi/image_moderation_system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BTawaifi%2Fimage_moderation_system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BTawaifi%2Fimage_moderation_system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BTawaifi%2Fimage_moderation_system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BTawaifi%2Fimage_moderation_system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BTawaifi","download_url":"https://codeload.github.com/BTawaifi/image_moderation_system/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BTawaifi%2Fimage_moderation_system/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31643066,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T07:40:12.752Z","status":"ssl_error","status_checked_at":"2026-04-10T07:40:11.664Z","response_time":98,"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":["docker","docker-compose","express","fileserver","image-moderation","javascript","moderation","mysql","node","react","sightengine","typeorm","typescript"],"created_at":"2025-08-12T00:24:59.460Z","updated_at":"2026-04-10T12:33:42.108Z","avatar_url":"https://github.com/BTawaifi.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Moderation App\n\nAn application for moderating incoming image reports and sending the moderation result to a system using a callback Url\n\n\n## Technologies Used Include\n\n- [React](https://reactjs.org/)\n- [TypeScript](https://typescriptlang.org)\n- [TypeORM](https://typeorm.io/)\n- [NodeJs](https://nodejs.org/)\n- [Express](https://expressjs.com/)\n- [MySQL](https://www.mysql.com/)\n\n\u003e There are different README.md files inside each folder for standalone usage, including HTTP requests\n\n\u003e NOTE: Moderation Will fail if the callback URL doesn't recieve a Requst (ACID transaction rollback)\n\n## Enviromental Variables\n\nYou can place the environment variables directly inside docker-compose.yml or using .env file\n\nCreate a *.env* file at project root with the following variables\n\n\u003e Get PREFILTER_API_* variables by signing up in https://sightengine.com/\n\n```\nMYSQL_HOST = mysqldb\nMYSQL_USERNAME = root\nMYSQL_PASSWORD = root\nMYSQL_ROOT_PASSWORD = root\nMYSQL_DATABASE = moderation_db\nMYSQL_LOCAL_PORT = 3306\nMYSQL_DOCKER_PORT = 3306\n\nBACKEND_LOCAL_PORT = 3000\nBACKEND_DOCKER_PORT = 3000\nPREFILTER_API_USER = \nPREFILTER_API_SECRET = \nFILESERVER_HOST = http://fileserver\n\nREACT_APP_FILESERVER_HOST = http://fileserver\nREACT_APP_FILESERVER_LOCAL_PORT = 8080\nREACT_APP_BACKEND_HOST = http://backend\nREACT_APP_BACKEND_PORT = 3000\n\nFILESERVER_LOCAL_PORT = 8080\nFILESERVER_DOCKER_PORT = 8080\n\nFRONTEND_LOCAL_PORT = 8000\nFRONTEND_DOCKER_PORT = 80\nPORT = 80\nGENERATE_SOURCEMAP = false\n```\n\n# Usage\n## Docker-Compose\n\n```bash\ndocker-compose up\n```\n\n\u003e If for some reason the previous command didn't work, go inside each folder and run the commands in README file (then run this command again)\n\n\u003e Frontend is available at http://localhost:8000/\n\n\n## Requests\n\n### Simulate Reciving New Image Report\n\n```bash\nPOST http://localhost:3000/report\n\nBODY {\n    \"userId\": 1,\n    \"imageUrl\": \"https://images.pexels.com/photos/45201/kitty-cat-kitten-pet-45201.jpeg?auto=compress\u0026cs=tinysrgb\u0026dpr=1\u0026w=500\",\n    \"callbackUrl\": \"https://images.pexels.com\"\n}\n```\n\n\u003cp align=\"center\"\u003eMade by BTawaifi\u003c/p\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbtawaifi%2Fimage_moderation_system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbtawaifi%2Fimage_moderation_system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbtawaifi%2Fimage_moderation_system/lists"}