{"id":27215621,"url":"https://github.com/anubislms/anubis","last_synced_at":"2025-10-19T18:09:27.905Z","repository":{"id":40550833,"uuid":"229313203","full_name":"AnubisLMS/Anubis","owner":"AnubisLMS","description":"Distributed LMS for automating Computing Science Courses From NYU","archived":false,"fork":false,"pushed_at":"2025-08-27T18:28:08.000Z","size":21619,"stargazers_count":313,"open_issues_count":67,"forks_count":50,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-08-28T02:27:30.619Z","etag":null,"topics":["cloud","cloud-ide","distributed-systems","education","k8s","kubernetes","learning-management-system","nyu","python","theia"],"latest_commit_sha":null,"homepage":"https://about.anubis-lms.io","language":"Python","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/AnubisLMS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","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":"2019-12-20T18:04:14.000Z","updated_at":"2025-08-27T18:28:12.000Z","dependencies_parsed_at":"2024-01-13T19:58:18.347Z","dependency_job_id":"c439a2cf-35cc-4a8f-bb06-8b6ec22ae6bf","html_url":"https://github.com/AnubisLMS/Anubis","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/AnubisLMS/Anubis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnubisLMS%2FAnubis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnubisLMS%2FAnubis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnubisLMS%2FAnubis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnubisLMS%2FAnubis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AnubisLMS","download_url":"https://codeload.github.com/AnubisLMS/Anubis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnubisLMS%2FAnubis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279870669,"owners_count":26237538,"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-10-19T02:00:07.647Z","response_time":64,"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":["cloud","cloud-ide","distributed-systems","education","k8s","kubernetes","learning-management-system","nyu","python","theia"],"created_at":"2025-04-10T04:26:10.458Z","updated_at":"2025-10-19T18:09:27.835Z","avatar_url":"https://github.com/AnubisLMS.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://about.anubis-lms.io/\"\u003e\n    \u003cimg\n      alt=\"Anubis\"\n      src=\"https://raw.githubusercontent.com/AnubisLMS/Anubis/master/docs/design-tex/figures/anubis-icon-1.png\"\n      width=\"300\"\n    /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\n\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003eAnubis LMS\u003c/h1\u003e\n  \n\u003cp\u003e\n  Distributed LMS for automating Computing Science Courses From NYU  \n\u003c/p\u003e\n\n[![Anubis Main CD/CI](https://github.com/AnubisLMS/Anubis/actions/workflows/main-ci.yml/badge.svg)](https://github.com/AnubisLMS/Anubis/actions/workflows/main-ci.yml)\n\u003cp\u003e\n  \u003ca href=\"https://github.com/AnubisLMS/Anubis/graphs/contributors\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/contributors/AnubisLMS/Anubis\" alt=\"contributors\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/last-commit/AnubisLMS/Anubis\" alt=\"last update\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/AnubisLMS/Anubis/network/members\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/forks/AnubisLMS/Anubis\" alt=\"forks\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/AnubisLMS/Anubis/stargazers\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/stars/AnubisLMS/Anubis\" alt=\"stars\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/AnubisLMS/Anubis/issues/\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/issues/AnubisLMS/Anubis\" alt=\"open issues\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/AnubisLMS/Anubis/blob/master/LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/AnubisLMS/Anubis.svg\" alt=\"license\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n  \n\u003c/div\u003e\n\n# Table of contents\n\n* [Design and Internals](#design-and-internals)\n* [Blog](#blog)\n* [What is this project?](#what-is-this-project)\n  * [Autograding](#autograding)\n  * [Anubis Cloud IDEs](#anubis-cloud-ides)\n  * [Insights](#insights)\n* [How to contribute](#how-to-contribute)\n* [Further reading](#further-reading)\n* [License](#license)\n\n\n## Design and Internals\n\nWant to know how Anubis works internally? We have a 20+ page design doc that thoroughly explains how Anubis works \nunder [our docs](./docs). Don't worry, there are a lot of pictures :)\n\n## Blog\n\nBe sure to check out our [blog](https://anubis.osiris.services/blog)!\n\n## What is this project?\n\nAnubis is a distributed LMS (learning management system) created by [John Cunniff](https://github.com/wabscale) that \nis specifically designed for automating CS courses. Anubis has been used and battle tested at [NYU Tandon](https://engineering.nyu.edu/)\nfor several semesters. The main purposes of this system is to autograde homework submissions, and provide our own Cloud IDE solution to \nsimplify the student experience.\n\n\u003e _Anubis is built by CS students for CS students_\n\n### Autograding\n\nUnder Anubis each student gets their own github repo for each assignment. When they push to their repos, Anubis sees the\npush and runs tests on their code. The results are then available to students on the Anubis website _before the deadline_\nUnder this model students can push as many times as they would like before the assignment deadline.\n\n![alt docs/img/autograde-results.png](docs/design-tex/figures/autograde-results.png)\n\n\u003e _If you would like to read more on how autograding and assignment management works from a TA/Professors\n\u003e perspective, check out our [detailed design doc](docs/README.md)_\n\n### Anubis Cloud IDEs\n\nAnubis also provides student one click Cloud IDEs that are accessible in the browser. The Cloud IDEs are optimized for\neach courses needs. Students can get a fully insulated, pre-configured, and stable IDE and linux environment in seconds.\nNo more clunky cloud VM solutions, or spending the first several weeks of the class getting Vagrant to work on hundreds\nof student laptops. Students do not need to install, or configure anything for Anubis. Everything is accessible in \nthe browser.\n\n![alt docs/img/theia-fullscreen.png](docs/design-tex/figures/theia-fullscreen.png)\n\n\u003e _If you would like a more detailed description of how the IDEs work internally, check out the \n\u003e [sections on the IDEs in our design doc](docs/README.md)_\n\n### Insights\n\nSimply by placing timestamps on thing that are already tracked like submissions and the test results for submissions, \nwe can start to both ask and answer some interesting questions about how well students are understanding certain topics.\n\n\u003e _For a more detailed description (plus visuals) of how admin insights work in Anubis, check out\n\u003e the [section on usage statistics in our design doc](/docs/README.md)_\n\n\n## How to contribute\n\n- Checkout the [project board](https://github.com/AnubisLMS/Anubis/projects) to see what you can \ncontribute\n- Checkout our [Development Guide](./docs/development_guide.md) to get up and running debugging Anubis\n- Checkout the [Contribution Guide](./.github/CONTRIBUTING.md) to see how to submit PRs and Issues\n\n\n## Further reading\n\nThe best place to get familiar with the internals of Anubis is to read our \n[very comprehensive design doc](docs/README.md). Try finding the places in the code that are referenced in the code doc.\nYou will get familiar with the layout of the project, and the internals of the system.\n\n## License\n\nAnubis is available under the [MIT license](https://opensource.org/licenses/MIT). Anubis also includes external \nlibraries that are available under a variety of licenses. See [LICENSE](./LICENSE) for the full license text.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanubislms%2Fanubis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanubislms%2Fanubis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanubislms%2Fanubis/lists"}