From a532fcff9f283864bd4147fe9e197ed01c76a582 Mon Sep 17 00:00:00 2001 From: Nasreddine Bac Ali Date: Fri, 8 Oct 2021 00:56:01 +0200 Subject: [PATCH] chore: refactor code and implement admin part of the clarification feature --- .dockerignore | 15 +- .github/workflows/build.yaml | 3 + .prettierrc | 4 + .run/client_start.run.xml | 14 + .run/judge_start.run.xml | 12 + .run/server_start.run.xml | 12 + client/.prettierrc | 12 - client/src/core/stores/ClarificationsStore.ts | 32 - client/src/pages/admin/AdminNavbar.tsx | 44 - .../clarifications/ClarificationsList.tsx | 30 - .../admin/views/problems/ProblemView.tsx | 77 -- client/src/pages/public/views/HomeView.tsx | 8 - client/src/pages/shared/chat-box/ChatBox.tsx | 33 - .../shared/chat-box/ChatBoxMessageList.tsx | 33 - .../pages/team/views/ClarificationsList.tsx | 55 -- docker/judge/Dockerfile | 2 +- docker/server/Dockerfile | 4 +- judge/.prettierrc | 5 - package.json | 16 +- {client => projects/client}/.eslintrc.js | 0 {client => projects/client}/.gitignore | 0 projects/client/.prettierrc | 4 + {client => projects/client}/.snyk | 0 {client => projects/client}/README.md | 0 {client => projects/client}/craco.config.js | 0 {client => projects/client}/package.json | 2 +- .../client}/public/favicon.ico | Bin .../client}/public/images/logo.png | Bin {client => projects/client}/public/index.html | 0 .../client}/public/logo192.png | Bin .../client}/public/logo512.png | Bin .../client}/public/manifest.json | 0 {client => projects/client}/public/robots.txt | 0 {client => projects/client}/src/App.tsx | 0 .../client}/src/core/helpers.ts | 54 +- .../models/clarification-message.model.ts | 0 .../src/core/models/clarification.model.ts | 0 .../src/core/models/contest-problem.model.ts | 0 .../client}/src/core/models/contest.model.ts | 0 .../src/core/models/executable.model.ts | 0 .../src/core/models/file-content.model.ts | 0 .../client}/src/core/models/file.model.ts | 0 .../client}/src/core/models/index.ts | 0 .../src/core/models/judge-host.model.ts | 0 .../src/core/models/judging-run.model.ts | 0 .../client}/src/core/models/judging.model.ts | 0 .../client}/src/core/models/language.model.ts | 0 .../client}/src/core/models/problem.model.ts | 0 .../client}/src/core/models/role.model.ts | 0 .../src/core/models/score-cache.model.ts | 0 .../src/core/models/submission.model.ts | 0 .../src/core/models/team-category.model.ts | 0 .../client}/src/core/models/team.model.ts | 0 .../client}/src/core/models/testcase.model.ts | 0 .../client/src/core}/models/user.model.ts | 2 +- .../src/core/stores/BaseEntityStore.ts | 0 .../src/core/stores/ClarificationsStore.ts | 57 ++ .../client}/src/core/stores/ContestsStore.ts | 0 .../src/core/stores/ExecutablesStore.ts | 0 .../src/core/stores/JudgeHostsStore.ts | 0 .../client}/src/core/stores/LanguagesStore.ts | 0 .../client}/src/core/stores/ProblemsStore.ts | 0 .../client}/src/core/stores/PublicStore.ts | 10 +- .../client}/src/core/stores/RootStore.ts | 13 +- .../src/core/stores/SubmissionsStore.ts | 4 +- .../src/core/stores/TeamCategoriesStore.ts | 0 .../client}/src/core/stores/TeamStore.ts | 2 +- .../client}/src/core/stores/TeamsStore.ts | 0 .../client}/src/core/stores/TestcasesStore.ts | 2 +- .../client}/src/core/stores/ToastsStore.ts | 0 .../client}/src/core/stores/TooltipStore.ts | 0 .../client}/src/core/stores/UsersStore.ts | 0 {client => projects/client}/src/core/types.ts | 0 .../client}/src/core/utils/http-client.ts | 2 +- {client => projects/client}/src/index.scss | 0 {client => projects/client}/src/index.tsx | 2 +- .../client}/src/pages/admin/AdminLayout.tsx | 17 +- .../client/src/pages/admin/AdminNavbar.tsx | 46 + .../client}/src/pages/admin/AdminSidebar.tsx | 8 +- .../src/pages/admin/views/Dashboard.tsx | 111 ++- .../clarifications/ClarificationsList.tsx | 194 +++++ .../admin/views/contests/ContestForm.tsx | 16 +- .../admin/views/contests/ContestsList.tsx | 0 .../views/executables/ExecutableForm.tsx | 0 .../views/executables/ExecutablesList.tsx | 0 .../views/judge-hosts/JudgeHostLogsViewer.tsx | 0 .../views/judge-hosts/JudgeHostsList.tsx | 0 .../admin/views/languages/LanguageForm.tsx | 0 .../admin/views/languages/LanguagesList.tsx | 0 .../admin/views/problems/ProblemForm.tsx | 2 +- .../admin/views/problems/ProblemView.tsx | 84 ++ .../admin/views/problems/ProblemsList.tsx | 0 .../testcases/TestcaseBulkUploader.tsx | 2 +- .../views/problems/testcases/TestcaseForm.tsx | 2 +- .../problems/testcases/TestcasesList.tsx | 2 +- .../views/submissions/SubmissionView.tsx | 2 +- .../submissions/SubmissionViewDetails.tsx | 10 +- .../submissions/SubmissionViewHeader.tsx | 0 .../submissions/SubmissionViewJudgingRuns.tsx | 4 +- .../views/submissions/SubmissionsFilters.tsx | 2 +- .../views/submissions/SubmissionsList.tsx | 2 +- .../submissions/SubmissionsListPagination.tsx | 6 +- .../team-category/TeamCategoriesList.tsx | 0 .../views/team-category/TeamCategoryForm.tsx | 0 .../src/pages/admin/views/teams/TeamForm.tsx | 6 +- .../src/pages/admin/views/teams/TeamsList.tsx | 0 .../src/pages/admin/views/users/UserForm.tsx | 0 .../src/pages/admin/views/users/UsersList.tsx | 8 - .../client}/src/pages/public/PublicLayout.tsx | 0 .../client}/src/pages/public/PublicNavbar.tsx | 2 + .../src/pages/public/views/HomeView.tsx | 15 + .../pages/shared/ActiveContestSelector.tsx | 2 +- .../client}/src/pages/shared/CodeEditor.tsx | 0 .../src/pages/shared/ContestCountdown.tsx | 0 .../src/pages/shared/DarkModeSwitcher.tsx | 2 +- .../client}/src/pages/shared/DiffViewer.tsx | 0 .../client}/src/pages/shared/Login.tsx | 0 .../client}/src/pages/shared/Logout.tsx | 0 .../client}/src/pages/shared/NavBar.tsx | 2 +- .../src/pages/shared/NoActiveContest.tsx | 0 .../client}/src/pages/shared/ProblemSet.tsx | 6 +- .../client}/src/pages/shared/Scoreboard.tsx | 156 ++-- .../client}/src/pages/shared/Spinner.tsx | 2 +- .../src/pages/shared/ToastContainer.tsx | 2 +- .../src/pages/shared/chat-box/ChatBox.tsx | 62 ++ .../pages/shared/chat-box/ChatBoxHeader.tsx | 7 +- .../pages/shared/chat-box/ChatBoxInput.tsx | 31 +- .../shared/chat-box/ChatBoxMessageList.tsx | 43 + .../src/pages/shared/data-table/DataTable.tsx | 2 +- .../shared/data-table/DataTableActionBar.tsx | 2 +- .../pages/shared/data-table/DataTableBody.tsx | 8 +- .../pages/shared/dialogs/ChatBoxDialog.tsx | 16 + .../pages/shared/dialogs/CodeEditorDialog.tsx | 0 .../pages/shared/dialogs/DiffViewerDialog.tsx | 0 .../src/pages/shared/dialogs/FormDialog.tsx | 4 +- .../pages/shared/dialogs/PdfViewerDialog.tsx | 0 .../pages/shared/dialogs/RunContentDialog.tsx | 0 .../src/pages/shared/dialogs/SimpleDialog.tsx | 6 +- .../shared/dialogs/TestcaseContentDialog.tsx | 0 .../client}/src/pages/shared/dialogs/index.ts | 1 + .../pages/shared/form-controls/BasicInput.tsx | 4 +- .../shared/form-controls/CheckBoxInput.tsx | 0 .../shared/form-controls/DateTimeInput.tsx | 14 +- .../shared/form-controls/DropDownInput.tsx | 38 +- .../pages/shared/form-controls/FileInput.tsx | 0 .../src/pages/shared/form-controls/Label.tsx | 2 +- .../shared/form-controls/NumberInput.tsx | 0 .../pages/shared/form-controls/TextInput.tsx | 0 .../shared/form-controls/TextareaInput.tsx | 0 .../src/pages/shared/form-controls/types.ts | 0 .../src/pages/shared/tooltip/Tooltip.tsx | 0 .../pages/shared/tooltip/TooltipContainer.tsx | 2 +- .../client}/src/pages/team/TeamLayout.tsx | 0 .../client}/src/pages/team/TeamNavbar.tsx | 4 +- .../pages/team/views/ClarificationsList.tsx | 69 ++ .../client}/src/pages/team/views/HomeView.tsx | 12 +- .../src/pages/team/views/SubmissionsList.tsx | 2 +- .../src/pages/team/views/SubmitForm.tsx | 2 +- .../client}/src/react-app-env.d.ts | 0 {client => projects/client}/src/setupTests.ts | 0 .../client}/tailwind.config.js | 0 {client => projects/client}/tsconfig.json | 0 {client => projects/client}/yarn.lock | 0 {judge => projects/judge}/.env | 0 {judge => projects/judge}/.eslintrc.js | 0 {judge => projects/judge}/.gitignore | 0 {judge => projects/judge}/README.md | 0 {judge => projects/judge}/assets/guard.cpp | 0 {judge => projects/judge}/assets/testlib.h | 0 {judge => projects/judge}/nest-cli.json | 0 {judge => projects/judge}/nodemon.json | 0 {judge => projects/judge}/package.json | 5 +- {judge => projects/judge}/src/app.module.ts | 0 {judge => projects/judge}/src/config.ts | 0 .../judge}/src/helpers/index.ts | 0 .../judge}/src/helpers/spinner.ts | 0 .../judge}/src/helpers/submission-helper.ts | 0 .../judge}/src/http/http.client.ts | 0 {judge => projects/judge}/src/http/index.ts | 0 .../judge}/src/judging-steps/compiler.ts | 16 +- .../judge}/src/judging-steps/executor.ts | 14 +- .../judge}/src/judging-steps/index.ts | 0 .../judge}/src/judging-steps/initializer.ts | 4 +- {judge => projects/judge}/src/logger/index.ts | 0 .../judge}/src/logger/judge.logger.ts | 2 +- {judge => projects/judge}/src/main.ts | 0 .../src/models/contest-problem.model.ts | 0 .../judge}/src/models/contest.model.ts | 0 .../judge}/src/models/executable.model.ts | 0 .../judge}/src/models/file-content.model.ts | 0 .../judge}/src/models/file.model.ts | 0 {judge => projects/judge}/src/models/index.ts | 0 .../judge}/src/models/judge-host.model.ts | 0 .../judge}/src/models/judging-run.model.ts | 0 .../judge}/src/models/judging.model.ts | 0 .../judge}/src/models/language.model.ts | 0 .../judge}/src/models/problem.model.ts | 0 .../judge}/src/models/role.model.ts | 0 .../judge}/src/models/submission.model.ts | 0 .../judge}/src/models/team-category.model.ts | 0 .../judge}/src/models/team.model.ts | 0 .../judge}/src/models/testcase.model.ts | 0 .../judge/src}/models/user.model.ts | 0 .../judge}/src/services/docker.service.ts | 6 +- .../judge}/src/services/index.ts | 0 .../judge}/src/services/judging.service.ts | 4 +- .../judge}/src/services/socket.service.ts | 0 .../judge}/src/services/system.service.ts | 4 +- .../judge}/test/app.e2e-spec.ts | 7 +- {judge => projects/judge}/test/jest-e2e.json | 0 {judge => projects/judge}/tsconfig.build.json | 0 {judge => projects/judge}/tsconfig.json | 0 {judge => projects/judge}/yarn.lock | 10 - {server => projects/server}/.eslintrc.js | 0 {server => projects/server}/.gitignore | 0 {server => projects/server}/.snyk | 0 {server => projects/server}/README.md | 0 .../server}/docker-compose.dev.yml | 0 {server => projects/server}/nest-cli.json | 0 {server => projects/server}/package.json | 5 +- .../server}/src/app.controller.ts | 2 +- {server => projects/server}/src/app.module.ts | 0 .../server}/src/app.service.ts | 2 +- .../server}/src/core/config.ts | 0 .../server}/src/core/extended-repository.ts | 8 +- .../server}/src/core/log.decorator.ts | 6 +- .../server}/src/core/logger.factory.ts | 0 .../server}/src/core/roles.decorator.ts | 0 .../server}/src/core/session.ts | 0 .../server}/src/core/socket-io.adapter.ts | 12 +- {server => projects/server}/src/core/utils.ts | 2 +- .../entities/clarification-message.entity.ts | 0 .../src/entities/clarification.entity.ts | 0 .../src/entities/contest-problem.entity.ts | 0 .../server}/src/entities/contest.entity.ts | 0 .../server}/src/entities/executable.entity.ts | 0 .../src/entities/file-content.entity.ts | 0 .../server}/src/entities/file.entity.ts | 0 .../server}/src/entities/index.ts | 0 .../server}/src/entities/judge-host.entity.ts | 0 .../src/entities/judging-run.entity.ts | 0 .../server}/src/entities/judging.entity.ts | 0 .../server}/src/entities/language.entity.ts | 0 .../server}/src/entities/problem.entity.ts | 0 .../server}/src/entities/role.entity.ts | 0 .../src/entities/score-cache.entity.ts | 0 .../server}/src/entities/submission.entity.ts | 0 .../src/entities/team-category.entity.ts | 0 .../server}/src/entities/team.entity.ts | 0 .../server}/src/entities/testcase.entity.ts | 0 .../server}/src/entities/user.entity.ts | 0 .../src/features/auth/auth.controller.ts | 0 .../server}/src/features/auth/auth.module.ts | 0 .../server}/src/features/auth/auth.service.ts | 2 +- .../src/features/auth/local.strategy.ts | 0 .../src/features/auth/session.serializer.ts | 0 .../clarifications/clarifications.module.ts | 0 .../clarifications/clarifications.service.ts | 29 +- .../contests/contest-problems.service.ts | 2 +- .../features/contests/contests.controller.ts | 64 +- .../src/features/contests/contests.module.ts | 0 .../src/features/contests/contests.service.ts | 10 +- .../executables/executables.controller.ts | 0 .../executables/executables.module.ts | 0 .../executables/executables.service.ts | 10 +- .../src/features/files/files.module.ts | 0 .../src/features/files/files.service.ts | 4 +- .../judge-hosts/judge-hosts.controller.ts | 14 +- .../judge-hosts/judge-hosts.module.ts | 0 .../judge-hosts/judge-hosts.service.ts | 4 +- .../judge-hosts/judging-runs.service.ts | 4 +- .../features/judge-hosts/judgings.service.ts | 8 +- .../languages/languages.controller.ts | 4 +- .../features/languages/languages.module.ts | 0 .../features/languages/languages.service.ts | 6 +- .../features/problems/problems.controller.ts | 2 +- .../src/features/problems/problems.module.ts | 0 .../src/features/problems/problems.service.ts | 8 +- .../src/features/public/public.controller.ts | 6 +- .../src/features/public/public.module.ts | 0 .../scoreboard/score-cache.service.ts | 2 +- .../features/scoreboard/scoreboard.module.ts | 0 .../features/scoreboard/scoreboard.service.ts | 12 +- .../submissions/submissions.controller.ts | 26 +- .../submissions/submissions.module.ts | 0 .../submissions/submissions.service.ts | 12 +- .../team-categories.controller.ts | 0 .../team-categories/team-categories.module.ts | 0 .../team-categories.service.ts | 4 +- .../src/features/teams/teams.controller.ts | 0 .../src/features/teams/teams.module.ts | 0 .../src/features/teams/teams.service.ts | 8 +- .../testcases/testcases.controller.ts | 2 +- .../features/testcases/testcases.module.ts | 0 .../features/testcases/testcases.service.ts | 4 +- .../src/features/users/roles.controller.ts | 0 .../src/features/users/roles.service.ts | 2 +- .../src/features/users/users.controller.ts | 2 +- .../src/features/users/users.module.ts | 0 .../src/features/users/users.service.ts | 8 +- .../features/websocket/websocket.gateway.ts | 31 +- .../features/websocket/websocket.module.ts | 3 +- .../server}/src/guards/authenticated.guard.ts | 0 .../server}/src/guards/index.ts | 0 .../server}/src/guards/login.guard.ts | 2 +- .../server}/src/guards/roles.guard.ts | 0 {server => projects/server}/src/main.ts | 4 +- .../server}/test/app.e2e-spec.ts | 7 +- .../server}/test/jest-e2e.json | 0 .../server}/tsconfig.build.json | 0 {server => projects/server}/tsconfig.json | 0 {server => projects/server}/yarn.lock | 10 - server/.prettierrc | 5 - yarn.lock | 816 +++++++++++++++++- 314 files changed, 2029 insertions(+), 826 deletions(-) create mode 100644 .prettierrc create mode 100644 .run/client_start.run.xml create mode 100644 .run/judge_start.run.xml create mode 100644 .run/server_start.run.xml delete mode 100644 client/.prettierrc delete mode 100644 client/src/core/stores/ClarificationsStore.ts delete mode 100644 client/src/pages/admin/AdminNavbar.tsx delete mode 100644 client/src/pages/admin/views/clarifications/ClarificationsList.tsx delete mode 100644 client/src/pages/admin/views/problems/ProblemView.tsx delete mode 100644 client/src/pages/public/views/HomeView.tsx delete mode 100644 client/src/pages/shared/chat-box/ChatBox.tsx delete mode 100644 client/src/pages/shared/chat-box/ChatBoxMessageList.tsx delete mode 100644 client/src/pages/team/views/ClarificationsList.tsx delete mode 100644 judge/.prettierrc rename {client => projects/client}/.eslintrc.js (100%) rename {client => projects/client}/.gitignore (100%) create mode 100644 projects/client/.prettierrc rename {client => projects/client}/.snyk (100%) rename {client => projects/client}/README.md (100%) rename {client => projects/client}/craco.config.js (100%) rename {client => projects/client}/package.json (98%) rename {client => projects/client}/public/favicon.ico (100%) rename {client => projects/client}/public/images/logo.png (100%) rename {client => projects/client}/public/index.html (100%) rename {client => projects/client}/public/logo192.png (100%) rename {client => projects/client}/public/logo512.png (100%) rename {client => projects/client}/public/manifest.json (100%) rename {client => projects/client}/public/robots.txt (100%) rename {client => projects/client}/src/App.tsx (100%) rename {client => projects/client}/src/core/helpers.ts (80%) rename {client => projects/client}/src/core/models/clarification-message.model.ts (100%) rename {client => projects/client}/src/core/models/clarification.model.ts (100%) rename {client => projects/client}/src/core/models/contest-problem.model.ts (100%) rename {client => projects/client}/src/core/models/contest.model.ts (100%) rename {client => projects/client}/src/core/models/executable.model.ts (100%) rename {client => projects/client}/src/core/models/file-content.model.ts (100%) rename {client => projects/client}/src/core/models/file.model.ts (100%) rename {client => projects/client}/src/core/models/index.ts (100%) rename {client => projects/client}/src/core/models/judge-host.model.ts (100%) rename {client => projects/client}/src/core/models/judging-run.model.ts (100%) rename {client => projects/client}/src/core/models/judging.model.ts (100%) rename {client => projects/client}/src/core/models/language.model.ts (100%) rename {client => projects/client}/src/core/models/problem.model.ts (100%) rename {client => projects/client}/src/core/models/role.model.ts (100%) rename {client => projects/client}/src/core/models/score-cache.model.ts (100%) rename {client => projects/client}/src/core/models/submission.model.ts (100%) rename {client => projects/client}/src/core/models/team-category.model.ts (100%) rename {client => projects/client}/src/core/models/team.model.ts (100%) rename {client => projects/client}/src/core/models/testcase.model.ts (100%) rename {judge/src => projects/client/src/core}/models/user.model.ts (94%) rename {client => projects/client}/src/core/stores/BaseEntityStore.ts (100%) create mode 100644 projects/client/src/core/stores/ClarificationsStore.ts rename {client => projects/client}/src/core/stores/ContestsStore.ts (100%) rename {client => projects/client}/src/core/stores/ExecutablesStore.ts (100%) rename {client => projects/client}/src/core/stores/JudgeHostsStore.ts (100%) rename {client => projects/client}/src/core/stores/LanguagesStore.ts (100%) rename {client => projects/client}/src/core/stores/ProblemsStore.ts (100%) rename {client => projects/client}/src/core/stores/PublicStore.ts (96%) rename {client => projects/client}/src/core/stores/RootStore.ts (95%) rename {client => projects/client}/src/core/stores/SubmissionsStore.ts (98%) rename {client => projects/client}/src/core/stores/TeamCategoriesStore.ts (100%) rename {client => projects/client}/src/core/stores/TeamStore.ts (95%) rename {client => projects/client}/src/core/stores/TeamsStore.ts (100%) rename {client => projects/client}/src/core/stores/TestcasesStore.ts (98%) rename {client => projects/client}/src/core/stores/ToastsStore.ts (100%) rename {client => projects/client}/src/core/stores/TooltipStore.ts (100%) rename {client => projects/client}/src/core/stores/UsersStore.ts (100%) rename {client => projects/client}/src/core/types.ts (100%) rename {client => projects/client}/src/core/utils/http-client.ts (97%) rename {client => projects/client}/src/index.scss (100%) rename {client => projects/client}/src/index.tsx (92%) rename {client => projects/client}/src/pages/admin/AdminLayout.tsx (84%) create mode 100644 projects/client/src/pages/admin/AdminNavbar.tsx rename {client => projects/client}/src/pages/admin/AdminSidebar.tsx (94%) rename {client => projects/client}/src/pages/admin/views/Dashboard.tsx (50%) create mode 100644 projects/client/src/pages/admin/views/clarifications/ClarificationsList.tsx rename {client => projects/client}/src/pages/admin/views/contests/ContestForm.tsx (98%) rename {client => projects/client}/src/pages/admin/views/contests/ContestsList.tsx (100%) rename {client => projects/client}/src/pages/admin/views/executables/ExecutableForm.tsx (100%) rename {client => projects/client}/src/pages/admin/views/executables/ExecutablesList.tsx (100%) rename {client => projects/client}/src/pages/admin/views/judge-hosts/JudgeHostLogsViewer.tsx (100%) rename {client => projects/client}/src/pages/admin/views/judge-hosts/JudgeHostsList.tsx (100%) rename {client => projects/client}/src/pages/admin/views/languages/LanguageForm.tsx (100%) rename {client => projects/client}/src/pages/admin/views/languages/LanguagesList.tsx (100%) rename {client => projects/client}/src/pages/admin/views/problems/ProblemForm.tsx (99%) create mode 100644 projects/client/src/pages/admin/views/problems/ProblemView.tsx rename {client => projects/client}/src/pages/admin/views/problems/ProblemsList.tsx (100%) rename {client => projects/client}/src/pages/admin/views/problems/testcases/TestcaseBulkUploader.tsx (99%) rename {client => projects/client}/src/pages/admin/views/problems/testcases/TestcaseForm.tsx (99%) rename {client => projects/client}/src/pages/admin/views/problems/testcases/TestcasesList.tsx (99%) rename {client => projects/client}/src/pages/admin/views/submissions/SubmissionView.tsx (98%) rename {client => projects/client}/src/pages/admin/views/submissions/SubmissionViewDetails.tsx (96%) rename {client => projects/client}/src/pages/admin/views/submissions/SubmissionViewHeader.tsx (100%) rename {client => projects/client}/src/pages/admin/views/submissions/SubmissionViewJudgingRuns.tsx (99%) rename {client => projects/client}/src/pages/admin/views/submissions/SubmissionsFilters.tsx (97%) rename {client => projects/client}/src/pages/admin/views/submissions/SubmissionsList.tsx (99%) rename {client => projects/client}/src/pages/admin/views/submissions/SubmissionsListPagination.tsx (97%) rename {client => projects/client}/src/pages/admin/views/team-category/TeamCategoriesList.tsx (100%) rename {client => projects/client}/src/pages/admin/views/team-category/TeamCategoryForm.tsx (100%) rename {client => projects/client}/src/pages/admin/views/teams/TeamForm.tsx (94%) rename {client => projects/client}/src/pages/admin/views/teams/TeamsList.tsx (100%) rename {client => projects/client}/src/pages/admin/views/users/UserForm.tsx (100%) rename {client => projects/client}/src/pages/admin/views/users/UsersList.tsx (89%) rename {client => projects/client}/src/pages/public/PublicLayout.tsx (100%) rename {client => projects/client}/src/pages/public/PublicNavbar.tsx (94%) create mode 100644 projects/client/src/pages/public/views/HomeView.tsx rename {client => projects/client}/src/pages/shared/ActiveContestSelector.tsx (99%) rename {client => projects/client}/src/pages/shared/CodeEditor.tsx (100%) rename {client => projects/client}/src/pages/shared/ContestCountdown.tsx (100%) rename {client => projects/client}/src/pages/shared/DarkModeSwitcher.tsx (99%) rename {client => projects/client}/src/pages/shared/DiffViewer.tsx (100%) rename {client => projects/client}/src/pages/shared/Login.tsx (100%) rename {client => projects/client}/src/pages/shared/Logout.tsx (100%) rename {client => projects/client}/src/pages/shared/NavBar.tsx (99%) rename {client => projects/client}/src/pages/shared/NoActiveContest.tsx (100%) rename {client => projects/client}/src/pages/shared/ProblemSet.tsx (99%) rename {client => projects/client}/src/pages/shared/Scoreboard.tsx (69%) rename {client => projects/client}/src/pages/shared/Spinner.tsx (98%) rename {client => projects/client}/src/pages/shared/ToastContainer.tsx (99%) create mode 100644 projects/client/src/pages/shared/chat-box/ChatBox.tsx rename {client => projects/client}/src/pages/shared/chat-box/ChatBoxHeader.tsx (91%) rename {client => projects/client}/src/pages/shared/chat-box/ChatBoxInput.tsx (57%) create mode 100644 projects/client/src/pages/shared/chat-box/ChatBoxMessageList.tsx rename {client => projects/client}/src/pages/shared/data-table/DataTable.tsx (97%) rename {client => projects/client}/src/pages/shared/data-table/DataTableActionBar.tsx (88%) rename {client => projects/client}/src/pages/shared/data-table/DataTableBody.tsx (96%) create mode 100644 projects/client/src/pages/shared/dialogs/ChatBoxDialog.tsx rename {client => projects/client}/src/pages/shared/dialogs/CodeEditorDialog.tsx (100%) rename {client => projects/client}/src/pages/shared/dialogs/DiffViewerDialog.tsx (100%) rename {client => projects/client}/src/pages/shared/dialogs/FormDialog.tsx (98%) rename {client => projects/client}/src/pages/shared/dialogs/PdfViewerDialog.tsx (100%) rename {client => projects/client}/src/pages/shared/dialogs/RunContentDialog.tsx (100%) rename {client => projects/client}/src/pages/shared/dialogs/SimpleDialog.tsx (96%) rename {client => projects/client}/src/pages/shared/dialogs/TestcaseContentDialog.tsx (100%) rename {client => projects/client}/src/pages/shared/dialogs/index.ts (88%) rename {client => projects/client}/src/pages/shared/form-controls/BasicInput.tsx (99%) rename {client => projects/client}/src/pages/shared/form-controls/CheckBoxInput.tsx (100%) rename {client => projects/client}/src/pages/shared/form-controls/DateTimeInput.tsx (99%) rename {client => projects/client}/src/pages/shared/form-controls/DropDownInput.tsx (94%) rename {client => projects/client}/src/pages/shared/form-controls/FileInput.tsx (100%) rename {client => projects/client}/src/pages/shared/form-controls/Label.tsx (98%) rename {client => projects/client}/src/pages/shared/form-controls/NumberInput.tsx (100%) rename {client => projects/client}/src/pages/shared/form-controls/TextInput.tsx (100%) rename {client => projects/client}/src/pages/shared/form-controls/TextareaInput.tsx (100%) rename {client => projects/client}/src/pages/shared/form-controls/types.ts (100%) rename {client => projects/client}/src/pages/shared/tooltip/Tooltip.tsx (100%) rename {client => projects/client}/src/pages/shared/tooltip/TooltipContainer.tsx (98%) rename {client => projects/client}/src/pages/team/TeamLayout.tsx (100%) rename {client => projects/client}/src/pages/team/TeamNavbar.tsx (97%) create mode 100644 projects/client/src/pages/team/views/ClarificationsList.tsx rename {client => projects/client}/src/pages/team/views/HomeView.tsx (66%) rename {client => projects/client}/src/pages/team/views/SubmissionsList.tsx (99%) rename {client => projects/client}/src/pages/team/views/SubmitForm.tsx (99%) rename {client => projects/client}/src/react-app-env.d.ts (100%) rename {client => projects/client}/src/setupTests.ts (100%) rename {client => projects/client}/tailwind.config.js (100%) rename {client => projects/client}/tsconfig.json (100%) rename {client => projects/client}/yarn.lock (100%) rename {judge => projects/judge}/.env (100%) rename {judge => projects/judge}/.eslintrc.js (100%) rename {judge => projects/judge}/.gitignore (100%) rename {judge => projects/judge}/README.md (100%) rename {judge => projects/judge}/assets/guard.cpp (100%) rename {judge => projects/judge}/assets/testlib.h (100%) rename {judge => projects/judge}/nest-cli.json (100%) rename {judge => projects/judge}/nodemon.json (100%) rename {judge => projects/judge}/package.json (93%) rename {judge => projects/judge}/src/app.module.ts (100%) rename {judge => projects/judge}/src/config.ts (100%) rename {judge => projects/judge}/src/helpers/index.ts (100%) rename {judge => projects/judge}/src/helpers/spinner.ts (100%) rename {judge => projects/judge}/src/helpers/submission-helper.ts (100%) rename {judge => projects/judge}/src/http/http.client.ts (100%) rename {judge => projects/judge}/src/http/index.ts (100%) rename {judge => projects/judge}/src/judging-steps/compiler.ts (94%) rename {judge => projects/judge}/src/judging-steps/executor.ts (96%) rename {judge => projects/judge}/src/judging-steps/index.ts (100%) rename {judge => projects/judge}/src/judging-steps/initializer.ts (98%) rename {judge => projects/judge}/src/logger/index.ts (100%) rename {judge => projects/judge}/src/logger/judge.logger.ts (97%) rename {judge => projects/judge}/src/main.ts (100%) rename {judge => projects/judge}/src/models/contest-problem.model.ts (100%) rename {judge => projects/judge}/src/models/contest.model.ts (100%) rename {judge => projects/judge}/src/models/executable.model.ts (100%) rename {judge => projects/judge}/src/models/file-content.model.ts (100%) rename {judge => projects/judge}/src/models/file.model.ts (100%) rename {judge => projects/judge}/src/models/index.ts (100%) rename {judge => projects/judge}/src/models/judge-host.model.ts (100%) rename {judge => projects/judge}/src/models/judging-run.model.ts (100%) rename {judge => projects/judge}/src/models/judging.model.ts (100%) rename {judge => projects/judge}/src/models/language.model.ts (100%) rename {judge => projects/judge}/src/models/problem.model.ts (100%) rename {judge => projects/judge}/src/models/role.model.ts (100%) rename {judge => projects/judge}/src/models/submission.model.ts (100%) rename {judge => projects/judge}/src/models/team-category.model.ts (100%) rename {judge => projects/judge}/src/models/team.model.ts (100%) rename {judge => projects/judge}/src/models/testcase.model.ts (100%) rename {client/src/core => projects/judge/src}/models/user.model.ts (100%) rename {judge => projects/judge}/src/services/docker.service.ts (96%) rename {judge => projects/judge}/src/services/index.ts (100%) rename {judge => projects/judge}/src/services/judging.service.ts (97%) rename {judge => projects/judge}/src/services/socket.service.ts (100%) rename {judge => projects/judge}/src/services/system.service.ts (97%) rename {server => projects/judge}/test/app.e2e-spec.ts (83%) rename {judge => projects/judge}/test/jest-e2e.json (100%) rename {judge => projects/judge}/tsconfig.build.json (100%) rename {judge => projects/judge}/tsconfig.json (100%) rename {judge => projects/judge}/yarn.lock (99%) rename {server => projects/server}/.eslintrc.js (100%) rename {server => projects/server}/.gitignore (100%) rename {server => projects/server}/.snyk (100%) rename {server => projects/server}/README.md (100%) rename {server => projects/server}/docker-compose.dev.yml (100%) rename {server => projects/server}/nest-cli.json (100%) rename {server => projects/server}/package.json (94%) rename {server => projects/server}/src/app.controller.ts (99%) rename {server => projects/server}/src/app.module.ts (100%) rename {server => projects/server}/src/app.service.ts (95%) rename {server => projects/server}/src/core/config.ts (100%) rename {server => projects/server}/src/core/extended-repository.ts (94%) rename {server => projects/server}/src/core/log.decorator.ts (95%) rename {server => projects/server}/src/core/logger.factory.ts (100%) rename {server => projects/server}/src/core/roles.decorator.ts (100%) rename {server => projects/server}/src/core/session.ts (100%) rename {server => projects/server}/src/core/socket-io.adapter.ts (92%) rename {server => projects/server}/src/core/utils.ts (98%) rename {server => projects/server}/src/entities/clarification-message.entity.ts (100%) rename {server => projects/server}/src/entities/clarification.entity.ts (100%) rename {server => projects/server}/src/entities/contest-problem.entity.ts (100%) rename {server => projects/server}/src/entities/contest.entity.ts (100%) rename {server => projects/server}/src/entities/executable.entity.ts (100%) rename {server => projects/server}/src/entities/file-content.entity.ts (100%) rename {server => projects/server}/src/entities/file.entity.ts (100%) rename {server => projects/server}/src/entities/index.ts (100%) rename {server => projects/server}/src/entities/judge-host.entity.ts (100%) rename {server => projects/server}/src/entities/judging-run.entity.ts (100%) rename {server => projects/server}/src/entities/judging.entity.ts (100%) rename {server => projects/server}/src/entities/language.entity.ts (100%) rename {server => projects/server}/src/entities/problem.entity.ts (100%) rename {server => projects/server}/src/entities/role.entity.ts (100%) rename {server => projects/server}/src/entities/score-cache.entity.ts (100%) rename {server => projects/server}/src/entities/submission.entity.ts (100%) rename {server => projects/server}/src/entities/team-category.entity.ts (100%) rename {server => projects/server}/src/entities/team.entity.ts (100%) rename {server => projects/server}/src/entities/testcase.entity.ts (100%) rename {server => projects/server}/src/entities/user.entity.ts (100%) rename {server => projects/server}/src/features/auth/auth.controller.ts (100%) rename {server => projects/server}/src/features/auth/auth.module.ts (100%) rename {server => projects/server}/src/features/auth/auth.service.ts (93%) rename {server => projects/server}/src/features/auth/local.strategy.ts (100%) rename {server => projects/server}/src/features/auth/session.serializer.ts (100%) rename {server => projects/server}/src/features/clarifications/clarifications.module.ts (100%) rename {server => projects/server}/src/features/clarifications/clarifications.service.ts (62%) rename {server => projects/server}/src/features/contests/contest-problems.service.ts (97%) rename {server => projects/server}/src/features/contests/contests.controller.ts (82%) rename {server => projects/server}/src/features/contests/contests.module.ts (100%) rename {server => projects/server}/src/features/contests/contests.service.ts (94%) rename {server => projects/server}/src/features/executables/executables.controller.ts (100%) rename {server => projects/server}/src/features/executables/executables.module.ts (100%) rename {server => projects/server}/src/features/executables/executables.service.ts (89%) rename {server => projects/server}/src/features/files/files.module.ts (100%) rename {server => projects/server}/src/features/files/files.service.ts (82%) rename {server => projects/server}/src/features/judge-hosts/judge-hosts.controller.ts (92%) rename {server => projects/server}/src/features/judge-hosts/judge-hosts.module.ts (100%) rename {server => projects/server}/src/features/judge-hosts/judge-hosts.service.ts (95%) rename {server => projects/server}/src/features/judge-hosts/judging-runs.service.ts (91%) rename {server => projects/server}/src/features/judge-hosts/judgings.service.ts (90%) rename {server => projects/server}/src/features/languages/languages.controller.ts (98%) rename {server => projects/server}/src/features/languages/languages.module.ts (100%) rename {server => projects/server}/src/features/languages/languages.service.ts (91%) rename {server => projects/server}/src/features/problems/problems.controller.ts (96%) rename {server => projects/server}/src/features/problems/problems.module.ts (100%) rename {server => projects/server}/src/features/problems/problems.service.ts (91%) rename {server => projects/server}/src/features/public/public.controller.ts (95%) rename {server => projects/server}/src/features/public/public.module.ts (100%) rename {server => projects/server}/src/features/scoreboard/score-cache.service.ts (98%) rename {server => projects/server}/src/features/scoreboard/scoreboard.module.ts (100%) rename {server => projects/server}/src/features/scoreboard/scoreboard.service.ts (93%) rename {server => projects/server}/src/features/submissions/submissions.controller.ts (89%) rename {server => projects/server}/src/features/submissions/submissions.module.ts (100%) rename {server => projects/server}/src/features/submissions/submissions.service.ts (96%) rename {server => projects/server}/src/features/team-categories/team-categories.controller.ts (100%) rename {server => projects/server}/src/features/team-categories/team-categories.module.ts (100%) rename {server => projects/server}/src/features/team-categories/team-categories.service.ts (97%) rename {server => projects/server}/src/features/teams/teams.controller.ts (100%) rename {server => projects/server}/src/features/teams/teams.module.ts (100%) rename {server => projects/server}/src/features/teams/teams.service.ts (92%) rename {server => projects/server}/src/features/testcases/testcases.controller.ts (97%) rename {server => projects/server}/src/features/testcases/testcases.module.ts (100%) rename {server => projects/server}/src/features/testcases/testcases.service.ts (96%) rename {server => projects/server}/src/features/users/roles.controller.ts (100%) rename {server => projects/server}/src/features/users/roles.service.ts (89%) rename {server => projects/server}/src/features/users/users.controller.ts (99%) rename {server => projects/server}/src/features/users/users.module.ts (100%) rename {server => projects/server}/src/features/users/users.service.ts (91%) rename {server => projects/server}/src/features/websocket/websocket.gateway.ts (54%) rename {server => projects/server}/src/features/websocket/websocket.module.ts (71%) rename {server => projects/server}/src/guards/authenticated.guard.ts (100%) rename {server => projects/server}/src/guards/index.ts (100%) rename {server => projects/server}/src/guards/login.guard.ts (97%) rename {server => projects/server}/src/guards/roles.guard.ts (100%) rename {server => projects/server}/src/main.ts (96%) rename {judge => projects/server}/test/app.e2e-spec.ts (83%) rename {server => projects/server}/test/jest-e2e.json (100%) rename {server => projects/server}/tsconfig.build.json (100%) rename {server => projects/server}/tsconfig.json (100%) rename {server => projects/server}/yarn.lock (99%) delete mode 100644 server/.prettierrc diff --git a/.dockerignore b/.dockerignore index 0f6ad06..2339969 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,11 +1,4 @@ -server/.env -server/dist -server/node_modules - -client/.env -client/build -client/node_modules - -judge/.env -judge/dist -judge/node_modules +**/*/.env +**/*/dist +**/*/build +**/*/node_modules diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 27ef19d..d06611d 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -19,6 +19,9 @@ jobs: - name: Yarn Install run: yarn install + - name: Lint + run: yarn lint + - name: Prettier run: yarn prettier diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..ea9ebdb --- /dev/null +++ b/.prettierrc @@ -0,0 +1,4 @@ +{ + "printWidth": 100, + "singleQuote": true +} \ No newline at end of file diff --git a/.run/client_start.run.xml b/.run/client_start.run.xml new file mode 100644 index 0000000..95f39c3 --- /dev/null +++ b/.run/client_start.run.xml @@ -0,0 +1,14 @@ + + + + + +