{"id":14956869,"url":"https://github.com/monolithgoon/automated-land-subdivision-api","last_synced_at":"2025-06-14T08:10:26.364Z","repository":{"id":212935842,"uuid":"287277698","full_name":"monolithgoon/automated-land-subdivision-api","owner":"monolithgoon","description":"Automatically divide up land into pre-specified chunk sizes, and report back the coordinates for each chunk.","archived":false,"fork":false,"pushed_at":"2025-01-22T07:55:02.000Z","size":33317,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-04T12:35:51.722Z","etag":null,"topics":["api","aws","express-js","gis","javascript","jwt","leaflet-js","mapbox-gl-js","mongo-db","node-js","pug","turf-js"],"latest_commit_sha":null,"homepage":"http://13.61.173.110/","language":"JavaScript","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/monolithgoon.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,"roadmap":null,"authors":null}},"created_at":"2020-08-13T12:46:08.000Z","updated_at":"2025-03-01T16:25:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"d7bc5967-bf8b-4bc2-b9e1-a8ea41fb79ae","html_url":"https://github.com/monolithgoon/automated-land-subdivision-api","commit_stats":{"total_commits":548,"total_committers":2,"mean_commits":274.0,"dds":"0.027372262773722622","last_synced_commit":"2161f5bf226ba28b06242d851eb7175d123c7de3"},"previous_names":["monolithgoon/automated-land-subdivision-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/monolithgoon/automated-land-subdivision-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monolithgoon%2Fautomated-land-subdivision-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monolithgoon%2Fautomated-land-subdivision-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monolithgoon%2Fautomated-land-subdivision-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monolithgoon%2Fautomated-land-subdivision-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/monolithgoon","download_url":"https://codeload.github.com/monolithgoon/automated-land-subdivision-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monolithgoon%2Fautomated-land-subdivision-api/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259783067,"owners_count":22910301,"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":["api","aws","express-js","gis","javascript","jwt","leaflet-js","mapbox-gl-js","mongo-db","node-js","pug","turf-js"],"created_at":"2024-09-24T13:13:39.337Z","updated_at":"2025-06-14T08:10:26.358Z","avatar_url":"https://github.com/monolithgoon.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [_Automated Land-Subdivision API_](http://13.61.173.110/)\n\n\u003e Helping put smallholder farmers on the map\n\n![FieldDev Group Cover](https://user-images.githubusercontent.com/60096838/227154345-fd5e8a8f-c7b4-4cd2-85b7-4a0a81213c17.jpg)\n\nAutomatically divide up a single, contiguous land expanse into pre-specified chunk sizes. Instantly reports back precise, high-resolution plot boundary coordinates that enables precision agriculture. The tool works regardless of the size of the initial land expanse.\n\nHelps smallholder farmer geo-coops digitize their fam locations at very low cost.\n\n## 🌐 *_Resources_*\n\n### [_Auto Land-Subdivision API Landing Page_](http://13.61.173.110/)\n\n*[Frontend demo app](https://farmplots.web.app)*\n\n*[Video demo (2min 23s)](https://www.loom.com/share/44a371170c8f46fe9bf30ed946f44604)*\n\n*[Video pitch (3min 46s)](https://www.loom.com/share/c5ae871e21c1405e84ca1e573a9a7c99)*\n\n![Automated Farm Cluster Parcelization Demo](https://github.com/monolithgoon/automated-land-subdivision-api/assets/60096838/3f884963-02a1-4455-b7d9-a281fc114ef7)\n\n## 🛠️ *_Usage_*\n\n### [_Detailed API Documentation_](http://13.61.173.110/api-guide)\n\n### 🔄 *Process Flow*\n\n1. Use a smartphone app to capture `.gpx` tracks that trace the extent of the collective land\n2. Upload the `.gpx` data for processing via this endpoint `/api/v2/geofiles/geofile/upload/`\n3. Upload list of plot owners (farmers) \u0026 acreage allocation per. owner to `/api/v2/geo-clusters/geo-cluster/details/`\n4. Query this endpoint `/api/v1/parcelized-agcs/?\u003crpeview_map_url_hash\u003e` for a preview map of the subdivided plots.\n\n![Auto-Parcelization Process Flow](https://user-images.githubusercontent.com/60096838/227159621-6dfccf1a-f4b4-4c76-9946-ed7512e18235.png)\n\n### 📊 *Automated Land Division Examples*\n\n![responsive-cluster-1](https://user-images.githubusercontent.com/60096838/161726087-398efd30-1ff3-4535-877b-23a95393ba33.jpg)\n\n![sat-map-closeup-1 (2)](https://user-images.githubusercontent.com/60096838/161726116-60a1771b-54c9-4ac0-bddb-7d58bf4d4b7f.png)\n\n## 📝 *_NGINX Configuration_*\n\n  ### *_Config File_*\n  \n   Add the following block to your NGINX configuration file (`/etc/nginx/sites-available/land_subdivision_api`):\n\n   ```bash\n       server {\n            listen 80;\n            server_name 13.61.173.110;\n     \n            root /var/www/land_subdivision_api;\n            index index.html;\n     \n            proxy_set_header Upgrade $http_upgrade;\n            proxy_set_header Connection 'upgrade';\n            proxy_set_header Host $host;\n            proxy_cache_bypass $http_upgrade;\n     \n            location / {\n                proxy_pass http://localhost:9443;\n                proxy_http_version 1.1;\n            }\n     \n            location /api/ {\n                proxy_pass http://localhost:9443/api/;\n                proxy_http_version 1.1;\n                proxy_set_header X-Real-IP $remote_addr;\n                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n            }\n     \n            error_page 404 /404.html;\n            location = /404.html {\n                root /var/www/land_subdivision_api;\n            }\n        }\n   ```\n  \n  ### 🌠 *_Enable the Site_*  \n     Create a symbolic link in the `sites-enabled` directory:  \n     ```bash\n     sudo ln -s /etc/nginx/sites-available/land_subdivision_api /etc/nginx/sites-enabled/\n     ```\n  \n  ### 🌠 *_Test the Configuration_*  \n     Before applying changes, verify the syntax and configuration:  \n     ```bash\n     sudo nginx -t\n     ```\n  \n     Ensure the output confirms a successful test.  \n  \n  ### 🌠 *_Restart NGINX_*  \n     If the configuration test passes, restart NGINX to apply the changes:  \n     ```bash\n     sudo systemctl restart nginx\n     ```\n  \n  ### 🌠 *_Verify System Functionality_*  \n     - Access the application in your browser via `http://13.61.173.110` to confirm it loads correctly.  \n     - Check the API endpoints (e.g., `http://13.61.173.110/api/`) to ensure proper proxying.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonolithgoon%2Fautomated-land-subdivision-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmonolithgoon%2Fautomated-land-subdivision-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonolithgoon%2Fautomated-land-subdivision-api/lists"}