{"id":15425873,"url":"https://github.com/ultmaster/hypercube","last_synced_at":"2025-06-22T14:10:09.355Z","repository":{"id":83764739,"uuid":"162572371","full_name":"ultmaster/hypercube","owner":"ultmaster","description":"Professional platform for preparing problems and testing solutions","archived":false,"fork":false,"pushed_at":"2018-12-26T12:43:22.000Z","size":55,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-19T18:57:06.277Z","etag":null,"topics":["online-judge","sandbox","toolkit"],"latest_commit_sha":null,"homepage":null,"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/ultmaster.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-12-20T11:46:37.000Z","updated_at":"2023-08-09T03:01:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"c2de1a1d-e516-45c6-804c-8238ad3b9c70","html_url":"https://github.com/ultmaster/hypercube","commit_stats":{"total_commits":10,"total_committers":1,"mean_commits":10.0,"dds":0.0,"last_synced_commit":"ca61e02619fd7d75b2a454bb7034c33fb50c98e3"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ultmaster/hypercube","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ultmaster%2Fhypercube","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ultmaster%2Fhypercube/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ultmaster%2Fhypercube/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ultmaster%2Fhypercube/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ultmaster","download_url":"https://codeload.github.com/ultmaster/hypercube/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ultmaster%2Fhypercube/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261304267,"owners_count":23138301,"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":["online-judge","sandbox","toolkit"],"created_at":"2024-10-01T17:53:58.145Z","updated_at":"2025-06-22T14:10:04.339Z","avatar_url":"https://github.com/ultmaster.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hypercube\n\n## 动机\n\nHypercube 是 EOJ Polygon 的升级版，这是一个专门用来开发题目、测试代码的工具。其前身，\nPolygon，以其 bug 之多、不稳定、功能复杂而臭名昭著，而且有很多功能都没有实现，比如交互题、捆绑测试等等。\n\n根据计划，Hypercube 是一个在本地运行的工具。运行方式很像是 jupyter-notebook：需要在本地运行一个服务器，\n然后在浏览器中进行操作。我们可以使用 `git` 将本地生成好的题目传到服务器上，也可以进行版本控制。\n\n传到服务器上的题目，会被放置在题目仓库中。要使更新生效，要在 OJ 题目的页面上点击「更新题目」，才会更新题面、\n判题数据等一系列内容。所以这一更新其实与可能会发生的判题机（沙箱）重写并不相干，而且目前看来沙箱的重写计划很有可能摸了。\n\n## 要实现的 Feature\n\n* 写题面（Markdown 预览），目前看来不需要支持多份题面\n    * 但是要支持自定义 Section\n    * 可能要支持 Markdown, TeX, HTML 三种创作格式\n* 管理数据（调换顺序、快速删除、快速编辑等等）\n* 运行：\n    * 方便快速地生成输入文件\n    * 方便快速地用标程生成输出文件\n    * 对拍（暴力测试）\n    * 横向、纵向比较多份提交在各测试点上的性能\n    * 验证输入合法性\n    * 跑交互题\n    * 支持捆绑测试\n* 还是要支持那种不推荐使用的填空题（因为沙箱重写摸了）\n* 可能要支持导出成 ProblemArchive\n    * 现在设计的格式是一个 `problem.xml` 加若干文件下，和 Codeforces Polygon 更像\n\n## 开发\n\n使用 Spring Boot + React (Material-UI) 进行开发。\n\n这东西我从来没用过，所以可能会写出一些相当诡异的东西来。\n\n## 跳票\n\n跳票是不可能跳票的，顶多拖个一两年。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fultmaster%2Fhypercube","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fultmaster%2Fhypercube","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fultmaster%2Fhypercube/lists"}