{"id":15420317,"url":"https://github.com/jakebailey/ua","last_synced_at":"2026-05-04T13:37:01.852Z","repository":{"id":57553730,"uuid":"85904882","full_name":"jakebailey/ua","owner":"jakebailey","description":"Docker container powered terminal assignments","archived":false,"fork":false,"pushed_at":"2019-11-21T06:55:40.000Z","size":13546,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-19T16:26:26.663Z","etag":null,"topics":["containers","docker","education","linux","terminal"],"latest_commit_sha":null,"homepage":"","language":"Go","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/jakebailey.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-03-23T03:54:24.000Z","updated_at":"2022-10-11T18:06:58.000Z","dependencies_parsed_at":"2022-09-26T18:50:55.608Z","dependency_job_id":null,"html_url":"https://github.com/jakebailey/ua","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jakebailey/ua","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakebailey%2Fua","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakebailey%2Fua/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakebailey%2Fua/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakebailey%2Fua/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jakebailey","download_url":"https://codeload.github.com/jakebailey/ua/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakebailey%2Fua/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284122919,"owners_count":26951149,"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-11-12T02:00:06.336Z","response_time":59,"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":["containers","docker","education","linux","terminal"],"created_at":"2024-10-01T17:28:56.521Z","updated_at":"2025-11-12T22:30:30.079Z","avatar_url":"https://github.com/jakebailey.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# uAssign\n\nuAssign is a system to manage *NIX terminal assignments. It uses Docker\ncontainers to build real, interactive environments to an instructor's\nspecification, proxying a terminal over WebSockets to a user. The full\nlifecycle of containers is managed, including the ability for users to\ndisconnect and reconnect with their state preserved.\n\nMore information about this project can be found in my\n[master's thesis](https://www.ideals.illinois.edu/handle/2142/101068),\nas well as in the `docs` directory.\n\n\n## Developer notes\n\nThis repo has switched to Go modules to make this project more accessible,\nas it can now be cloned and built outside of `$GOPATH`. When run via\ndocker-compose, volumes will be created to store downloaded modules and\nGo's build cache.\n\nUse the `gomod.sh` script to properly update `go.mod`. This project uses\nDocker libraries pretty heavily, the most important of which are not yet\ncompatible with Go modules. `gomod.sh` will update the more troubled\nDocker libraries to `master`, replace `go.uuid` with the gofrs fork,\nupdate the rest of the libraries normally.\n\nNote that `kallax gen` doesn't work outside of `$GOPATH`, so `go generate`\nshould not be run without cloning the repo into `$GOPATH` first when generating\n`models/kallax.go`. This will need to be done until the upstream fixes it\n(unlikely, as they seem to have dropped the project), or this project switches\nto another ORM.\n\nTODOs relating to Go modules:\n\n- Switch from the unmaintained `mattes/migrate` to the maintained\n    `golang-migrate/migrate`; was blocked by needing modules for versioned\n    import paths.\n- Run all `go generate` tooling with `gobin`/`tools.go` for versioning.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakebailey%2Fua","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjakebailey%2Fua","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakebailey%2Fua/lists"}