{"id":28742746,"url":"https://github.com/aplbrain/neuvue-app","last_synced_at":"2025-06-16T09:08:41.544Z","repository":{"id":219185050,"uuid":"407580557","full_name":"aplbrain/neuvue-app","owner":"aplbrain","description":"MICrONS Proofreading App","archived":false,"fork":false,"pushed_at":"2025-06-11T18:23:30.000Z","size":62264,"stargazers_count":1,"open_issues_count":17,"forks_count":2,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-06-11T20:06:36.794Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://app.neuvue.io","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aplbrain.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"LICENSE","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":"2021-09-17T14:56:40.000Z","updated_at":"2025-05-20T17:27:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"bddf2718-417f-4d77-8d36-274d8fc64b35","html_url":"https://github.com/aplbrain/neuvue-app","commit_stats":null,"previous_names":["aplbrain/neuvue-app"],"tags_count":55,"template":false,"template_full_name":null,"purl":"pkg:github/aplbrain/neuvue-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aplbrain%2Fneuvue-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aplbrain%2Fneuvue-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aplbrain%2Fneuvue-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aplbrain%2Fneuvue-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aplbrain","download_url":"https://codeload.github.com/aplbrain/neuvue-app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aplbrain%2Fneuvue-app/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260131537,"owners_count":22963448,"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":"2025-06-16T09:08:40.662Z","updated_at":"2025-06-16T09:08:41.501Z","avatar_url":"https://github.com/aplbrain.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch3 align=center\u003eNeuvue\u003c/h3\u003e\n\u003ch6 align=center\u003eA Proofreading web-app and task management system\u003c/h6\u003e\n\n## What is Proofreading?\n\nProofreading is the process by which errors in a dataset are corrected. In connectomics datasets, errors may be introduced at any stage of the processing pipeline, including during dense segmentation, object detection, and connectome generation. Common types of errors include artificial splits or merges in segmentation, incorrect detection of synapses, mitochondria, or other objects, and incorrect annotation of pre and postsynaptic partners. NeuVue is designed to support proofreading workflows for diverse types of error detection and correction tasks, and includes robust utilities for managing proofreader groups of all levels of expertise.\n\nRead more in our [preprint](https://www.biorxiv.org/content/10.1101/2022.07.18.500521v1).\n\n## Installation\n\nClone this repository recursively so that the neuvue-client submodule will also be included.\n```shell\ngit clone https://github.com/aplbrain/neuvue-app.git --recursive\n```\n\nCreate a python3 virtual environment and install the requirements in neuvue_project/requirements.txt.\n\n```shell\npython3 -m venv venv\nsource  venv/bin/activate\ncd neuvue_project\npip install -r requirements.txt\n```\n\n## Development Installation\n\nInstall developer python requirements and set up pre-commit environment.\n\n```\nsource  venv/bin/activate\npip install -r requirements-dev.txt\npre-commit install\n```\n\nOnce changes are staged. Run pre-commit to automatically remove trailing whitespaces, check YAML files, and run black formatting on all python files.\n\n```\npre-commit\n```\n\n## (Optional) Compiling the neuroglancer project\n\nA working neuroglancer compilation is included under `neuvue_project/workspace/static/workspace/`. However, if the underlying neuroglancer client needs to change,it must be compiled and linked.\n\nRequirements: [nvm](https://github.com/nvm-sh/nvm)\n\n1. Clone the neuroglancer repo, and build it\n\t```\n\tgit clone https://github.com/aplbrain/neuroglancer\n\tnvm install --lts\n\tcd neuroglancer\n\tnpm i\n\tnpm run build\n\tnpm link\n\t```\n\n2. Build the NG wrapper\n\t```\n\tcd neuvue_project/workspace/static/ts/wrapper\n\tln -s \u003cabsolute-path-to-neuroglancer\u003e/src/neuroglancer ./third_party/neuroglancer\n\tnpm i\n\tnpm link neuroglancer\n\tnpm run build\n\t```\n3. Copy the built files to static\n\t```\n\tcd neuvue_project/workspace/static/ts/wrapper\n\tcp -r dist/workspace ../../\n\t```\n\n## Running a development environment\n\nThere is an included `neuvueDB.sqlite3` database file containing the tables needed to run the Django app. By default, the settings are configured for production which uses a cloud-enabled MySQL database server. To enable development mode:\n\nRun the following convenience script:\n```\npython run-dev-server.py\n```\n\nOr perform each step individually:\n\n1. Open `neuvue_project/neuvue/settings.py` and set `DEBUG=True`\n\n2. In the same file, modify `NEUVUE_QUEUE_ADDR` variable to the Nuevue-Queue endpoint you would like to use.\n\n3. Get the recent migrations to the database by running\n\n\t`python manage.py migrate`\n\n4. (OPTIONAL) Create a superuser to modify the app in your development environment.\n\n\t`python manage.py createsuperuser`\n\n5. Collect all static files into `/static`:\n\n\t`python manage.py collectstatic --no-input`\n\n6. Run the app with the `runserver` command to start a development instance. Run on the localhost:8000 address and port to allow OAuth client to properly authenticate user.\n\n\t`python manage.py runserver localhost:8000`\n\n7. Open your app on http://localhost:8000\n\n\n## OAuth Set-up\n\nThe included development database is preconfigured to allow OAuth to authenticate user accounts from `localhost:8000`. Here is a more [complete guide](https://www.section.io/engineering-education/django-google-oauth/) on how this was done.\n\nWe use `django-allauth` to connect Google OAuth to the Django environment. Users also have the option to log in through the base allauth login/signup page:\n\nhttp://localhost:8000/accounts/login/\n\nDjango users, OAuth settings, and site configuration can be modified in the admin console.\n\nhttp://localhost:8000/admin\n\n\n## Cloud Blueprint\n\n\u003cimg src=\"Neuvue_Blueprint.png\" style=\"background-color: rgb(300, 300, 300);\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faplbrain%2Fneuvue-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faplbrain%2Fneuvue-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faplbrain%2Fneuvue-app/lists"}