{"id":20303624,"url":"https://github.com/rsharifnasab/dj","last_synced_at":"2025-04-11T13:44:31.351Z","repository":{"id":41448509,"uuid":"383733038","full_name":"rsharifnasab/DJ","owner":"rsharifnasab","description":"Distributed code Judge","archived":false,"fork":false,"pushed_at":"2024-02-27T14:33:22.000Z","size":2164,"stargazers_count":35,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-25T10:03:21.723Z","etag":null,"topics":["automation","judge"],"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/rsharifnasab.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-07T08:48:30.000Z","updated_at":"2024-08-26T14:30:18.000Z","dependencies_parsed_at":"2023-11-21T08:27:17.736Z","dependency_job_id":"311406cc-8398-4f56-ab3d-9ad2b4eb98d4","html_url":"https://github.com/rsharifnasab/DJ","commit_stats":{"total_commits":149,"total_committers":2,"mean_commits":74.5,"dds":0.006711409395973145,"last_synced_commit":"172f87f1c8568674dc06cfc5eb2ed2b6ec1c1d56"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsharifnasab%2FDJ","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsharifnasab%2FDJ/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsharifnasab%2FDJ/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsharifnasab%2FDJ/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rsharifnasab","download_url":"https://codeload.github.com/rsharifnasab/DJ/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248410908,"owners_count":21098795,"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":["automation","judge"],"created_at":"2024-11-14T16:39:39.290Z","updated_at":"2025-04-11T13:44:31.326Z","avatar_url":"https://github.com/rsharifnasab.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DJ\nDJ stands for Distributed Judge. A tool that many TAs wish they would have. This would provide more flexibility over normal judges such as [Quera](https://quera.ir)\n\n\n\n## Badges\n\n[![MIT License](https://img.shields.io/badge/License-MIT-green.svg?style=for-the-badge)](https://choosealicense.com/licenses/mit/)\n![Languages count](https://img.shields.io/github/languages/count/rsharifnasab/DJ?style=for-the-badge)\n![Commit Freq](https://img.shields.io/github/commit-activity/w/rsharifnasab/DJ?style=for-the-badge)\n\n![CI status](https://github.com/rsharifnasab/DJ/actions/workflows/test.yml/badge.svg?)\n\n## Features\n\n- Judges student codes locally\n- The most flexible judge out there\n- Checks out source codes against illegal usage of language constructs.\n- Doesn't need a server\n\n\n## Acknowledgements\n\n - [Dr Mojtaba Vahidi, My Kind Supervisor](http://facultymembers.sbu.ac.ir/vahidi/)\n - [Dr Sadegh Aliakbari, My Referee](http://facultymembers.sbu.ac.ir/aliakbary/)\n - [Amir Arsalan San'ati, Who gave me the idea](https://github.com/Amirarsalan-sn)\n \n\n\n## Installation\n\n### Prerequisites\n+ `Golang` should be installed on your system\n+ Also there is heavy usage of `Bash`\n+ For running tests you should have `python3` and `gcc` and `java` in your `PATH`\n\n\n### How to Install\n\nOfficial way to use this repository is to clone the repository and run the \"Distribute script\"\n\nYou can also install the binary file like this (which is not recommended because it does not contain examples)\n```bash\n  go install \"github.com/rsharifnasab/DJ@latest\"\n```\n\nAnd then use binary file like this:\n  \n```bash\n  DJ --help \n```\n    \n## Distribute for students\n\nTo Distribute the project run\n\n```bash\n  ./scripts/dsitribute.sh\n```\n\nThen the distribution zip would be in `./bin/` directory.\n\n\n## Running Tests\n\nTo run tests, run the following command\n\n```bash\n  go test ./... -cover  -count 1\n```\n\n\n## Documentation\n\nExploration on various software and library choices is Documented [here](https://github.com/rsharifnasab/DJ/tree/master/docs)\n\n\n## FAQ\n\n#### Do I need this as a student?\n\nNo you don't. The course TA should clone this repository and create questions and then distribute questions alongside the judge and the binary for you.\n\n#### Do I Have to learn Go before using this project?\n\nNo you don't. The flexible part is not programmed in Go, but instead you need a bit of bash script knowledge to tune judges and develop creative questions.\n\n\n\n\n## Used By\n\nThis project is used by the following courses:\n\n- Shahid Beheshti university, Advanced programming (WIP at that time)\n- Sharif University, Compiler course for CE students\n\n\n\n## Related\n\nHere are some related projects\n\n- [TA utils](https://github.com/rsharifnasab/ta_utils): another repository for TAs which contains small and useful scripts.\n- [Sharif Judge](https://github.com/mjnaderi/Sharif-Judge): A free and open source online judge system for programming courses\n\n## Roadmap\n\n- Better Windows support\n- Provide learning resources for Bash script\n- Better API for source code checks\n- Save student scores on a Block Chain\n\n\n## License\n\n[MIT](https://choosealicense.com/licenses/mit/)\n\n\n## Support\n\nFor support, email rsharifnasab@gmail.com.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frsharifnasab%2Fdj","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frsharifnasab%2Fdj","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frsharifnasab%2Fdj/lists"}