From 0591eda56fd663e9c741fdd59af0be658a39915b Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Mon, 26 Oct 2026 16:01:25 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E5=B0=86=E5=90=8E=E7=AB=AF=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E5=88=B0=20api/=20=E7=9B=AE=E5=BD=95=EF=BC=8C?= =?UTF-8?q?=E5=87=86=E5=A4=87=E5=90=88=E5=B9=B6=E4=B8=BA=E5=8D=95=E4=BB=93?= =?UTF-8?q?=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- {.github => api/.github}/workflows/depley.yaml | 0 .gitignore => api/.gitignore | 0 .python-version => api/.python-version | 0 Dockerfile => api/Dockerfile | 0 README.md => api/README.md | 0 {account => api/account}/__init__.py | 0 {account => api/account}/admin.py | 0 {account => api/account}/api.py | 0 {account => api/account}/apps.py | 0 {account => api/account}/decorators.py | 0 {account => api/account}/migrations/0001_initial.py | 0 .../migrations/0002_alter_profile_total_score.py | 0 .../account}/migrations/0003_user_classname.py | 0 .../account}/migrations/0004_remove_profile.py | 0 {account => api/account}/migrations/__init__.py | 0 {account => api/account}/models.py | 0 {account => api/account}/schemas.py | 0 api/{ => api}/__init__.py | 0 api/{ => api}/asgi.py | 0 api/{ => api}/settings.py | 0 api/{ => api}/urls.py | 0 api/{ => api}/wsgi.py | 0 entrypoint.sh => api/entrypoint.sh | 0 manage.py => api/manage.py | 0 {prompt => api/prompt}/__init__.py | 0 {prompt => api/prompt}/admin.py | 0 {prompt => api/prompt}/api.py | 0 {prompt => api/prompt}/apps.py | 0 {prompt => api/prompt}/consumers.py | 0 {prompt => api/prompt}/llm.py | 0 {prompt => api/prompt}/migrations/0001_initial.py | 0 .../prompt}/migrations/0002_message_prompt_level.py | 0 .../prompt}/migrations/0003_add_message_source.py | 0 .../0004_update_message_source_default.py | 0 .../migrations/0005_message_add_submission_fk.py | 0 .../0006_message_submission_cascade_delete.py | 0 {prompt => api/prompt}/migrations/__init__.py | 0 {prompt => api/prompt}/models.py | 0 {prompt => api/prompt}/schemas.py | 0 {prompt => api/prompt}/tests.py | 0 {prompt => api/prompt}/url.py | 0 {prompt => api/prompt}/utils.py | 0 pyproject.toml => api/pyproject.toml | 0 requirements.txt => api/requirements.txt | 0 {static => api/static}/admin/css/autocomplete.css | 0 {static => api/static}/admin/css/base.css | 0 {static => api/static}/admin/css/changelists.css | 0 {static => api/static}/admin/css/dark_mode.css | 0 {static => api/static}/admin/css/dashboard.css | 0 {static => api/static}/admin/css/forms.css | 0 {static => api/static}/admin/css/login.css | 0 {static => api/static}/admin/css/nav_sidebar.css | 0 {static => api/static}/admin/css/responsive.css | 0 {static => api/static}/admin/css/responsive_rtl.css | 0 {static => api/static}/admin/css/rtl.css | 0 .../static}/admin/css/unusable_password_field.css | 0 .../admin/css/vendor/select2/LICENSE-SELECT2.md | 0 .../static}/admin/css/vendor/select2/select2.css | 0 .../admin/css/vendor/select2/select2.min.css | 0 {static => api/static}/admin/css/widgets.css | 0 {static => api/static}/admin/img/LICENSE | 0 {static => api/static}/admin/img/README.md | 0 {static => api/static}/admin/img/README.txt | 0 {static => api/static}/admin/img/calendar-icons.svg | 0 .../static}/admin/img/gis/move_vertex_off.svg | 0 .../static}/admin/img/gis/move_vertex_on.svg | 0 {static => api/static}/admin/img/icon-addlink.svg | 0 .../static}/admin/img/icon-alert-dark.svg | 0 {static => api/static}/admin/img/icon-alert.svg | 0 {static => api/static}/admin/img/icon-calendar.svg | 0 .../static}/admin/img/icon-changelink.svg | 0 {static => api/static}/admin/img/icon-clock.svg | 0 .../static}/admin/img/icon-debug-dark.svg | 0 {static => api/static}/admin/img/icon-debug.svg | 0 .../static}/admin/img/icon-deletelink.svg | 0 {static => api/static}/admin/img/icon-hidelink.svg | 0 {static => api/static}/admin/img/icon-info-dark.svg | 0 {static => api/static}/admin/img/icon-info.svg | 0 {static => api/static}/admin/img/icon-no-dark.svg | 0 {static => api/static}/admin/img/icon-no.svg | 0 .../static}/admin/img/icon-unknown-alt.svg | 0 {static => api/static}/admin/img/icon-unknown.svg | 0 {static => api/static}/admin/img/icon-viewlink.svg | 0 {static => api/static}/admin/img/icon-yes-dark.svg | 0 {static => api/static}/admin/img/icon-yes.svg | 0 {static => api/static}/admin/img/inline-delete.svg | 0 {static => api/static}/admin/img/search.svg | 0 {static => api/static}/admin/img/selector-icons.svg | 0 {static => api/static}/admin/img/sorting-icons.svg | 0 {static => api/static}/admin/img/tooltag-add.svg | 0 .../static}/admin/img/tooltag-arrowright.svg | 0 {static => api/static}/admin/js/SelectBox.js | 0 {static => api/static}/admin/js/SelectFilter2.js | 0 {static => api/static}/admin/js/actions.js | 0 .../static}/admin/js/admin/DateTimeShortcuts.js | 0 .../static}/admin/js/admin/RelatedObjectLookups.js | 0 {static => api/static}/admin/js/autocomplete.js | 0 {static => api/static}/admin/js/calendar.js | 0 {static => api/static}/admin/js/cancel.js | 0 {static => api/static}/admin/js/change_form.js | 0 {static => api/static}/admin/js/core.js | 0 {static => api/static}/admin/js/filters.js | 0 {static => api/static}/admin/js/inlines.js | 0 {static => api/static}/admin/js/jquery.init.js | 0 {static => api/static}/admin/js/nav_sidebar.js | 0 {static => api/static}/admin/js/popup_response.js | 0 {static => api/static}/admin/js/prepopulate.js | 0 {static => api/static}/admin/js/prepopulate_init.js | 0 {static => api/static}/admin/js/theme.js | 0 .../static}/admin/js/unusable_password_field.js | 0 {static => api/static}/admin/js/urlify.js | 0 .../static}/admin/js/vendor/jquery/LICENSE.txt | 0 .../static}/admin/js/vendor/jquery/jquery.js | 0 .../static}/admin/js/vendor/jquery/jquery.min.js | 0 .../static}/admin/js/vendor/select2/LICENSE.md | 0 .../static}/admin/js/vendor/select2/i18n/af.js | 0 .../static}/admin/js/vendor/select2/i18n/ar.js | 0 .../static}/admin/js/vendor/select2/i18n/az.js | 0 .../static}/admin/js/vendor/select2/i18n/bg.js | 0 .../static}/admin/js/vendor/select2/i18n/bn.js | 0 .../static}/admin/js/vendor/select2/i18n/bs.js | 0 .../static}/admin/js/vendor/select2/i18n/ca.js | 0 .../static}/admin/js/vendor/select2/i18n/cs.js | 0 .../static}/admin/js/vendor/select2/i18n/da.js | 0 .../static}/admin/js/vendor/select2/i18n/de.js | 0 .../static}/admin/js/vendor/select2/i18n/dsb.js | 0 .../static}/admin/js/vendor/select2/i18n/el.js | 0 .../static}/admin/js/vendor/select2/i18n/en.js | 0 .../static}/admin/js/vendor/select2/i18n/es.js | 0 .../static}/admin/js/vendor/select2/i18n/et.js | 0 .../static}/admin/js/vendor/select2/i18n/eu.js | 0 .../static}/admin/js/vendor/select2/i18n/fa.js | 0 .../static}/admin/js/vendor/select2/i18n/fi.js | 0 .../static}/admin/js/vendor/select2/i18n/fr.js | 0 .../static}/admin/js/vendor/select2/i18n/gl.js | 0 .../static}/admin/js/vendor/select2/i18n/he.js | 0 .../static}/admin/js/vendor/select2/i18n/hi.js | 0 .../static}/admin/js/vendor/select2/i18n/hr.js | 0 .../static}/admin/js/vendor/select2/i18n/hsb.js | 0 .../static}/admin/js/vendor/select2/i18n/hu.js | 0 .../static}/admin/js/vendor/select2/i18n/hy.js | 0 .../static}/admin/js/vendor/select2/i18n/id.js | 0 .../static}/admin/js/vendor/select2/i18n/is.js | 0 .../static}/admin/js/vendor/select2/i18n/it.js | 0 .../static}/admin/js/vendor/select2/i18n/ja.js | 0 .../static}/admin/js/vendor/select2/i18n/ka.js | 0 .../static}/admin/js/vendor/select2/i18n/km.js | 0 .../static}/admin/js/vendor/select2/i18n/ko.js | 0 .../static}/admin/js/vendor/select2/i18n/lt.js | 0 .../static}/admin/js/vendor/select2/i18n/lv.js | 0 .../static}/admin/js/vendor/select2/i18n/mk.js | 0 .../static}/admin/js/vendor/select2/i18n/ms.js | 0 .../static}/admin/js/vendor/select2/i18n/nb.js | 0 .../static}/admin/js/vendor/select2/i18n/ne.js | 0 .../static}/admin/js/vendor/select2/i18n/nl.js | 0 .../static}/admin/js/vendor/select2/i18n/pl.js | 0 .../static}/admin/js/vendor/select2/i18n/ps.js | 0 .../static}/admin/js/vendor/select2/i18n/pt-BR.js | 0 .../static}/admin/js/vendor/select2/i18n/pt.js | 0 .../static}/admin/js/vendor/select2/i18n/ro.js | 0 .../static}/admin/js/vendor/select2/i18n/ru.js | 0 .../static}/admin/js/vendor/select2/i18n/sk.js | 0 .../static}/admin/js/vendor/select2/i18n/sl.js | 0 .../static}/admin/js/vendor/select2/i18n/sq.js | 0 .../static}/admin/js/vendor/select2/i18n/sr-Cyrl.js | 0 .../static}/admin/js/vendor/select2/i18n/sr.js | 0 .../static}/admin/js/vendor/select2/i18n/sv.js | 0 .../static}/admin/js/vendor/select2/i18n/th.js | 0 .../static}/admin/js/vendor/select2/i18n/tk.js | 0 .../static}/admin/js/vendor/select2/i18n/tr.js | 0 .../static}/admin/js/vendor/select2/i18n/uk.js | 0 .../static}/admin/js/vendor/select2/i18n/vi.js | 0 .../static}/admin/js/vendor/select2/i18n/zh-CN.js | 0 .../static}/admin/js/vendor/select2/i18n/zh-TW.js | 0 .../static}/admin/js/vendor/select2/select2.full.js | 0 .../admin/js/vendor/select2/select2.full.min.js | 0 .../static}/admin/js/vendor/xregexp/LICENSE.txt | 0 .../static}/admin/js/vendor/xregexp/xregexp.js | 0 .../static}/admin/js/vendor/xregexp/xregexp.min.js | 0 .../django_extensions/css/jquery.autocomplete.css | 0 .../static}/django_extensions/img/indicator.gif | Bin .../django_extensions/js/jquery.ajaxQueue.js | 0 .../django_extensions/js/jquery.autocomplete.js | 0 .../static}/django_extensions/js/jquery.bgiframe.js | 0 {static => api/static}/ninja/favicon.png | Bin {static => api/static}/ninja/favicon.svg | 0 {static => api/static}/ninja/redoc.standalone.js | 0 .../static}/ninja/redoc.standalone.js.map | 0 {static => api/static}/ninja/swagger-ui-bundle.js | 0 .../static}/ninja/swagger-ui-bundle.js.map | 0 {static => api/static}/ninja/swagger-ui-init.js | 0 {static => api/static}/ninja/swagger-ui.css | 0 {static => api/static}/ninja/swagger-ui.css.map | 0 {submission => api/submission}/__init__.py | 0 {submission => api/submission}/admin.py | 0 {submission => api/submission}/api.py | 0 {submission => api/submission}/apps.py | 0 {submission => api/submission}/classifier.py | 0 {submission => api/submission}/gradebook.py | 0 .../submission}/management/__init__.py | 0 .../submission}/management/commands/__init__.py | 0 .../management/commands/classify_messages.py | 0 .../management/commands/classify_prompts.py | 0 .../management/commands/recalculate_scores.py | 0 .../submission}/migrations/0001_initial.py | 0 ...ssion_referee_alter_submission_score_and_more.py | 0 .../migrations/0003_submission_conversation.py | 0 .../submission}/migrations/0004_submission_flag.py | 0 .../submission}/migrations/0005_add_flag_index.py | 0 .../migrations/0006_add_raw_score_nominated.py | 0 .../submission}/migrations/0007_remove_nominated.py | 0 .../submission}/migrations/0008_add_zone.py | 0 .../submission}/migrations/0009_add_view_count.py | 0 .../migrations/0010_remove_conversation_fk.py | 0 .../migrations/0011_add_award_submissionaward.py | 0 .../migrations/0012_submissionaward_is_stale.py | 0 .../submission}/migrations/__init__.py | 0 {submission => api/submission}/models.py | 0 {submission => api/submission}/schemas.py | 0 {submission => api/submission}/tests.py | 0 {task => api/task}/__init__.py | 0 {task => api/task}/admin.py | 0 {task => api/task}/apps.py | 0 {task => api/task}/assets.py | 0 {task => api/task}/challenge.py | 0 {task => api/task}/creation.py | 0 {task => api/task}/migrations/0001_initial.py | 0 .../task}/migrations/0002_alter_task_display.py | 0 ...lter_task_content_alter_task_display_and_more.py | 0 .../task}/migrations/0004_alter_task_task_type.py | 0 ...lter_task_options_alter_task_display_and_more.py | 0 .../task}/migrations/0006_challenge_pass_score.py | 0 {task => api/task}/migrations/0007_taskasset.py | 0 .../task}/migrations/0008_challenge_author.py | 0 ...example_css_task_example_html_task_example_js.py | 0 .../0010_alter_task_task_type_creation.py | 0 {task => api/task}/migrations/__init__.py | 0 {task => api/task}/models.py | 0 {task => api/task}/schemas.py | 0 {task => api/task}/tests.py | 0 {task => api/task}/tutorial.py | 0 {utils => api/utils}/__init__.py | 0 {utils => api/utils}/upload.py | 0 uv.lock => api/uv.lock | 0 244 files changed, 0 insertions(+), 0 deletions(-) rename {.github => api/.github}/workflows/depley.yaml (100%) rename .gitignore => api/.gitignore (100%) rename .python-version => api/.python-version (100%) rename Dockerfile => api/Dockerfile (100%) rename README.md => api/README.md (100%) rename {account => api/account}/__init__.py (100%) rename {account => api/account}/admin.py (100%) rename {account => api/account}/api.py (100%) rename {account => api/account}/apps.py (100%) rename {account => api/account}/decorators.py (100%) rename {account => api/account}/migrations/0001_initial.py (100%) rename {account => api/account}/migrations/0002_alter_profile_total_score.py (100%) rename {account => api/account}/migrations/0003_user_classname.py (100%) rename {account => api/account}/migrations/0004_remove_profile.py (100%) rename {account => api/account}/migrations/__init__.py (100%) rename {account => api/account}/models.py (100%) rename {account => api/account}/schemas.py (100%) rename api/{ => api}/__init__.py (100%) rename api/{ => api}/asgi.py (100%) rename api/{ => api}/settings.py (100%) rename api/{ => api}/urls.py (100%) rename api/{ => api}/wsgi.py (100%) rename entrypoint.sh => api/entrypoint.sh (100%) rename manage.py => api/manage.py (100%) rename {prompt => api/prompt}/__init__.py (100%) rename {prompt => api/prompt}/admin.py (100%) rename {prompt => api/prompt}/api.py (100%) rename {prompt => api/prompt}/apps.py (100%) rename {prompt => api/prompt}/consumers.py (100%) rename {prompt => api/prompt}/llm.py (100%) rename {prompt => api/prompt}/migrations/0001_initial.py (100%) rename {prompt => api/prompt}/migrations/0002_message_prompt_level.py (100%) rename {prompt => api/prompt}/migrations/0003_add_message_source.py (100%) rename {prompt => api/prompt}/migrations/0004_update_message_source_default.py (100%) rename {prompt => api/prompt}/migrations/0005_message_add_submission_fk.py (100%) rename {prompt => api/prompt}/migrations/0006_message_submission_cascade_delete.py (100%) rename {prompt => api/prompt}/migrations/__init__.py (100%) rename {prompt => api/prompt}/models.py (100%) rename {prompt => api/prompt}/schemas.py (100%) rename {prompt => api/prompt}/tests.py (100%) rename {prompt => api/prompt}/url.py (100%) rename {prompt => api/prompt}/utils.py (100%) rename pyproject.toml => api/pyproject.toml (100%) rename requirements.txt => api/requirements.txt (100%) rename {static => api/static}/admin/css/autocomplete.css (100%) rename {static => api/static}/admin/css/base.css (100%) rename {static => api/static}/admin/css/changelists.css (100%) rename {static => api/static}/admin/css/dark_mode.css (100%) rename {static => api/static}/admin/css/dashboard.css (100%) rename {static => api/static}/admin/css/forms.css (100%) rename {static => api/static}/admin/css/login.css (100%) rename {static => api/static}/admin/css/nav_sidebar.css (100%) rename {static => api/static}/admin/css/responsive.css (100%) rename {static => api/static}/admin/css/responsive_rtl.css (100%) rename {static => api/static}/admin/css/rtl.css (100%) rename {static => api/static}/admin/css/unusable_password_field.css (100%) rename {static => api/static}/admin/css/vendor/select2/LICENSE-SELECT2.md (100%) rename {static => api/static}/admin/css/vendor/select2/select2.css (100%) rename {static => api/static}/admin/css/vendor/select2/select2.min.css (100%) rename {static => api/static}/admin/css/widgets.css (100%) rename {static => api/static}/admin/img/LICENSE (100%) rename {static => api/static}/admin/img/README.md (100%) rename {static => api/static}/admin/img/README.txt (100%) rename {static => api/static}/admin/img/calendar-icons.svg (100%) rename {static => api/static}/admin/img/gis/move_vertex_off.svg (100%) rename {static => api/static}/admin/img/gis/move_vertex_on.svg (100%) rename {static => api/static}/admin/img/icon-addlink.svg (100%) rename {static => api/static}/admin/img/icon-alert-dark.svg (100%) rename {static => api/static}/admin/img/icon-alert.svg (100%) rename {static => api/static}/admin/img/icon-calendar.svg (100%) rename {static => api/static}/admin/img/icon-changelink.svg (100%) rename {static => api/static}/admin/img/icon-clock.svg (100%) rename {static => api/static}/admin/img/icon-debug-dark.svg (100%) rename {static => api/static}/admin/img/icon-debug.svg (100%) rename {static => api/static}/admin/img/icon-deletelink.svg (100%) rename {static => api/static}/admin/img/icon-hidelink.svg (100%) rename {static => api/static}/admin/img/icon-info-dark.svg (100%) rename {static => api/static}/admin/img/icon-info.svg (100%) rename {static => api/static}/admin/img/icon-no-dark.svg (100%) rename {static => api/static}/admin/img/icon-no.svg (100%) rename {static => api/static}/admin/img/icon-unknown-alt.svg (100%) rename {static => api/static}/admin/img/icon-unknown.svg (100%) rename {static => api/static}/admin/img/icon-viewlink.svg (100%) rename {static => api/static}/admin/img/icon-yes-dark.svg (100%) rename {static => api/static}/admin/img/icon-yes.svg (100%) rename {static => api/static}/admin/img/inline-delete.svg (100%) rename {static => api/static}/admin/img/search.svg (100%) rename {static => api/static}/admin/img/selector-icons.svg (100%) rename {static => api/static}/admin/img/sorting-icons.svg (100%) rename {static => api/static}/admin/img/tooltag-add.svg (100%) rename {static => api/static}/admin/img/tooltag-arrowright.svg (100%) rename {static => api/static}/admin/js/SelectBox.js (100%) rename {static => api/static}/admin/js/SelectFilter2.js (100%) rename {static => api/static}/admin/js/actions.js (100%) rename {static => api/static}/admin/js/admin/DateTimeShortcuts.js (100%) rename {static => api/static}/admin/js/admin/RelatedObjectLookups.js (100%) rename {static => api/static}/admin/js/autocomplete.js (100%) rename {static => api/static}/admin/js/calendar.js (100%) rename {static => api/static}/admin/js/cancel.js (100%) rename {static => api/static}/admin/js/change_form.js (100%) rename {static => api/static}/admin/js/core.js (100%) rename {static => api/static}/admin/js/filters.js (100%) rename {static => api/static}/admin/js/inlines.js (100%) rename {static => api/static}/admin/js/jquery.init.js (100%) rename {static => api/static}/admin/js/nav_sidebar.js (100%) rename {static => api/static}/admin/js/popup_response.js (100%) rename {static => api/static}/admin/js/prepopulate.js (100%) rename {static => api/static}/admin/js/prepopulate_init.js (100%) rename {static => api/static}/admin/js/theme.js (100%) rename {static => api/static}/admin/js/unusable_password_field.js (100%) rename {static => api/static}/admin/js/urlify.js (100%) rename {static => api/static}/admin/js/vendor/jquery/LICENSE.txt (100%) rename {static => api/static}/admin/js/vendor/jquery/jquery.js (100%) rename {static => api/static}/admin/js/vendor/jquery/jquery.min.js (100%) rename {static => api/static}/admin/js/vendor/select2/LICENSE.md (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/af.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/ar.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/az.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/bg.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/bn.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/bs.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/ca.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/cs.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/da.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/de.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/dsb.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/el.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/en.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/es.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/et.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/eu.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/fa.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/fi.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/fr.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/gl.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/he.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/hi.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/hr.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/hsb.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/hu.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/hy.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/id.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/is.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/it.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/ja.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/ka.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/km.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/ko.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/lt.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/lv.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/mk.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/ms.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/nb.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/ne.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/nl.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/pl.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/ps.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/pt-BR.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/pt.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/ro.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/ru.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/sk.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/sl.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/sq.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/sr-Cyrl.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/sr.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/sv.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/th.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/tk.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/tr.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/uk.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/vi.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/zh-CN.js (100%) rename {static => api/static}/admin/js/vendor/select2/i18n/zh-TW.js (100%) rename {static => api/static}/admin/js/vendor/select2/select2.full.js (100%) rename {static => api/static}/admin/js/vendor/select2/select2.full.min.js (100%) rename {static => api/static}/admin/js/vendor/xregexp/LICENSE.txt (100%) rename {static => api/static}/admin/js/vendor/xregexp/xregexp.js (100%) rename {static => api/static}/admin/js/vendor/xregexp/xregexp.min.js (100%) rename {static => api/static}/django_extensions/css/jquery.autocomplete.css (100%) rename {static => api/static}/django_extensions/img/indicator.gif (100%) rename {static => api/static}/django_extensions/js/jquery.ajaxQueue.js (100%) rename {static => api/static}/django_extensions/js/jquery.autocomplete.js (100%) rename {static => api/static}/django_extensions/js/jquery.bgiframe.js (100%) rename {static => api/static}/ninja/favicon.png (100%) rename {static => api/static}/ninja/favicon.svg (100%) rename {static => api/static}/ninja/redoc.standalone.js (100%) rename {static => api/static}/ninja/redoc.standalone.js.map (100%) rename {static => api/static}/ninja/swagger-ui-bundle.js (100%) rename {static => api/static}/ninja/swagger-ui-bundle.js.map (100%) rename {static => api/static}/ninja/swagger-ui-init.js (100%) rename {static => api/static}/ninja/swagger-ui.css (100%) rename {static => api/static}/ninja/swagger-ui.css.map (100%) rename {submission => api/submission}/__init__.py (100%) rename {submission => api/submission}/admin.py (100%) rename {submission => api/submission}/api.py (100%) rename {submission => api/submission}/apps.py (100%) rename {submission => api/submission}/classifier.py (100%) rename {submission => api/submission}/gradebook.py (100%) rename {submission => api/submission}/management/__init__.py (100%) rename {submission => api/submission}/management/commands/__init__.py (100%) rename {submission => api/submission}/management/commands/classify_messages.py (100%) rename {submission => api/submission}/management/commands/classify_prompts.py (100%) rename {submission => api/submission}/management/commands/recalculate_scores.py (100%) rename {submission => api/submission}/migrations/0001_initial.py (100%) rename {submission => api/submission}/migrations/0002_remove_submission_referee_alter_submission_score_and_more.py (100%) rename {submission => api/submission}/migrations/0003_submission_conversation.py (100%) rename {submission => api/submission}/migrations/0004_submission_flag.py (100%) rename {submission => api/submission}/migrations/0005_add_flag_index.py (100%) rename {submission => api/submission}/migrations/0006_add_raw_score_nominated.py (100%) rename {submission => api/submission}/migrations/0007_remove_nominated.py (100%) rename {submission => api/submission}/migrations/0008_add_zone.py (100%) rename {submission => api/submission}/migrations/0009_add_view_count.py (100%) rename {submission => api/submission}/migrations/0010_remove_conversation_fk.py (100%) rename {submission => api/submission}/migrations/0011_add_award_submissionaward.py (100%) rename {submission => api/submission}/migrations/0012_submissionaward_is_stale.py (100%) rename {submission => api/submission}/migrations/__init__.py (100%) rename {submission => api/submission}/models.py (100%) rename {submission => api/submission}/schemas.py (100%) rename {submission => api/submission}/tests.py (100%) rename {task => api/task}/__init__.py (100%) rename {task => api/task}/admin.py (100%) rename {task => api/task}/apps.py (100%) rename {task => api/task}/assets.py (100%) rename {task => api/task}/challenge.py (100%) rename {task => api/task}/creation.py (100%) rename {task => api/task}/migrations/0001_initial.py (100%) rename {task => api/task}/migrations/0002_alter_task_display.py (100%) rename {task => api/task}/migrations/0003_alter_task_content_alter_task_display_and_more.py (100%) rename {task => api/task}/migrations/0004_alter_task_task_type.py (100%) rename {task => api/task}/migrations/0005_alter_task_options_alter_task_display_and_more.py (100%) rename {task => api/task}/migrations/0006_challenge_pass_score.py (100%) rename {task => api/task}/migrations/0007_taskasset.py (100%) rename {task => api/task}/migrations/0008_challenge_author.py (100%) rename {task => api/task}/migrations/0009_task_example_css_task_example_html_task_example_js.py (100%) rename {task => api/task}/migrations/0010_alter_task_task_type_creation.py (100%) rename {task => api/task}/migrations/__init__.py (100%) rename {task => api/task}/models.py (100%) rename {task => api/task}/schemas.py (100%) rename {task => api/task}/tests.py (100%) rename {task => api/task}/tutorial.py (100%) rename {utils => api/utils}/__init__.py (100%) rename {utils => api/utils}/upload.py (100%) rename uv.lock => api/uv.lock (100%) diff --git a/.github/workflows/depley.yaml b/api/.github/workflows/depley.yaml similarity index 100% rename from .github/workflows/depley.yaml rename to api/.github/workflows/depley.yaml diff --git a/.gitignore b/api/.gitignore similarity index 100% rename from .gitignore rename to api/.gitignore diff --git a/.python-version b/api/.python-version similarity index 100% rename from .python-version rename to api/.python-version diff --git a/Dockerfile b/api/Dockerfile similarity index 100% rename from Dockerfile rename to api/Dockerfile diff --git a/README.md b/api/README.md similarity index 100% rename from README.md rename to api/README.md diff --git a/account/__init__.py b/api/account/__init__.py similarity index 100% rename from account/__init__.py rename to api/account/__init__.py diff --git a/account/admin.py b/api/account/admin.py similarity index 100% rename from account/admin.py rename to api/account/admin.py diff --git a/account/api.py b/api/account/api.py similarity index 100% rename from account/api.py rename to api/account/api.py diff --git a/account/apps.py b/api/account/apps.py similarity index 100% rename from account/apps.py rename to api/account/apps.py diff --git a/account/decorators.py b/api/account/decorators.py similarity index 100% rename from account/decorators.py rename to api/account/decorators.py diff --git a/account/migrations/0001_initial.py b/api/account/migrations/0001_initial.py similarity index 100% rename from account/migrations/0001_initial.py rename to api/account/migrations/0001_initial.py diff --git a/account/migrations/0002_alter_profile_total_score.py b/api/account/migrations/0002_alter_profile_total_score.py similarity index 100% rename from account/migrations/0002_alter_profile_total_score.py rename to api/account/migrations/0002_alter_profile_total_score.py diff --git a/account/migrations/0003_user_classname.py b/api/account/migrations/0003_user_classname.py similarity index 100% rename from account/migrations/0003_user_classname.py rename to api/account/migrations/0003_user_classname.py diff --git a/account/migrations/0004_remove_profile.py b/api/account/migrations/0004_remove_profile.py similarity index 100% rename from account/migrations/0004_remove_profile.py rename to api/account/migrations/0004_remove_profile.py diff --git a/account/migrations/__init__.py b/api/account/migrations/__init__.py similarity index 100% rename from account/migrations/__init__.py rename to api/account/migrations/__init__.py diff --git a/account/models.py b/api/account/models.py similarity index 100% rename from account/models.py rename to api/account/models.py diff --git a/account/schemas.py b/api/account/schemas.py similarity index 100% rename from account/schemas.py rename to api/account/schemas.py diff --git a/api/__init__.py b/api/api/__init__.py similarity index 100% rename from api/__init__.py rename to api/api/__init__.py diff --git a/api/asgi.py b/api/api/asgi.py similarity index 100% rename from api/asgi.py rename to api/api/asgi.py diff --git a/api/settings.py b/api/api/settings.py similarity index 100% rename from api/settings.py rename to api/api/settings.py diff --git a/api/urls.py b/api/api/urls.py similarity index 100% rename from api/urls.py rename to api/api/urls.py diff --git a/api/wsgi.py b/api/api/wsgi.py similarity index 100% rename from api/wsgi.py rename to api/api/wsgi.py diff --git a/entrypoint.sh b/api/entrypoint.sh similarity index 100% rename from entrypoint.sh rename to api/entrypoint.sh diff --git a/manage.py b/api/manage.py similarity index 100% rename from manage.py rename to api/manage.py diff --git a/prompt/__init__.py b/api/prompt/__init__.py similarity index 100% rename from prompt/__init__.py rename to api/prompt/__init__.py diff --git a/prompt/admin.py b/api/prompt/admin.py similarity index 100% rename from prompt/admin.py rename to api/prompt/admin.py diff --git a/prompt/api.py b/api/prompt/api.py similarity index 100% rename from prompt/api.py rename to api/prompt/api.py diff --git a/prompt/apps.py b/api/prompt/apps.py similarity index 100% rename from prompt/apps.py rename to api/prompt/apps.py diff --git a/prompt/consumers.py b/api/prompt/consumers.py similarity index 100% rename from prompt/consumers.py rename to api/prompt/consumers.py diff --git a/prompt/llm.py b/api/prompt/llm.py similarity index 100% rename from prompt/llm.py rename to api/prompt/llm.py diff --git a/prompt/migrations/0001_initial.py b/api/prompt/migrations/0001_initial.py similarity index 100% rename from prompt/migrations/0001_initial.py rename to api/prompt/migrations/0001_initial.py diff --git a/prompt/migrations/0002_message_prompt_level.py b/api/prompt/migrations/0002_message_prompt_level.py similarity index 100% rename from prompt/migrations/0002_message_prompt_level.py rename to api/prompt/migrations/0002_message_prompt_level.py diff --git a/prompt/migrations/0003_add_message_source.py b/api/prompt/migrations/0003_add_message_source.py similarity index 100% rename from prompt/migrations/0003_add_message_source.py rename to api/prompt/migrations/0003_add_message_source.py diff --git a/prompt/migrations/0004_update_message_source_default.py b/api/prompt/migrations/0004_update_message_source_default.py similarity index 100% rename from prompt/migrations/0004_update_message_source_default.py rename to api/prompt/migrations/0004_update_message_source_default.py diff --git a/prompt/migrations/0005_message_add_submission_fk.py b/api/prompt/migrations/0005_message_add_submission_fk.py similarity index 100% rename from prompt/migrations/0005_message_add_submission_fk.py rename to api/prompt/migrations/0005_message_add_submission_fk.py diff --git a/prompt/migrations/0006_message_submission_cascade_delete.py b/api/prompt/migrations/0006_message_submission_cascade_delete.py similarity index 100% rename from prompt/migrations/0006_message_submission_cascade_delete.py rename to api/prompt/migrations/0006_message_submission_cascade_delete.py diff --git a/prompt/migrations/__init__.py b/api/prompt/migrations/__init__.py similarity index 100% rename from prompt/migrations/__init__.py rename to api/prompt/migrations/__init__.py diff --git a/prompt/models.py b/api/prompt/models.py similarity index 100% rename from prompt/models.py rename to api/prompt/models.py diff --git a/prompt/schemas.py b/api/prompt/schemas.py similarity index 100% rename from prompt/schemas.py rename to api/prompt/schemas.py diff --git a/prompt/tests.py b/api/prompt/tests.py similarity index 100% rename from prompt/tests.py rename to api/prompt/tests.py diff --git a/prompt/url.py b/api/prompt/url.py similarity index 100% rename from prompt/url.py rename to api/prompt/url.py diff --git a/prompt/utils.py b/api/prompt/utils.py similarity index 100% rename from prompt/utils.py rename to api/prompt/utils.py diff --git a/pyproject.toml b/api/pyproject.toml similarity index 100% rename from pyproject.toml rename to api/pyproject.toml diff --git a/requirements.txt b/api/requirements.txt similarity index 100% rename from requirements.txt rename to api/requirements.txt diff --git a/static/admin/css/autocomplete.css b/api/static/admin/css/autocomplete.css similarity index 100% rename from static/admin/css/autocomplete.css rename to api/static/admin/css/autocomplete.css diff --git a/static/admin/css/base.css b/api/static/admin/css/base.css similarity index 100% rename from static/admin/css/base.css rename to api/static/admin/css/base.css diff --git a/static/admin/css/changelists.css b/api/static/admin/css/changelists.css similarity index 100% rename from static/admin/css/changelists.css rename to api/static/admin/css/changelists.css diff --git a/static/admin/css/dark_mode.css b/api/static/admin/css/dark_mode.css similarity index 100% rename from static/admin/css/dark_mode.css rename to api/static/admin/css/dark_mode.css diff --git a/static/admin/css/dashboard.css b/api/static/admin/css/dashboard.css similarity index 100% rename from static/admin/css/dashboard.css rename to api/static/admin/css/dashboard.css diff --git a/static/admin/css/forms.css b/api/static/admin/css/forms.css similarity index 100% rename from static/admin/css/forms.css rename to api/static/admin/css/forms.css diff --git a/static/admin/css/login.css b/api/static/admin/css/login.css similarity index 100% rename from static/admin/css/login.css rename to api/static/admin/css/login.css diff --git a/static/admin/css/nav_sidebar.css b/api/static/admin/css/nav_sidebar.css similarity index 100% rename from static/admin/css/nav_sidebar.css rename to api/static/admin/css/nav_sidebar.css diff --git a/static/admin/css/responsive.css b/api/static/admin/css/responsive.css similarity index 100% rename from static/admin/css/responsive.css rename to api/static/admin/css/responsive.css diff --git a/static/admin/css/responsive_rtl.css b/api/static/admin/css/responsive_rtl.css similarity index 100% rename from static/admin/css/responsive_rtl.css rename to api/static/admin/css/responsive_rtl.css diff --git a/static/admin/css/rtl.css b/api/static/admin/css/rtl.css similarity index 100% rename from static/admin/css/rtl.css rename to api/static/admin/css/rtl.css diff --git a/static/admin/css/unusable_password_field.css b/api/static/admin/css/unusable_password_field.css similarity index 100% rename from static/admin/css/unusable_password_field.css rename to api/static/admin/css/unusable_password_field.css diff --git a/static/admin/css/vendor/select2/LICENSE-SELECT2.md b/api/static/admin/css/vendor/select2/LICENSE-SELECT2.md similarity index 100% rename from static/admin/css/vendor/select2/LICENSE-SELECT2.md rename to api/static/admin/css/vendor/select2/LICENSE-SELECT2.md diff --git a/static/admin/css/vendor/select2/select2.css b/api/static/admin/css/vendor/select2/select2.css similarity index 100% rename from static/admin/css/vendor/select2/select2.css rename to api/static/admin/css/vendor/select2/select2.css diff --git a/static/admin/css/vendor/select2/select2.min.css b/api/static/admin/css/vendor/select2/select2.min.css similarity index 100% rename from static/admin/css/vendor/select2/select2.min.css rename to api/static/admin/css/vendor/select2/select2.min.css diff --git a/static/admin/css/widgets.css b/api/static/admin/css/widgets.css similarity index 100% rename from static/admin/css/widgets.css rename to api/static/admin/css/widgets.css diff --git a/static/admin/img/LICENSE b/api/static/admin/img/LICENSE similarity index 100% rename from static/admin/img/LICENSE rename to api/static/admin/img/LICENSE diff --git a/static/admin/img/README.md b/api/static/admin/img/README.md similarity index 100% rename from static/admin/img/README.md rename to api/static/admin/img/README.md diff --git a/static/admin/img/README.txt b/api/static/admin/img/README.txt similarity index 100% rename from static/admin/img/README.txt rename to api/static/admin/img/README.txt diff --git a/static/admin/img/calendar-icons.svg b/api/static/admin/img/calendar-icons.svg similarity index 100% rename from static/admin/img/calendar-icons.svg rename to api/static/admin/img/calendar-icons.svg diff --git a/static/admin/img/gis/move_vertex_off.svg b/api/static/admin/img/gis/move_vertex_off.svg similarity index 100% rename from static/admin/img/gis/move_vertex_off.svg rename to api/static/admin/img/gis/move_vertex_off.svg diff --git a/static/admin/img/gis/move_vertex_on.svg b/api/static/admin/img/gis/move_vertex_on.svg similarity index 100% rename from static/admin/img/gis/move_vertex_on.svg rename to api/static/admin/img/gis/move_vertex_on.svg diff --git a/static/admin/img/icon-addlink.svg b/api/static/admin/img/icon-addlink.svg similarity index 100% rename from static/admin/img/icon-addlink.svg rename to api/static/admin/img/icon-addlink.svg diff --git a/static/admin/img/icon-alert-dark.svg b/api/static/admin/img/icon-alert-dark.svg similarity index 100% rename from static/admin/img/icon-alert-dark.svg rename to api/static/admin/img/icon-alert-dark.svg diff --git a/static/admin/img/icon-alert.svg b/api/static/admin/img/icon-alert.svg similarity index 100% rename from static/admin/img/icon-alert.svg rename to api/static/admin/img/icon-alert.svg diff --git a/static/admin/img/icon-calendar.svg b/api/static/admin/img/icon-calendar.svg similarity index 100% rename from static/admin/img/icon-calendar.svg rename to api/static/admin/img/icon-calendar.svg diff --git a/static/admin/img/icon-changelink.svg b/api/static/admin/img/icon-changelink.svg similarity index 100% rename from static/admin/img/icon-changelink.svg rename to api/static/admin/img/icon-changelink.svg diff --git a/static/admin/img/icon-clock.svg b/api/static/admin/img/icon-clock.svg similarity index 100% rename from static/admin/img/icon-clock.svg rename to api/static/admin/img/icon-clock.svg diff --git a/static/admin/img/icon-debug-dark.svg b/api/static/admin/img/icon-debug-dark.svg similarity index 100% rename from static/admin/img/icon-debug-dark.svg rename to api/static/admin/img/icon-debug-dark.svg diff --git a/static/admin/img/icon-debug.svg b/api/static/admin/img/icon-debug.svg similarity index 100% rename from static/admin/img/icon-debug.svg rename to api/static/admin/img/icon-debug.svg diff --git a/static/admin/img/icon-deletelink.svg b/api/static/admin/img/icon-deletelink.svg similarity index 100% rename from static/admin/img/icon-deletelink.svg rename to api/static/admin/img/icon-deletelink.svg diff --git a/static/admin/img/icon-hidelink.svg b/api/static/admin/img/icon-hidelink.svg similarity index 100% rename from static/admin/img/icon-hidelink.svg rename to api/static/admin/img/icon-hidelink.svg diff --git a/static/admin/img/icon-info-dark.svg b/api/static/admin/img/icon-info-dark.svg similarity index 100% rename from static/admin/img/icon-info-dark.svg rename to api/static/admin/img/icon-info-dark.svg diff --git a/static/admin/img/icon-info.svg b/api/static/admin/img/icon-info.svg similarity index 100% rename from static/admin/img/icon-info.svg rename to api/static/admin/img/icon-info.svg diff --git a/static/admin/img/icon-no-dark.svg b/api/static/admin/img/icon-no-dark.svg similarity index 100% rename from static/admin/img/icon-no-dark.svg rename to api/static/admin/img/icon-no-dark.svg diff --git a/static/admin/img/icon-no.svg b/api/static/admin/img/icon-no.svg similarity index 100% rename from static/admin/img/icon-no.svg rename to api/static/admin/img/icon-no.svg diff --git a/static/admin/img/icon-unknown-alt.svg b/api/static/admin/img/icon-unknown-alt.svg similarity index 100% rename from static/admin/img/icon-unknown-alt.svg rename to api/static/admin/img/icon-unknown-alt.svg diff --git a/static/admin/img/icon-unknown.svg b/api/static/admin/img/icon-unknown.svg similarity index 100% rename from static/admin/img/icon-unknown.svg rename to api/static/admin/img/icon-unknown.svg diff --git a/static/admin/img/icon-viewlink.svg b/api/static/admin/img/icon-viewlink.svg similarity index 100% rename from static/admin/img/icon-viewlink.svg rename to api/static/admin/img/icon-viewlink.svg diff --git a/static/admin/img/icon-yes-dark.svg b/api/static/admin/img/icon-yes-dark.svg similarity index 100% rename from static/admin/img/icon-yes-dark.svg rename to api/static/admin/img/icon-yes-dark.svg diff --git a/static/admin/img/icon-yes.svg b/api/static/admin/img/icon-yes.svg similarity index 100% rename from static/admin/img/icon-yes.svg rename to api/static/admin/img/icon-yes.svg diff --git a/static/admin/img/inline-delete.svg b/api/static/admin/img/inline-delete.svg similarity index 100% rename from static/admin/img/inline-delete.svg rename to api/static/admin/img/inline-delete.svg diff --git a/static/admin/img/search.svg b/api/static/admin/img/search.svg similarity index 100% rename from static/admin/img/search.svg rename to api/static/admin/img/search.svg diff --git a/static/admin/img/selector-icons.svg b/api/static/admin/img/selector-icons.svg similarity index 100% rename from static/admin/img/selector-icons.svg rename to api/static/admin/img/selector-icons.svg diff --git a/static/admin/img/sorting-icons.svg b/api/static/admin/img/sorting-icons.svg similarity index 100% rename from static/admin/img/sorting-icons.svg rename to api/static/admin/img/sorting-icons.svg diff --git a/static/admin/img/tooltag-add.svg b/api/static/admin/img/tooltag-add.svg similarity index 100% rename from static/admin/img/tooltag-add.svg rename to api/static/admin/img/tooltag-add.svg diff --git a/static/admin/img/tooltag-arrowright.svg b/api/static/admin/img/tooltag-arrowright.svg similarity index 100% rename from static/admin/img/tooltag-arrowright.svg rename to api/static/admin/img/tooltag-arrowright.svg diff --git a/static/admin/js/SelectBox.js b/api/static/admin/js/SelectBox.js similarity index 100% rename from static/admin/js/SelectBox.js rename to api/static/admin/js/SelectBox.js diff --git a/static/admin/js/SelectFilter2.js b/api/static/admin/js/SelectFilter2.js similarity index 100% rename from static/admin/js/SelectFilter2.js rename to api/static/admin/js/SelectFilter2.js diff --git a/static/admin/js/actions.js b/api/static/admin/js/actions.js similarity index 100% rename from static/admin/js/actions.js rename to api/static/admin/js/actions.js diff --git a/static/admin/js/admin/DateTimeShortcuts.js b/api/static/admin/js/admin/DateTimeShortcuts.js similarity index 100% rename from static/admin/js/admin/DateTimeShortcuts.js rename to api/static/admin/js/admin/DateTimeShortcuts.js diff --git a/static/admin/js/admin/RelatedObjectLookups.js b/api/static/admin/js/admin/RelatedObjectLookups.js similarity index 100% rename from static/admin/js/admin/RelatedObjectLookups.js rename to api/static/admin/js/admin/RelatedObjectLookups.js diff --git a/static/admin/js/autocomplete.js b/api/static/admin/js/autocomplete.js similarity index 100% rename from static/admin/js/autocomplete.js rename to api/static/admin/js/autocomplete.js diff --git a/static/admin/js/calendar.js b/api/static/admin/js/calendar.js similarity index 100% rename from static/admin/js/calendar.js rename to api/static/admin/js/calendar.js diff --git a/static/admin/js/cancel.js b/api/static/admin/js/cancel.js similarity index 100% rename from static/admin/js/cancel.js rename to api/static/admin/js/cancel.js diff --git a/static/admin/js/change_form.js b/api/static/admin/js/change_form.js similarity index 100% rename from static/admin/js/change_form.js rename to api/static/admin/js/change_form.js diff --git a/static/admin/js/core.js b/api/static/admin/js/core.js similarity index 100% rename from static/admin/js/core.js rename to api/static/admin/js/core.js diff --git a/static/admin/js/filters.js b/api/static/admin/js/filters.js similarity index 100% rename from static/admin/js/filters.js rename to api/static/admin/js/filters.js diff --git a/static/admin/js/inlines.js b/api/static/admin/js/inlines.js similarity index 100% rename from static/admin/js/inlines.js rename to api/static/admin/js/inlines.js diff --git a/static/admin/js/jquery.init.js b/api/static/admin/js/jquery.init.js similarity index 100% rename from static/admin/js/jquery.init.js rename to api/static/admin/js/jquery.init.js diff --git a/static/admin/js/nav_sidebar.js b/api/static/admin/js/nav_sidebar.js similarity index 100% rename from static/admin/js/nav_sidebar.js rename to api/static/admin/js/nav_sidebar.js diff --git a/static/admin/js/popup_response.js b/api/static/admin/js/popup_response.js similarity index 100% rename from static/admin/js/popup_response.js rename to api/static/admin/js/popup_response.js diff --git a/static/admin/js/prepopulate.js b/api/static/admin/js/prepopulate.js similarity index 100% rename from static/admin/js/prepopulate.js rename to api/static/admin/js/prepopulate.js diff --git a/static/admin/js/prepopulate_init.js b/api/static/admin/js/prepopulate_init.js similarity index 100% rename from static/admin/js/prepopulate_init.js rename to api/static/admin/js/prepopulate_init.js diff --git a/static/admin/js/theme.js b/api/static/admin/js/theme.js similarity index 100% rename from static/admin/js/theme.js rename to api/static/admin/js/theme.js diff --git a/static/admin/js/unusable_password_field.js b/api/static/admin/js/unusable_password_field.js similarity index 100% rename from static/admin/js/unusable_password_field.js rename to api/static/admin/js/unusable_password_field.js diff --git a/static/admin/js/urlify.js b/api/static/admin/js/urlify.js similarity index 100% rename from static/admin/js/urlify.js rename to api/static/admin/js/urlify.js diff --git a/static/admin/js/vendor/jquery/LICENSE.txt b/api/static/admin/js/vendor/jquery/LICENSE.txt similarity index 100% rename from static/admin/js/vendor/jquery/LICENSE.txt rename to api/static/admin/js/vendor/jquery/LICENSE.txt diff --git a/static/admin/js/vendor/jquery/jquery.js b/api/static/admin/js/vendor/jquery/jquery.js similarity index 100% rename from static/admin/js/vendor/jquery/jquery.js rename to api/static/admin/js/vendor/jquery/jquery.js diff --git a/static/admin/js/vendor/jquery/jquery.min.js b/api/static/admin/js/vendor/jquery/jquery.min.js similarity index 100% rename from static/admin/js/vendor/jquery/jquery.min.js rename to api/static/admin/js/vendor/jquery/jquery.min.js diff --git a/static/admin/js/vendor/select2/LICENSE.md b/api/static/admin/js/vendor/select2/LICENSE.md similarity index 100% rename from static/admin/js/vendor/select2/LICENSE.md rename to api/static/admin/js/vendor/select2/LICENSE.md diff --git a/static/admin/js/vendor/select2/i18n/af.js b/api/static/admin/js/vendor/select2/i18n/af.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/af.js rename to api/static/admin/js/vendor/select2/i18n/af.js diff --git a/static/admin/js/vendor/select2/i18n/ar.js b/api/static/admin/js/vendor/select2/i18n/ar.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/ar.js rename to api/static/admin/js/vendor/select2/i18n/ar.js diff --git a/static/admin/js/vendor/select2/i18n/az.js b/api/static/admin/js/vendor/select2/i18n/az.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/az.js rename to api/static/admin/js/vendor/select2/i18n/az.js diff --git a/static/admin/js/vendor/select2/i18n/bg.js b/api/static/admin/js/vendor/select2/i18n/bg.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/bg.js rename to api/static/admin/js/vendor/select2/i18n/bg.js diff --git a/static/admin/js/vendor/select2/i18n/bn.js b/api/static/admin/js/vendor/select2/i18n/bn.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/bn.js rename to api/static/admin/js/vendor/select2/i18n/bn.js diff --git a/static/admin/js/vendor/select2/i18n/bs.js b/api/static/admin/js/vendor/select2/i18n/bs.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/bs.js rename to api/static/admin/js/vendor/select2/i18n/bs.js diff --git a/static/admin/js/vendor/select2/i18n/ca.js b/api/static/admin/js/vendor/select2/i18n/ca.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/ca.js rename to api/static/admin/js/vendor/select2/i18n/ca.js diff --git a/static/admin/js/vendor/select2/i18n/cs.js b/api/static/admin/js/vendor/select2/i18n/cs.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/cs.js rename to api/static/admin/js/vendor/select2/i18n/cs.js diff --git a/static/admin/js/vendor/select2/i18n/da.js b/api/static/admin/js/vendor/select2/i18n/da.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/da.js rename to api/static/admin/js/vendor/select2/i18n/da.js diff --git a/static/admin/js/vendor/select2/i18n/de.js b/api/static/admin/js/vendor/select2/i18n/de.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/de.js rename to api/static/admin/js/vendor/select2/i18n/de.js diff --git a/static/admin/js/vendor/select2/i18n/dsb.js b/api/static/admin/js/vendor/select2/i18n/dsb.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/dsb.js rename to api/static/admin/js/vendor/select2/i18n/dsb.js diff --git a/static/admin/js/vendor/select2/i18n/el.js b/api/static/admin/js/vendor/select2/i18n/el.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/el.js rename to api/static/admin/js/vendor/select2/i18n/el.js diff --git a/static/admin/js/vendor/select2/i18n/en.js b/api/static/admin/js/vendor/select2/i18n/en.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/en.js rename to api/static/admin/js/vendor/select2/i18n/en.js diff --git a/static/admin/js/vendor/select2/i18n/es.js b/api/static/admin/js/vendor/select2/i18n/es.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/es.js rename to api/static/admin/js/vendor/select2/i18n/es.js diff --git a/static/admin/js/vendor/select2/i18n/et.js b/api/static/admin/js/vendor/select2/i18n/et.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/et.js rename to api/static/admin/js/vendor/select2/i18n/et.js diff --git a/static/admin/js/vendor/select2/i18n/eu.js b/api/static/admin/js/vendor/select2/i18n/eu.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/eu.js rename to api/static/admin/js/vendor/select2/i18n/eu.js diff --git a/static/admin/js/vendor/select2/i18n/fa.js b/api/static/admin/js/vendor/select2/i18n/fa.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/fa.js rename to api/static/admin/js/vendor/select2/i18n/fa.js diff --git a/static/admin/js/vendor/select2/i18n/fi.js b/api/static/admin/js/vendor/select2/i18n/fi.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/fi.js rename to api/static/admin/js/vendor/select2/i18n/fi.js diff --git a/static/admin/js/vendor/select2/i18n/fr.js b/api/static/admin/js/vendor/select2/i18n/fr.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/fr.js rename to api/static/admin/js/vendor/select2/i18n/fr.js diff --git a/static/admin/js/vendor/select2/i18n/gl.js b/api/static/admin/js/vendor/select2/i18n/gl.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/gl.js rename to api/static/admin/js/vendor/select2/i18n/gl.js diff --git a/static/admin/js/vendor/select2/i18n/he.js b/api/static/admin/js/vendor/select2/i18n/he.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/he.js rename to api/static/admin/js/vendor/select2/i18n/he.js diff --git a/static/admin/js/vendor/select2/i18n/hi.js b/api/static/admin/js/vendor/select2/i18n/hi.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/hi.js rename to api/static/admin/js/vendor/select2/i18n/hi.js diff --git a/static/admin/js/vendor/select2/i18n/hr.js b/api/static/admin/js/vendor/select2/i18n/hr.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/hr.js rename to api/static/admin/js/vendor/select2/i18n/hr.js diff --git a/static/admin/js/vendor/select2/i18n/hsb.js b/api/static/admin/js/vendor/select2/i18n/hsb.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/hsb.js rename to api/static/admin/js/vendor/select2/i18n/hsb.js diff --git a/static/admin/js/vendor/select2/i18n/hu.js b/api/static/admin/js/vendor/select2/i18n/hu.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/hu.js rename to api/static/admin/js/vendor/select2/i18n/hu.js diff --git a/static/admin/js/vendor/select2/i18n/hy.js b/api/static/admin/js/vendor/select2/i18n/hy.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/hy.js rename to api/static/admin/js/vendor/select2/i18n/hy.js diff --git a/static/admin/js/vendor/select2/i18n/id.js b/api/static/admin/js/vendor/select2/i18n/id.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/id.js rename to api/static/admin/js/vendor/select2/i18n/id.js diff --git a/static/admin/js/vendor/select2/i18n/is.js b/api/static/admin/js/vendor/select2/i18n/is.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/is.js rename to api/static/admin/js/vendor/select2/i18n/is.js diff --git a/static/admin/js/vendor/select2/i18n/it.js b/api/static/admin/js/vendor/select2/i18n/it.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/it.js rename to api/static/admin/js/vendor/select2/i18n/it.js diff --git a/static/admin/js/vendor/select2/i18n/ja.js b/api/static/admin/js/vendor/select2/i18n/ja.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/ja.js rename to api/static/admin/js/vendor/select2/i18n/ja.js diff --git a/static/admin/js/vendor/select2/i18n/ka.js b/api/static/admin/js/vendor/select2/i18n/ka.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/ka.js rename to api/static/admin/js/vendor/select2/i18n/ka.js diff --git a/static/admin/js/vendor/select2/i18n/km.js b/api/static/admin/js/vendor/select2/i18n/km.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/km.js rename to api/static/admin/js/vendor/select2/i18n/km.js diff --git a/static/admin/js/vendor/select2/i18n/ko.js b/api/static/admin/js/vendor/select2/i18n/ko.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/ko.js rename to api/static/admin/js/vendor/select2/i18n/ko.js diff --git a/static/admin/js/vendor/select2/i18n/lt.js b/api/static/admin/js/vendor/select2/i18n/lt.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/lt.js rename to api/static/admin/js/vendor/select2/i18n/lt.js diff --git a/static/admin/js/vendor/select2/i18n/lv.js b/api/static/admin/js/vendor/select2/i18n/lv.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/lv.js rename to api/static/admin/js/vendor/select2/i18n/lv.js diff --git a/static/admin/js/vendor/select2/i18n/mk.js b/api/static/admin/js/vendor/select2/i18n/mk.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/mk.js rename to api/static/admin/js/vendor/select2/i18n/mk.js diff --git a/static/admin/js/vendor/select2/i18n/ms.js b/api/static/admin/js/vendor/select2/i18n/ms.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/ms.js rename to api/static/admin/js/vendor/select2/i18n/ms.js diff --git a/static/admin/js/vendor/select2/i18n/nb.js b/api/static/admin/js/vendor/select2/i18n/nb.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/nb.js rename to api/static/admin/js/vendor/select2/i18n/nb.js diff --git a/static/admin/js/vendor/select2/i18n/ne.js b/api/static/admin/js/vendor/select2/i18n/ne.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/ne.js rename to api/static/admin/js/vendor/select2/i18n/ne.js diff --git a/static/admin/js/vendor/select2/i18n/nl.js b/api/static/admin/js/vendor/select2/i18n/nl.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/nl.js rename to api/static/admin/js/vendor/select2/i18n/nl.js diff --git a/static/admin/js/vendor/select2/i18n/pl.js b/api/static/admin/js/vendor/select2/i18n/pl.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/pl.js rename to api/static/admin/js/vendor/select2/i18n/pl.js diff --git a/static/admin/js/vendor/select2/i18n/ps.js b/api/static/admin/js/vendor/select2/i18n/ps.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/ps.js rename to api/static/admin/js/vendor/select2/i18n/ps.js diff --git a/static/admin/js/vendor/select2/i18n/pt-BR.js b/api/static/admin/js/vendor/select2/i18n/pt-BR.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/pt-BR.js rename to api/static/admin/js/vendor/select2/i18n/pt-BR.js diff --git a/static/admin/js/vendor/select2/i18n/pt.js b/api/static/admin/js/vendor/select2/i18n/pt.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/pt.js rename to api/static/admin/js/vendor/select2/i18n/pt.js diff --git a/static/admin/js/vendor/select2/i18n/ro.js b/api/static/admin/js/vendor/select2/i18n/ro.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/ro.js rename to api/static/admin/js/vendor/select2/i18n/ro.js diff --git a/static/admin/js/vendor/select2/i18n/ru.js b/api/static/admin/js/vendor/select2/i18n/ru.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/ru.js rename to api/static/admin/js/vendor/select2/i18n/ru.js diff --git a/static/admin/js/vendor/select2/i18n/sk.js b/api/static/admin/js/vendor/select2/i18n/sk.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/sk.js rename to api/static/admin/js/vendor/select2/i18n/sk.js diff --git a/static/admin/js/vendor/select2/i18n/sl.js b/api/static/admin/js/vendor/select2/i18n/sl.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/sl.js rename to api/static/admin/js/vendor/select2/i18n/sl.js diff --git a/static/admin/js/vendor/select2/i18n/sq.js b/api/static/admin/js/vendor/select2/i18n/sq.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/sq.js rename to api/static/admin/js/vendor/select2/i18n/sq.js diff --git a/static/admin/js/vendor/select2/i18n/sr-Cyrl.js b/api/static/admin/js/vendor/select2/i18n/sr-Cyrl.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/sr-Cyrl.js rename to api/static/admin/js/vendor/select2/i18n/sr-Cyrl.js diff --git a/static/admin/js/vendor/select2/i18n/sr.js b/api/static/admin/js/vendor/select2/i18n/sr.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/sr.js rename to api/static/admin/js/vendor/select2/i18n/sr.js diff --git a/static/admin/js/vendor/select2/i18n/sv.js b/api/static/admin/js/vendor/select2/i18n/sv.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/sv.js rename to api/static/admin/js/vendor/select2/i18n/sv.js diff --git a/static/admin/js/vendor/select2/i18n/th.js b/api/static/admin/js/vendor/select2/i18n/th.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/th.js rename to api/static/admin/js/vendor/select2/i18n/th.js diff --git a/static/admin/js/vendor/select2/i18n/tk.js b/api/static/admin/js/vendor/select2/i18n/tk.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/tk.js rename to api/static/admin/js/vendor/select2/i18n/tk.js diff --git a/static/admin/js/vendor/select2/i18n/tr.js b/api/static/admin/js/vendor/select2/i18n/tr.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/tr.js rename to api/static/admin/js/vendor/select2/i18n/tr.js diff --git a/static/admin/js/vendor/select2/i18n/uk.js b/api/static/admin/js/vendor/select2/i18n/uk.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/uk.js rename to api/static/admin/js/vendor/select2/i18n/uk.js diff --git a/static/admin/js/vendor/select2/i18n/vi.js b/api/static/admin/js/vendor/select2/i18n/vi.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/vi.js rename to api/static/admin/js/vendor/select2/i18n/vi.js diff --git a/static/admin/js/vendor/select2/i18n/zh-CN.js b/api/static/admin/js/vendor/select2/i18n/zh-CN.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/zh-CN.js rename to api/static/admin/js/vendor/select2/i18n/zh-CN.js diff --git a/static/admin/js/vendor/select2/i18n/zh-TW.js b/api/static/admin/js/vendor/select2/i18n/zh-TW.js similarity index 100% rename from static/admin/js/vendor/select2/i18n/zh-TW.js rename to api/static/admin/js/vendor/select2/i18n/zh-TW.js diff --git a/static/admin/js/vendor/select2/select2.full.js b/api/static/admin/js/vendor/select2/select2.full.js similarity index 100% rename from static/admin/js/vendor/select2/select2.full.js rename to api/static/admin/js/vendor/select2/select2.full.js diff --git a/static/admin/js/vendor/select2/select2.full.min.js b/api/static/admin/js/vendor/select2/select2.full.min.js similarity index 100% rename from static/admin/js/vendor/select2/select2.full.min.js rename to api/static/admin/js/vendor/select2/select2.full.min.js diff --git a/static/admin/js/vendor/xregexp/LICENSE.txt b/api/static/admin/js/vendor/xregexp/LICENSE.txt similarity index 100% rename from static/admin/js/vendor/xregexp/LICENSE.txt rename to api/static/admin/js/vendor/xregexp/LICENSE.txt diff --git a/static/admin/js/vendor/xregexp/xregexp.js b/api/static/admin/js/vendor/xregexp/xregexp.js similarity index 100% rename from static/admin/js/vendor/xregexp/xregexp.js rename to api/static/admin/js/vendor/xregexp/xregexp.js diff --git a/static/admin/js/vendor/xregexp/xregexp.min.js b/api/static/admin/js/vendor/xregexp/xregexp.min.js similarity index 100% rename from static/admin/js/vendor/xregexp/xregexp.min.js rename to api/static/admin/js/vendor/xregexp/xregexp.min.js diff --git a/static/django_extensions/css/jquery.autocomplete.css b/api/static/django_extensions/css/jquery.autocomplete.css similarity index 100% rename from static/django_extensions/css/jquery.autocomplete.css rename to api/static/django_extensions/css/jquery.autocomplete.css diff --git a/static/django_extensions/img/indicator.gif b/api/static/django_extensions/img/indicator.gif similarity index 100% rename from static/django_extensions/img/indicator.gif rename to api/static/django_extensions/img/indicator.gif diff --git a/static/django_extensions/js/jquery.ajaxQueue.js b/api/static/django_extensions/js/jquery.ajaxQueue.js similarity index 100% rename from static/django_extensions/js/jquery.ajaxQueue.js rename to api/static/django_extensions/js/jquery.ajaxQueue.js diff --git a/static/django_extensions/js/jquery.autocomplete.js b/api/static/django_extensions/js/jquery.autocomplete.js similarity index 100% rename from static/django_extensions/js/jquery.autocomplete.js rename to api/static/django_extensions/js/jquery.autocomplete.js diff --git a/static/django_extensions/js/jquery.bgiframe.js b/api/static/django_extensions/js/jquery.bgiframe.js similarity index 100% rename from static/django_extensions/js/jquery.bgiframe.js rename to api/static/django_extensions/js/jquery.bgiframe.js diff --git a/static/ninja/favicon.png b/api/static/ninja/favicon.png similarity index 100% rename from static/ninja/favicon.png rename to api/static/ninja/favicon.png diff --git a/static/ninja/favicon.svg b/api/static/ninja/favicon.svg similarity index 100% rename from static/ninja/favicon.svg rename to api/static/ninja/favicon.svg diff --git a/static/ninja/redoc.standalone.js b/api/static/ninja/redoc.standalone.js similarity index 100% rename from static/ninja/redoc.standalone.js rename to api/static/ninja/redoc.standalone.js diff --git a/static/ninja/redoc.standalone.js.map b/api/static/ninja/redoc.standalone.js.map similarity index 100% rename from static/ninja/redoc.standalone.js.map rename to api/static/ninja/redoc.standalone.js.map diff --git a/static/ninja/swagger-ui-bundle.js b/api/static/ninja/swagger-ui-bundle.js similarity index 100% rename from static/ninja/swagger-ui-bundle.js rename to api/static/ninja/swagger-ui-bundle.js diff --git a/static/ninja/swagger-ui-bundle.js.map b/api/static/ninja/swagger-ui-bundle.js.map similarity index 100% rename from static/ninja/swagger-ui-bundle.js.map rename to api/static/ninja/swagger-ui-bundle.js.map diff --git a/static/ninja/swagger-ui-init.js b/api/static/ninja/swagger-ui-init.js similarity index 100% rename from static/ninja/swagger-ui-init.js rename to api/static/ninja/swagger-ui-init.js diff --git a/static/ninja/swagger-ui.css b/api/static/ninja/swagger-ui.css similarity index 100% rename from static/ninja/swagger-ui.css rename to api/static/ninja/swagger-ui.css diff --git a/static/ninja/swagger-ui.css.map b/api/static/ninja/swagger-ui.css.map similarity index 100% rename from static/ninja/swagger-ui.css.map rename to api/static/ninja/swagger-ui.css.map diff --git a/submission/__init__.py b/api/submission/__init__.py similarity index 100% rename from submission/__init__.py rename to api/submission/__init__.py diff --git a/submission/admin.py b/api/submission/admin.py similarity index 100% rename from submission/admin.py rename to api/submission/admin.py diff --git a/submission/api.py b/api/submission/api.py similarity index 100% rename from submission/api.py rename to api/submission/api.py diff --git a/submission/apps.py b/api/submission/apps.py similarity index 100% rename from submission/apps.py rename to api/submission/apps.py diff --git a/submission/classifier.py b/api/submission/classifier.py similarity index 100% rename from submission/classifier.py rename to api/submission/classifier.py diff --git a/submission/gradebook.py b/api/submission/gradebook.py similarity index 100% rename from submission/gradebook.py rename to api/submission/gradebook.py diff --git a/submission/management/__init__.py b/api/submission/management/__init__.py similarity index 100% rename from submission/management/__init__.py rename to api/submission/management/__init__.py diff --git a/submission/management/commands/__init__.py b/api/submission/management/commands/__init__.py similarity index 100% rename from submission/management/commands/__init__.py rename to api/submission/management/commands/__init__.py diff --git a/submission/management/commands/classify_messages.py b/api/submission/management/commands/classify_messages.py similarity index 100% rename from submission/management/commands/classify_messages.py rename to api/submission/management/commands/classify_messages.py diff --git a/submission/management/commands/classify_prompts.py b/api/submission/management/commands/classify_prompts.py similarity index 100% rename from submission/management/commands/classify_prompts.py rename to api/submission/management/commands/classify_prompts.py diff --git a/submission/management/commands/recalculate_scores.py b/api/submission/management/commands/recalculate_scores.py similarity index 100% rename from submission/management/commands/recalculate_scores.py rename to api/submission/management/commands/recalculate_scores.py diff --git a/submission/migrations/0001_initial.py b/api/submission/migrations/0001_initial.py similarity index 100% rename from submission/migrations/0001_initial.py rename to api/submission/migrations/0001_initial.py diff --git a/submission/migrations/0002_remove_submission_referee_alter_submission_score_and_more.py b/api/submission/migrations/0002_remove_submission_referee_alter_submission_score_and_more.py similarity index 100% rename from submission/migrations/0002_remove_submission_referee_alter_submission_score_and_more.py rename to api/submission/migrations/0002_remove_submission_referee_alter_submission_score_and_more.py diff --git a/submission/migrations/0003_submission_conversation.py b/api/submission/migrations/0003_submission_conversation.py similarity index 100% rename from submission/migrations/0003_submission_conversation.py rename to api/submission/migrations/0003_submission_conversation.py diff --git a/submission/migrations/0004_submission_flag.py b/api/submission/migrations/0004_submission_flag.py similarity index 100% rename from submission/migrations/0004_submission_flag.py rename to api/submission/migrations/0004_submission_flag.py diff --git a/submission/migrations/0005_add_flag_index.py b/api/submission/migrations/0005_add_flag_index.py similarity index 100% rename from submission/migrations/0005_add_flag_index.py rename to api/submission/migrations/0005_add_flag_index.py diff --git a/submission/migrations/0006_add_raw_score_nominated.py b/api/submission/migrations/0006_add_raw_score_nominated.py similarity index 100% rename from submission/migrations/0006_add_raw_score_nominated.py rename to api/submission/migrations/0006_add_raw_score_nominated.py diff --git a/submission/migrations/0007_remove_nominated.py b/api/submission/migrations/0007_remove_nominated.py similarity index 100% rename from submission/migrations/0007_remove_nominated.py rename to api/submission/migrations/0007_remove_nominated.py diff --git a/submission/migrations/0008_add_zone.py b/api/submission/migrations/0008_add_zone.py similarity index 100% rename from submission/migrations/0008_add_zone.py rename to api/submission/migrations/0008_add_zone.py diff --git a/submission/migrations/0009_add_view_count.py b/api/submission/migrations/0009_add_view_count.py similarity index 100% rename from submission/migrations/0009_add_view_count.py rename to api/submission/migrations/0009_add_view_count.py diff --git a/submission/migrations/0010_remove_conversation_fk.py b/api/submission/migrations/0010_remove_conversation_fk.py similarity index 100% rename from submission/migrations/0010_remove_conversation_fk.py rename to api/submission/migrations/0010_remove_conversation_fk.py diff --git a/submission/migrations/0011_add_award_submissionaward.py b/api/submission/migrations/0011_add_award_submissionaward.py similarity index 100% rename from submission/migrations/0011_add_award_submissionaward.py rename to api/submission/migrations/0011_add_award_submissionaward.py diff --git a/submission/migrations/0012_submissionaward_is_stale.py b/api/submission/migrations/0012_submissionaward_is_stale.py similarity index 100% rename from submission/migrations/0012_submissionaward_is_stale.py rename to api/submission/migrations/0012_submissionaward_is_stale.py diff --git a/submission/migrations/__init__.py b/api/submission/migrations/__init__.py similarity index 100% rename from submission/migrations/__init__.py rename to api/submission/migrations/__init__.py diff --git a/submission/models.py b/api/submission/models.py similarity index 100% rename from submission/models.py rename to api/submission/models.py diff --git a/submission/schemas.py b/api/submission/schemas.py similarity index 100% rename from submission/schemas.py rename to api/submission/schemas.py diff --git a/submission/tests.py b/api/submission/tests.py similarity index 100% rename from submission/tests.py rename to api/submission/tests.py diff --git a/task/__init__.py b/api/task/__init__.py similarity index 100% rename from task/__init__.py rename to api/task/__init__.py diff --git a/task/admin.py b/api/task/admin.py similarity index 100% rename from task/admin.py rename to api/task/admin.py diff --git a/task/apps.py b/api/task/apps.py similarity index 100% rename from task/apps.py rename to api/task/apps.py diff --git a/task/assets.py b/api/task/assets.py similarity index 100% rename from task/assets.py rename to api/task/assets.py diff --git a/task/challenge.py b/api/task/challenge.py similarity index 100% rename from task/challenge.py rename to api/task/challenge.py diff --git a/task/creation.py b/api/task/creation.py similarity index 100% rename from task/creation.py rename to api/task/creation.py diff --git a/task/migrations/0001_initial.py b/api/task/migrations/0001_initial.py similarity index 100% rename from task/migrations/0001_initial.py rename to api/task/migrations/0001_initial.py diff --git a/task/migrations/0002_alter_task_display.py b/api/task/migrations/0002_alter_task_display.py similarity index 100% rename from task/migrations/0002_alter_task_display.py rename to api/task/migrations/0002_alter_task_display.py diff --git a/task/migrations/0003_alter_task_content_alter_task_display_and_more.py b/api/task/migrations/0003_alter_task_content_alter_task_display_and_more.py similarity index 100% rename from task/migrations/0003_alter_task_content_alter_task_display_and_more.py rename to api/task/migrations/0003_alter_task_content_alter_task_display_and_more.py diff --git a/task/migrations/0004_alter_task_task_type.py b/api/task/migrations/0004_alter_task_task_type.py similarity index 100% rename from task/migrations/0004_alter_task_task_type.py rename to api/task/migrations/0004_alter_task_task_type.py diff --git a/task/migrations/0005_alter_task_options_alter_task_display_and_more.py b/api/task/migrations/0005_alter_task_options_alter_task_display_and_more.py similarity index 100% rename from task/migrations/0005_alter_task_options_alter_task_display_and_more.py rename to api/task/migrations/0005_alter_task_options_alter_task_display_and_more.py diff --git a/task/migrations/0006_challenge_pass_score.py b/api/task/migrations/0006_challenge_pass_score.py similarity index 100% rename from task/migrations/0006_challenge_pass_score.py rename to api/task/migrations/0006_challenge_pass_score.py diff --git a/task/migrations/0007_taskasset.py b/api/task/migrations/0007_taskasset.py similarity index 100% rename from task/migrations/0007_taskasset.py rename to api/task/migrations/0007_taskasset.py diff --git a/task/migrations/0008_challenge_author.py b/api/task/migrations/0008_challenge_author.py similarity index 100% rename from task/migrations/0008_challenge_author.py rename to api/task/migrations/0008_challenge_author.py diff --git a/task/migrations/0009_task_example_css_task_example_html_task_example_js.py b/api/task/migrations/0009_task_example_css_task_example_html_task_example_js.py similarity index 100% rename from task/migrations/0009_task_example_css_task_example_html_task_example_js.py rename to api/task/migrations/0009_task_example_css_task_example_html_task_example_js.py diff --git a/task/migrations/0010_alter_task_task_type_creation.py b/api/task/migrations/0010_alter_task_task_type_creation.py similarity index 100% rename from task/migrations/0010_alter_task_task_type_creation.py rename to api/task/migrations/0010_alter_task_task_type_creation.py diff --git a/task/migrations/__init__.py b/api/task/migrations/__init__.py similarity index 100% rename from task/migrations/__init__.py rename to api/task/migrations/__init__.py diff --git a/task/models.py b/api/task/models.py similarity index 100% rename from task/models.py rename to api/task/models.py diff --git a/task/schemas.py b/api/task/schemas.py similarity index 100% rename from task/schemas.py rename to api/task/schemas.py diff --git a/task/tests.py b/api/task/tests.py similarity index 100% rename from task/tests.py rename to api/task/tests.py diff --git a/task/tutorial.py b/api/task/tutorial.py similarity index 100% rename from task/tutorial.py rename to api/task/tutorial.py diff --git a/utils/__init__.py b/api/utils/__init__.py similarity index 100% rename from utils/__init__.py rename to api/utils/__init__.py diff --git a/utils/upload.py b/api/utils/upload.py similarity index 100% rename from utils/upload.py rename to api/utils/upload.py diff --git a/uv.lock b/api/uv.lock similarity index 100% rename from uv.lock rename to api/uv.lock