diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..13566b81b018ad684f3a35fee301741b2734c8f4 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/ams.iml b/.idea/ams.iml new file mode 100644 index 0000000000000000000000000000000000000000..2179ddac7ac8cfe0c04bd35ca0d25139e247841a --- /dev/null +++ b/.idea/ams.iml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000000000000000000000000000000000000..105ce2da2d6447d11dfe32bfb846c3d5b199fc99 --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000000000000000000000000000000000000..d1e22ecb89619a9c2dcf51a28d891a196d2462a0 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000000000000000000000000000000000000..85492d9e59f0f33274b94e2c271db566b51e350b --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000000000000000000000000000000000000..95b8ad06c0e7e1bc4b6c883ee3ee0b5596440a29 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + { + "keyToString": { + "RunOnceActivity.OpenProjectViewOnStart": "true", + "RunOnceActivity.ShowReadmeOnStart": "true", + "WebServerToolWindowFactoryState": "false", + "node.js.detected.package.eslint": "true", + "node.js.detected.package.tslint": "true", + "node.js.selected.package.eslint": "(autodetect)", + "node.js.selected.package.tslint": "(autodetect)", + "vue.rearranger.settings.migration": "true" + } +} + + + + + + + + + + 1703786437739 + + + + + + \ No newline at end of file diff --git a/__pycache__/manage.cpython-38.pyc b/__pycache__/manage.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..25c4de69f672f0f9a71e2150eb36ebd17ee0e005 Binary files /dev/null and b/__pycache__/manage.cpython-38.pyc differ diff --git a/ams/__init__.py b/ams/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/ams/__pycache__/__init__.cpython-310.pyc b/ams/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b4ed7e66eaaf8d08efa1257d722d41255292187a Binary files /dev/null and b/ams/__pycache__/__init__.cpython-310.pyc differ diff --git a/ams/__pycache__/__init__.cpython-311.pyc b/ams/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f49f75277650320f52a3c77af077119eb247c240 Binary files /dev/null and b/ams/__pycache__/__init__.cpython-311.pyc differ diff --git a/ams/__pycache__/__init__.cpython-38.pyc b/ams/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..84cc628ccdd3a59e5e927c179190a5e06e9302c0 Binary files /dev/null and b/ams/__pycache__/__init__.cpython-38.pyc differ diff --git a/ams/__pycache__/settings.cpython-310.pyc b/ams/__pycache__/settings.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7742a6a17b35493fc808769e4b41f71863d169d2 Binary files /dev/null and b/ams/__pycache__/settings.cpython-310.pyc differ diff --git a/ams/__pycache__/settings.cpython-311.pyc b/ams/__pycache__/settings.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a3773574534b60e27871082b895d6905c8d9f5bc Binary files /dev/null and b/ams/__pycache__/settings.cpython-311.pyc differ diff --git a/ams/__pycache__/settings.cpython-38.pyc b/ams/__pycache__/settings.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d9b93883c50b253d811ea7fe264912281313f8ef Binary files /dev/null and b/ams/__pycache__/settings.cpython-38.pyc differ diff --git a/ams/__pycache__/urls.cpython-310.pyc b/ams/__pycache__/urls.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5e28e599502e88d7258bee82f4d20a6acf25c4c8 Binary files /dev/null and b/ams/__pycache__/urls.cpython-310.pyc differ diff --git a/ams/__pycache__/urls.cpython-311.pyc b/ams/__pycache__/urls.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..edf1542df9d347e7b601048852082392a0e67e9d Binary files /dev/null and b/ams/__pycache__/urls.cpython-311.pyc differ diff --git a/ams/__pycache__/urls.cpython-38.pyc b/ams/__pycache__/urls.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1809087cd53e90508870a2d6edd4d724916836ab Binary files /dev/null and b/ams/__pycache__/urls.cpython-38.pyc differ diff --git a/ams/__pycache__/wsgi.cpython-38.pyc b/ams/__pycache__/wsgi.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5a0e8e11ab69712f23b411c3f6c68e9b4f76b373 Binary files /dev/null and b/ams/__pycache__/wsgi.cpython-38.pyc differ diff --git a/ams/settings.py b/ams/settings.py new file mode 100644 index 0000000000000000000000000000000000000000..1347643780e870cee980294d449b427e6dc53502 --- /dev/null +++ b/ams/settings.py @@ -0,0 +1,127 @@ +""" +Django settings for ams project. + +Generated by 'django-admin startproject' using Django 2.2.12. + +For more information on this file, see +https://docs.djangoproject.com/en/2.2/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/2.2/ref/settings/ +""" + +import os + +# Build paths inside the project like this: os.path.join(BASE_DIR, ...) +BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = '(+a+y$0_b#0)c!i^oe*(b1azmlm=v50u6&9ise&d54io0&kig2' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'prediction' +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = 'ams.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [BASE_DIR,'templates/'], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = 'ams.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/2.2/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), + } +} + + +# Password validation +# https://docs.djangoproject.com/en/2.2/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/2.2/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_L10N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/2.2/howto/static-files/ + +STATIC_URL = '/static/' +STATIC_ROOT = os.path.join(BASE_DIR, 'static') + + + +MEDIA_URL = '/media/' +MEDIA_ROOT = os.path.join(BASE_DIR, 'media') diff --git a/ams/urls.py b/ams/urls.py new file mode 100644 index 0000000000000000000000000000000000000000..1cc277b48cfd45163c806e3f07a0a277d89af3e8 --- /dev/null +++ b/ams/urls.py @@ -0,0 +1,22 @@ +"""ams URL Configuration + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/2.2/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.urls import include, path + 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) +""" +from django.contrib import admin +from django.urls import path,include + +urlpatterns = [ + path('admin/', admin.site.urls), + path('',include('prediction.urls')) +] diff --git a/ams/wsgi.py b/ams/wsgi.py new file mode 100644 index 0000000000000000000000000000000000000000..5337849a4c05ecd8b58accaf427b954ad9441cc0 --- /dev/null +++ b/ams/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for ams project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/2.2/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'ams.settings') + +application = get_wsgi_application() diff --git a/db.sqlite3 b/db.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..821e8375d6b654861888e569a8e8415f8128de0c Binary files /dev/null and b/db.sqlite3 differ diff --git a/manage.py b/manage.py new file mode 100644 index 0000000000000000000000000000000000000000..de218ab80c4b03c8c62ff1eedace246308b4af8f --- /dev/null +++ b/manage.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python3 +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'ams.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/media/images/....PNG b/media/images/....PNG new file mode 100644 index 0000000000000000000000000000000000000000..b8e4fff5e2512b742abb83bcf289b32feae04acc Binary files /dev/null and b/media/images/....PNG differ diff --git a/media/images/1022.PNG b/media/images/1022.PNG new file mode 100644 index 0000000000000000000000000000000000000000..da9043b47956f8fb916f04523170b47cb417b304 Binary files /dev/null and b/media/images/1022.PNG differ diff --git a/media/images/11_result.PNG b/media/images/11_result.PNG new file mode 100644 index 0000000000000000000000000000000000000000..febffbfe68eee4f4da8060b5b6195f5f0f097540 Binary files /dev/null and b/media/images/11_result.PNG differ diff --git a/media/images/11_result_ZFiGJcw.PNG b/media/images/11_result_ZFiGJcw.PNG new file mode 100644 index 0000000000000000000000000000000000000000..febffbfe68eee4f4da8060b5b6195f5f0f097540 Binary files /dev/null and b/media/images/11_result_ZFiGJcw.PNG differ diff --git a/media/images/11_result_kGUHYdg.PNG b/media/images/11_result_kGUHYdg.PNG new file mode 100644 index 0000000000000000000000000000000000000000..febffbfe68eee4f4da8060b5b6195f5f0f097540 Binary files /dev/null and b/media/images/11_result_kGUHYdg.PNG differ diff --git a/media/images/11_result_vIafYgm.PNG b/media/images/11_result_vIafYgm.PNG new file mode 100644 index 0000000000000000000000000000000000000000..febffbfe68eee4f4da8060b5b6195f5f0f097540 Binary files /dev/null and b/media/images/11_result_vIafYgm.PNG differ diff --git a/media/images/1zzzzzz.PNG b/media/images/1zzzzzz.PNG new file mode 100644 index 0000000000000000000000000000000000000000..4b1b884579944c51c72e7e9f3586b3f0e466ed9d Binary files /dev/null and b/media/images/1zzzzzz.PNG differ diff --git a/media/images/2.PNG b/media/images/2.PNG new file mode 100644 index 0000000000000000000000000000000000000000..5f855c8a1de3b4bcd78dd33e0b390d93fc98f5b7 Binary files /dev/null and b/media/images/2.PNG differ diff --git a/media/images/22222result.PNG b/media/images/22222result.PNG new file mode 100644 index 0000000000000000000000000000000000000000..c6fab39c27e0758223b8e996365f34c6f0cf3edd Binary files /dev/null and b/media/images/22222result.PNG differ diff --git a/media/images/22222result_ENDGM5O.PNG b/media/images/22222result_ENDGM5O.PNG new file mode 100644 index 0000000000000000000000000000000000000000..c6fab39c27e0758223b8e996365f34c6f0cf3edd Binary files /dev/null and b/media/images/22222result_ENDGM5O.PNG differ diff --git a/media/images/22222result_m5j6Feq.PNG b/media/images/22222result_m5j6Feq.PNG new file mode 100644 index 0000000000000000000000000000000000000000..c6fab39c27e0758223b8e996365f34c6f0cf3edd Binary files /dev/null and b/media/images/22222result_m5j6Feq.PNG differ diff --git a/media/images/22222result_n0yRsIo.PNG b/media/images/22222result_n0yRsIo.PNG new file mode 100644 index 0000000000000000000000000000000000000000..c6fab39c27e0758223b8e996365f34c6f0cf3edd Binary files /dev/null and b/media/images/22222result_n0yRsIo.PNG differ diff --git a/media/images/233.PNG b/media/images/233.PNG new file mode 100644 index 0000000000000000000000000000000000000000..db88fda36676f2e58a1b7c7339fa37ca93fe0376 Binary files /dev/null and b/media/images/233.PNG differ diff --git a/media/images/233_5Ns6rxj.PNG b/media/images/233_5Ns6rxj.PNG new file mode 100644 index 0000000000000000000000000000000000000000..db88fda36676f2e58a1b7c7339fa37ca93fe0376 Binary files /dev/null and b/media/images/233_5Ns6rxj.PNG differ diff --git a/media/images/233_BF0mWhq.PNG b/media/images/233_BF0mWhq.PNG new file mode 100644 index 0000000000000000000000000000000000000000..db88fda36676f2e58a1b7c7339fa37ca93fe0376 Binary files /dev/null and b/media/images/233_BF0mWhq.PNG differ diff --git a/media/images/233_qMmaL6B.PNG b/media/images/233_qMmaL6B.PNG new file mode 100644 index 0000000000000000000000000000000000000000..db88fda36676f2e58a1b7c7339fa37ca93fe0376 Binary files /dev/null and b/media/images/233_qMmaL6B.PNG differ diff --git a/media/images/2_4a9hoMp.PNG b/media/images/2_4a9hoMp.PNG new file mode 100644 index 0000000000000000000000000000000000000000..5f855c8a1de3b4bcd78dd33e0b390d93fc98f5b7 Binary files /dev/null and b/media/images/2_4a9hoMp.PNG differ diff --git a/media/images/2_OML0Nuc.PNG b/media/images/2_OML0Nuc.PNG new file mode 100644 index 0000000000000000000000000000000000000000..5f855c8a1de3b4bcd78dd33e0b390d93fc98f5b7 Binary files /dev/null and b/media/images/2_OML0Nuc.PNG differ diff --git a/media/images/2_UNE7Pmq.PNG b/media/images/2_UNE7Pmq.PNG new file mode 100644 index 0000000000000000000000000000000000000000..5f855c8a1de3b4bcd78dd33e0b390d93fc98f5b7 Binary files /dev/null and b/media/images/2_UNE7Pmq.PNG differ diff --git a/media/images/2_WYMiLaX.PNG b/media/images/2_WYMiLaX.PNG new file mode 100644 index 0000000000000000000000000000000000000000..5f855c8a1de3b4bcd78dd33e0b390d93fc98f5b7 Binary files /dev/null and b/media/images/2_WYMiLaX.PNG differ diff --git a/media/images/2_f60z0g5.PNG b/media/images/2_f60z0g5.PNG new file mode 100644 index 0000000000000000000000000000000000000000..5f855c8a1de3b4bcd78dd33e0b390d93fc98f5b7 Binary files /dev/null and b/media/images/2_f60z0g5.PNG differ diff --git a/media/images/2_gZUgaBb.PNG b/media/images/2_gZUgaBb.PNG new file mode 100644 index 0000000000000000000000000000000000000000..5f855c8a1de3b4bcd78dd33e0b390d93fc98f5b7 Binary files /dev/null and b/media/images/2_gZUgaBb.PNG differ diff --git a/media/images/2_jylMS6D.PNG b/media/images/2_jylMS6D.PNG new file mode 100644 index 0000000000000000000000000000000000000000..5f855c8a1de3b4bcd78dd33e0b390d93fc98f5b7 Binary files /dev/null and b/media/images/2_jylMS6D.PNG differ diff --git a/media/images/2_kmypXLt.PNG b/media/images/2_kmypXLt.PNG new file mode 100644 index 0000000000000000000000000000000000000000..5f855c8a1de3b4bcd78dd33e0b390d93fc98f5b7 Binary files /dev/null and b/media/images/2_kmypXLt.PNG differ diff --git a/media/images/2_o1IUV5E.PNG b/media/images/2_o1IUV5E.PNG new file mode 100644 index 0000000000000000000000000000000000000000..5f855c8a1de3b4bcd78dd33e0b390d93fc98f5b7 Binary files /dev/null and b/media/images/2_o1IUV5E.PNG differ diff --git a/media/images/2_p1WH2sk.PNG b/media/images/2_p1WH2sk.PNG new file mode 100644 index 0000000000000000000000000000000000000000..5f855c8a1de3b4bcd78dd33e0b390d93fc98f5b7 Binary files /dev/null and b/media/images/2_p1WH2sk.PNG differ diff --git a/media/images/2_xzwXhRZ.PNG b/media/images/2_xzwXhRZ.PNG new file mode 100644 index 0000000000000000000000000000000000000000..5f855c8a1de3b4bcd78dd33e0b390d93fc98f5b7 Binary files /dev/null and b/media/images/2_xzwXhRZ.PNG differ diff --git a/media/images/FAIZ.jpg b/media/images/FAIZ.jpg new file mode 100644 index 0000000000000000000000000000000000000000..94a991f9ec90c198bbc7e3cd27da3cc6edab503e Binary files /dev/null and b/media/images/FAIZ.jpg differ diff --git a/media/images/FAIZ_5ljrRAw.jpg b/media/images/FAIZ_5ljrRAw.jpg new file mode 100644 index 0000000000000000000000000000000000000000..94a991f9ec90c198bbc7e3cd27da3cc6edab503e Binary files /dev/null and b/media/images/FAIZ_5ljrRAw.jpg differ diff --git a/media/images/FAIZ_BtIv59a.jpg b/media/images/FAIZ_BtIv59a.jpg new file mode 100644 index 0000000000000000000000000000000000000000..94a991f9ec90c198bbc7e3cd27da3cc6edab503e Binary files /dev/null and b/media/images/FAIZ_BtIv59a.jpg differ diff --git a/media/images/FAIZ_E2lTlmM.jpg b/media/images/FAIZ_E2lTlmM.jpg new file mode 100644 index 0000000000000000000000000000000000000000..94a991f9ec90c198bbc7e3cd27da3cc6edab503e Binary files /dev/null and b/media/images/FAIZ_E2lTlmM.jpg differ diff --git a/media/images/FAIZ_z6RktFd.jpg b/media/images/FAIZ_z6RktFd.jpg new file mode 100644 index 0000000000000000000000000000000000000000..94a991f9ec90c198bbc7e3cd27da3cc6edab503e Binary files /dev/null and b/media/images/FAIZ_z6RktFd.jpg differ diff --git a/media/images/HOME_TUITION.jpg b/media/images/HOME_TUITION.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2c9002362eab721ba1ba6a6bd661624007ea0a15 Binary files /dev/null and b/media/images/HOME_TUITION.jpg differ diff --git a/media/images/HOME_TUITION_1.jpg b/media/images/HOME_TUITION_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..86ec8c7b51999a78490b49edc85f4c60667fbd8f Binary files /dev/null and b/media/images/HOME_TUITION_1.jpg differ diff --git a/media/images/HOME_TUITION_1_GvbFKmI.jpg b/media/images/HOME_TUITION_1_GvbFKmI.jpg new file mode 100644 index 0000000000000000000000000000000000000000..86ec8c7b51999a78490b49edc85f4c60667fbd8f Binary files /dev/null and b/media/images/HOME_TUITION_1_GvbFKmI.jpg differ diff --git a/media/images/HOME_TUITION_1_Qy00XFh.jpg b/media/images/HOME_TUITION_1_Qy00XFh.jpg new file mode 100644 index 0000000000000000000000000000000000000000..86ec8c7b51999a78490b49edc85f4c60667fbd8f Binary files /dev/null and b/media/images/HOME_TUITION_1_Qy00XFh.jpg differ diff --git a/media/images/HOME_TUITION_1_mEJLXpE.jpg b/media/images/HOME_TUITION_1_mEJLXpE.jpg new file mode 100644 index 0000000000000000000000000000000000000000..86ec8c7b51999a78490b49edc85f4c60667fbd8f Binary files /dev/null and b/media/images/HOME_TUITION_1_mEJLXpE.jpg differ diff --git a/media/images/Unique_Threads.png b/media/images/Unique_Threads.png new file mode 100644 index 0000000000000000000000000000000000000000..23c667cf2cb2773aea968c7c5ade81a00bd7a5b3 Binary files /dev/null and b/media/images/Unique_Threads.png differ diff --git a/media/images/Unique_Threads_5dXGaIH.png b/media/images/Unique_Threads_5dXGaIH.png new file mode 100644 index 0000000000000000000000000000000000000000..23c667cf2cb2773aea968c7c5ade81a00bd7a5b3 Binary files /dev/null and b/media/images/Unique_Threads_5dXGaIH.png differ diff --git a/media/images/WALEED.jpg b/media/images/WALEED.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2333d844aa6e88145102d6958a11246765432ef6 Binary files /dev/null and b/media/images/WALEED.jpg differ diff --git a/media/images/WALEED_xfZt8HF.jpg b/media/images/WALEED_xfZt8HF.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2333d844aa6e88145102d6958a11246765432ef6 Binary files /dev/null and b/media/images/WALEED_xfZt8HF.jpg differ diff --git a/media/images/WhatsApp_Image_2023-10-19_at_1.31.40_PM.jpeg b/media/images/WhatsApp_Image_2023-10-19_at_1.31.40_PM.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..32dbefe50b5e2d0ac2cf6ba5e8c087a780e8ef32 Binary files /dev/null and b/media/images/WhatsApp_Image_2023-10-19_at_1.31.40_PM.jpeg differ diff --git a/media/images/WhatsApp_Image_2023-10-19_at_1.31.40_PM_43ETIN7.jpeg b/media/images/WhatsApp_Image_2023-10-19_at_1.31.40_PM_43ETIN7.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..32dbefe50b5e2d0ac2cf6ba5e8c087a780e8ef32 Binary files /dev/null and b/media/images/WhatsApp_Image_2023-10-19_at_1.31.40_PM_43ETIN7.jpeg differ diff --git a/media/images/WhatsApp_Image_2023-10-19_at_1.31.40_PM_MwQjwvM.jpeg b/media/images/WhatsApp_Image_2023-10-19_at_1.31.40_PM_MwQjwvM.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..32dbefe50b5e2d0ac2cf6ba5e8c087a780e8ef32 Binary files /dev/null and b/media/images/WhatsApp_Image_2023-10-19_at_1.31.40_PM_MwQjwvM.jpeg differ diff --git a/media/images/WhatsApp_Image_2023-10-19_at_1.31.40_PM_QN5LmRK.jpeg b/media/images/WhatsApp_Image_2023-10-19_at_1.31.40_PM_QN5LmRK.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..32dbefe50b5e2d0ac2cf6ba5e8c087a780e8ef32 Binary files /dev/null and b/media/images/WhatsApp_Image_2023-10-19_at_1.31.40_PM_QN5LmRK.jpeg differ diff --git a/media/images/WhatsApp_Image_2023-10-19_at_1.31.40_PM_eC1pFdV.jpeg b/media/images/WhatsApp_Image_2023-10-19_at_1.31.40_PM_eC1pFdV.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..32dbefe50b5e2d0ac2cf6ba5e8c087a780e8ef32 Binary files /dev/null and b/media/images/WhatsApp_Image_2023-10-19_at_1.31.40_PM_eC1pFdV.jpeg differ diff --git a/media/images/WhatsApp_Image_2023-11-03_at_10.09.18_PM.jpeg b/media/images/WhatsApp_Image_2023-11-03_at_10.09.18_PM.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..59b2ca29cc24e095dedabbe4a7f85e3422bb0b59 Binary files /dev/null and b/media/images/WhatsApp_Image_2023-11-03_at_10.09.18_PM.jpeg differ diff --git a/media/images/WhatsApp_Image_2023-11-03_at_10.09.18_PM_AWZ1qLL.jpeg b/media/images/WhatsApp_Image_2023-11-03_at_10.09.18_PM_AWZ1qLL.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..59b2ca29cc24e095dedabbe4a7f85e3422bb0b59 Binary files /dev/null and b/media/images/WhatsApp_Image_2023-11-03_at_10.09.18_PM_AWZ1qLL.jpeg differ diff --git a/media/images/WhatsApp_Image_2023-11-03_at_10.09.18_PM_PpzM31W.jpeg b/media/images/WhatsApp_Image_2023-11-03_at_10.09.18_PM_PpzM31W.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..59b2ca29cc24e095dedabbe4a7f85e3422bb0b59 Binary files /dev/null and b/media/images/WhatsApp_Image_2023-11-03_at_10.09.18_PM_PpzM31W.jpeg differ diff --git a/media/images/WhatsApp_Image_2023-11-03_at_10.09.18_PM_V59u7uc.jpeg b/media/images/WhatsApp_Image_2023-11-03_at_10.09.18_PM_V59u7uc.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..59b2ca29cc24e095dedabbe4a7f85e3422bb0b59 Binary files /dev/null and b/media/images/WhatsApp_Image_2023-11-03_at_10.09.18_PM_V59u7uc.jpeg differ diff --git a/media/images/WhatsApp_Image_2023-11-03_at_10.09.18_PM_s1dZiSL.jpeg b/media/images/WhatsApp_Image_2023-11-03_at_10.09.18_PM_s1dZiSL.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..59b2ca29cc24e095dedabbe4a7f85e3422bb0b59 Binary files /dev/null and b/media/images/WhatsApp_Image_2023-11-03_at_10.09.18_PM_s1dZiSL.jpeg differ diff --git a/media/images/image11_rotated_40.jpg_face_0.jpg b/media/images/image11_rotated_40.jpg_face_0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88be147f0961ba63df180f939a6dea4accf5cb55 Binary files /dev/null and b/media/images/image11_rotated_40.jpg_face_0.jpg differ diff --git a/media/images/image11_rotated_40.jpg_face_0_1Dzy0aP.jpg b/media/images/image11_rotated_40.jpg_face_0_1Dzy0aP.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88be147f0961ba63df180f939a6dea4accf5cb55 Binary files /dev/null and b/media/images/image11_rotated_40.jpg_face_0_1Dzy0aP.jpg differ diff --git a/media/images/image11_rotated_40.jpg_face_0_A3UbI8t.jpg b/media/images/image11_rotated_40.jpg_face_0_A3UbI8t.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88be147f0961ba63df180f939a6dea4accf5cb55 Binary files /dev/null and b/media/images/image11_rotated_40.jpg_face_0_A3UbI8t.jpg differ diff --git a/media/images/image11_rotated_40.jpg_face_0_Dch4pVT.jpg b/media/images/image11_rotated_40.jpg_face_0_Dch4pVT.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88be147f0961ba63df180f939a6dea4accf5cb55 Binary files /dev/null and b/media/images/image11_rotated_40.jpg_face_0_Dch4pVT.jpg differ diff --git a/media/images/image11_rotated_40.jpg_face_0_HgWU3OE.jpg b/media/images/image11_rotated_40.jpg_face_0_HgWU3OE.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88be147f0961ba63df180f939a6dea4accf5cb55 Binary files /dev/null and b/media/images/image11_rotated_40.jpg_face_0_HgWU3OE.jpg differ diff --git a/media/images/image11_rotated_40.jpg_face_0_KnN53u6.jpg b/media/images/image11_rotated_40.jpg_face_0_KnN53u6.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88be147f0961ba63df180f939a6dea4accf5cb55 Binary files /dev/null and b/media/images/image11_rotated_40.jpg_face_0_KnN53u6.jpg differ diff --git a/media/images/image11_rotated_40.jpg_face_0_L9SjDtm.jpg b/media/images/image11_rotated_40.jpg_face_0_L9SjDtm.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88be147f0961ba63df180f939a6dea4accf5cb55 Binary files /dev/null and b/media/images/image11_rotated_40.jpg_face_0_L9SjDtm.jpg differ diff --git a/media/images/image11_rotated_40.jpg_face_0_LCAkyjS.jpg b/media/images/image11_rotated_40.jpg_face_0_LCAkyjS.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88be147f0961ba63df180f939a6dea4accf5cb55 Binary files /dev/null and b/media/images/image11_rotated_40.jpg_face_0_LCAkyjS.jpg differ diff --git a/media/images/image11_rotated_40.jpg_face_0_MWgthWC.jpg b/media/images/image11_rotated_40.jpg_face_0_MWgthWC.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88be147f0961ba63df180f939a6dea4accf5cb55 Binary files /dev/null and b/media/images/image11_rotated_40.jpg_face_0_MWgthWC.jpg differ diff --git a/media/images/image11_rotated_40.jpg_face_0_NSeB14p.jpg b/media/images/image11_rotated_40.jpg_face_0_NSeB14p.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88be147f0961ba63df180f939a6dea4accf5cb55 Binary files /dev/null and b/media/images/image11_rotated_40.jpg_face_0_NSeB14p.jpg differ diff --git a/media/images/image11_rotated_40.jpg_face_0_P8q8kcW.jpg b/media/images/image11_rotated_40.jpg_face_0_P8q8kcW.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88be147f0961ba63df180f939a6dea4accf5cb55 Binary files /dev/null and b/media/images/image11_rotated_40.jpg_face_0_P8q8kcW.jpg differ diff --git a/media/images/image11_rotated_40.jpg_face_0_QzhrVSa.jpg b/media/images/image11_rotated_40.jpg_face_0_QzhrVSa.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88be147f0961ba63df180f939a6dea4accf5cb55 Binary files /dev/null and b/media/images/image11_rotated_40.jpg_face_0_QzhrVSa.jpg differ diff --git a/media/images/image11_rotated_40.jpg_face_0_RXLJY5O.jpg b/media/images/image11_rotated_40.jpg_face_0_RXLJY5O.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88be147f0961ba63df180f939a6dea4accf5cb55 Binary files /dev/null and b/media/images/image11_rotated_40.jpg_face_0_RXLJY5O.jpg differ diff --git a/media/images/image11_rotated_40.jpg_face_0_SlVdWdU.jpg b/media/images/image11_rotated_40.jpg_face_0_SlVdWdU.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88be147f0961ba63df180f939a6dea4accf5cb55 Binary files /dev/null and b/media/images/image11_rotated_40.jpg_face_0_SlVdWdU.jpg differ diff --git a/media/images/image11_rotated_40.jpg_face_0_Z7Prtct.jpg b/media/images/image11_rotated_40.jpg_face_0_Z7Prtct.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88be147f0961ba63df180f939a6dea4accf5cb55 Binary files /dev/null and b/media/images/image11_rotated_40.jpg_face_0_Z7Prtct.jpg differ diff --git a/media/images/image11_rotated_40.jpg_face_0_b0imtDX.jpg b/media/images/image11_rotated_40.jpg_face_0_b0imtDX.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88be147f0961ba63df180f939a6dea4accf5cb55 Binary files /dev/null and b/media/images/image11_rotated_40.jpg_face_0_b0imtDX.jpg differ diff --git a/media/images/image11_rotated_40.jpg_face_0_y1Xd7cw.jpg b/media/images/image11_rotated_40.jpg_face_0_y1Xd7cw.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88be147f0961ba63df180f939a6dea4accf5cb55 Binary files /dev/null and b/media/images/image11_rotated_40.jpg_face_0_y1Xd7cw.jpg differ diff --git a/media/images/image11_rotated_40.jpg_face_0_zfDj8u8.jpg b/media/images/image11_rotated_40.jpg_face_0_zfDj8u8.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88be147f0961ba63df180f939a6dea4accf5cb55 Binary files /dev/null and b/media/images/image11_rotated_40.jpg_face_0_zfDj8u8.jpg differ diff --git a/media/images/image13_contrast_increased.jpg_face_0.jpg b/media/images/image13_contrast_increased.jpg_face_0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..241efb7be38e92af4b2d5a6bce4d6eb2011bb3ba Binary files /dev/null and b/media/images/image13_contrast_increased.jpg_face_0.jpg differ diff --git a/media/images/image13_contrast_increased.jpg_face_0_1RZeWNS.jpg b/media/images/image13_contrast_increased.jpg_face_0_1RZeWNS.jpg new file mode 100644 index 0000000000000000000000000000000000000000..241efb7be38e92af4b2d5a6bce4d6eb2011bb3ba Binary files /dev/null and b/media/images/image13_contrast_increased.jpg_face_0_1RZeWNS.jpg differ diff --git a/media/images/image13_contrast_increased.jpg_face_0_IbSgAWf.jpg b/media/images/image13_contrast_increased.jpg_face_0_IbSgAWf.jpg new file mode 100644 index 0000000000000000000000000000000000000000..241efb7be38e92af4b2d5a6bce4d6eb2011bb3ba Binary files /dev/null and b/media/images/image13_contrast_increased.jpg_face_0_IbSgAWf.jpg differ diff --git a/media/images/image13_contrast_increased.jpg_face_0_bCdMgzI.jpg b/media/images/image13_contrast_increased.jpg_face_0_bCdMgzI.jpg new file mode 100644 index 0000000000000000000000000000000000000000..241efb7be38e92af4b2d5a6bce4d6eb2011bb3ba Binary files /dev/null and b/media/images/image13_contrast_increased.jpg_face_0_bCdMgzI.jpg differ diff --git a/media/images/image14.jpg_face_0.jpg b/media/images/image14.jpg_face_0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b60bdb6424321e0730d430ba45cfab13b205ba3c Binary files /dev/null and b/media/images/image14.jpg_face_0.jpg differ diff --git a/media/images/image14.jpg_face_0_JwmyqJu.jpg b/media/images/image14.jpg_face_0_JwmyqJu.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b60bdb6424321e0730d430ba45cfab13b205ba3c Binary files /dev/null and b/media/images/image14.jpg_face_0_JwmyqJu.jpg differ diff --git a/media/images/image14.jpg_face_0_L3cyU7d.jpg b/media/images/image14.jpg_face_0_L3cyU7d.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b60bdb6424321e0730d430ba45cfab13b205ba3c Binary files /dev/null and b/media/images/image14.jpg_face_0_L3cyU7d.jpg differ diff --git a/media/images/image1_rotated_320.jpg_face_0.jpg b/media/images/image1_rotated_320.jpg_face_0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fc939ffca9b3c7cf1bd6fbff79e753c056863b61 Binary files /dev/null and b/media/images/image1_rotated_320.jpg_face_0.jpg differ diff --git a/media/images/image1_rotated_320.jpg_face_0_7Fqm3RV.jpg b/media/images/image1_rotated_320.jpg_face_0_7Fqm3RV.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fc939ffca9b3c7cf1bd6fbff79e753c056863b61 Binary files /dev/null and b/media/images/image1_rotated_320.jpg_face_0_7Fqm3RV.jpg differ diff --git a/media/images/image1_rotated_320.jpg_face_0_FjXovma.jpg b/media/images/image1_rotated_320.jpg_face_0_FjXovma.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fc939ffca9b3c7cf1bd6fbff79e753c056863b61 Binary files /dev/null and b/media/images/image1_rotated_320.jpg_face_0_FjXovma.jpg differ diff --git a/media/images/image1_rotated_320.jpg_face_0_ZwuSYtt.jpg b/media/images/image1_rotated_320.jpg_face_0_ZwuSYtt.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fc939ffca9b3c7cf1bd6fbff79e753c056863b61 Binary files /dev/null and b/media/images/image1_rotated_320.jpg_face_0_ZwuSYtt.jpg differ diff --git a/media/images/image21_brightness_increased.jpg_face_0.jpg b/media/images/image21_brightness_increased.jpg_face_0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cfc30070303a6f3a86c62c5b9ad7b478c08fe665 Binary files /dev/null and b/media/images/image21_brightness_increased.jpg_face_0.jpg differ diff --git a/media/images/image21_brightness_increased.jpg_face_0_wAMnfY0.jpg b/media/images/image21_brightness_increased.jpg_face_0_wAMnfY0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cfc30070303a6f3a86c62c5b9ad7b478c08fe665 Binary files /dev/null and b/media/images/image21_brightness_increased.jpg_face_0_wAMnfY0.jpg differ diff --git a/media/images/image23_rotated_40.jpg_face_0.jpg b/media/images/image23_rotated_40.jpg_face_0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..83116a4c0cc336a0af41cb4d57b85df4733595bb Binary files /dev/null and b/media/images/image23_rotated_40.jpg_face_0.jpg differ diff --git a/media/images/image278_contrast_decreased.jpg_face_0.jpg b/media/images/image278_contrast_decreased.jpg_face_0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..66bc003201cde4b8351a839b78c31947a53545a8 Binary files /dev/null and b/media/images/image278_contrast_decreased.jpg_face_0.jpg differ diff --git a/media/images/image278_contrast_decreased.jpg_face_0_r7DKI33.jpg b/media/images/image278_contrast_decreased.jpg_face_0_r7DKI33.jpg new file mode 100644 index 0000000000000000000000000000000000000000..66bc003201cde4b8351a839b78c31947a53545a8 Binary files /dev/null and b/media/images/image278_contrast_decreased.jpg_face_0_r7DKI33.jpg differ diff --git a/media/images/image302.jpg_face_0.jpg b/media/images/image302.jpg_face_0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..990f79a1b32fa64a4b133fe968ea56c231ef2149 Binary files /dev/null and b/media/images/image302.jpg_face_0.jpg differ diff --git a/media/images/image302.jpg_face_0_enT3cMY.jpg b/media/images/image302.jpg_face_0_enT3cMY.jpg new file mode 100644 index 0000000000000000000000000000000000000000..990f79a1b32fa64a4b133fe968ea56c231ef2149 Binary files /dev/null and b/media/images/image302.jpg_face_0_enT3cMY.jpg differ diff --git a/media/images/image48_rotated_40.jpg_face_0.jpg b/media/images/image48_rotated_40.jpg_face_0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0d5fdef8f67c8cd401f623a5485905f50bcf145f Binary files /dev/null and b/media/images/image48_rotated_40.jpg_face_0.jpg differ diff --git a/media/images/image4_brightness_decreased.jpg_face_0.jpg b/media/images/image4_brightness_decreased.jpg_face_0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2106b76b86b283339c5b40068afaab3dfa2d67f3 Binary files /dev/null and b/media/images/image4_brightness_decreased.jpg_face_0.jpg differ diff --git a/media/images/image4_brightness_decreased.jpg_face_0_8xtrpiH.jpg b/media/images/image4_brightness_decreased.jpg_face_0_8xtrpiH.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2106b76b86b283339c5b40068afaab3dfa2d67f3 Binary files /dev/null and b/media/images/image4_brightness_decreased.jpg_face_0_8xtrpiH.jpg differ diff --git a/media/images/image4_brightness_decreased.jpg_face_0_DRCN1OG.jpg b/media/images/image4_brightness_decreased.jpg_face_0_DRCN1OG.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2106b76b86b283339c5b40068afaab3dfa2d67f3 Binary files /dev/null and b/media/images/image4_brightness_decreased.jpg_face_0_DRCN1OG.jpg differ diff --git a/media/images/image4_brightness_decreased.jpg_face_0_MVDOMo3.jpg b/media/images/image4_brightness_decreased.jpg_face_0_MVDOMo3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2106b76b86b283339c5b40068afaab3dfa2d67f3 Binary files /dev/null and b/media/images/image4_brightness_decreased.jpg_face_0_MVDOMo3.jpg differ diff --git a/media/images/image4_brightness_decreased.jpg_face_0_NRfnlx4.jpg b/media/images/image4_brightness_decreased.jpg_face_0_NRfnlx4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2106b76b86b283339c5b40068afaab3dfa2d67f3 Binary files /dev/null and b/media/images/image4_brightness_decreased.jpg_face_0_NRfnlx4.jpg differ diff --git a/media/images/image4_brightness_decreased.jpg_face_0_dYRUreJ.jpg b/media/images/image4_brightness_decreased.jpg_face_0_dYRUreJ.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2106b76b86b283339c5b40068afaab3dfa2d67f3 Binary files /dev/null and b/media/images/image4_brightness_decreased.jpg_face_0_dYRUreJ.jpg differ diff --git a/media/images/image4_brightness_decreased.jpg_face_0_hd3LXU2.jpg b/media/images/image4_brightness_decreased.jpg_face_0_hd3LXU2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2106b76b86b283339c5b40068afaab3dfa2d67f3 Binary files /dev/null and b/media/images/image4_brightness_decreased.jpg_face_0_hd3LXU2.jpg differ diff --git a/media/images/image4_brightness_decreased.jpg_face_0_oMgYwvW.jpg b/media/images/image4_brightness_decreased.jpg_face_0_oMgYwvW.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2106b76b86b283339c5b40068afaab3dfa2d67f3 Binary files /dev/null and b/media/images/image4_brightness_decreased.jpg_face_0_oMgYwvW.jpg differ diff --git a/media/images/image4_brightness_decreased.jpg_face_0_wyGbSSg.jpg b/media/images/image4_brightness_decreased.jpg_face_0_wyGbSSg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2106b76b86b283339c5b40068afaab3dfa2d67f3 Binary files /dev/null and b/media/images/image4_brightness_decreased.jpg_face_0_wyGbSSg.jpg differ diff --git a/media/images/image52_brightness_decreased.jpg_face_0.jpg b/media/images/image52_brightness_decreased.jpg_face_0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b336e669336302dbc6be4a684f87571ed1d8609b Binary files /dev/null and b/media/images/image52_brightness_decreased.jpg_face_0.jpg differ diff --git a/media/images/image59.jpg_face_0.jpg b/media/images/image59.jpg_face_0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f379f1138dc4306ea23a3a7d0881496b68fca9a7 Binary files /dev/null and b/media/images/image59.jpg_face_0.jpg differ diff --git a/media/images/image66_rotated_320.jpg_face_0.jpg b/media/images/image66_rotated_320.jpg_face_0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..eb5f41c1792808e649e74eb9a0c0c53217b198c0 Binary files /dev/null and b/media/images/image66_rotated_320.jpg_face_0.jpg differ diff --git a/media/temp_image.PNG b/media/temp_image.PNG new file mode 100644 index 0000000000000000000000000000000000000000..5f855c8a1de3b4bcd78dd33e0b390d93fc98f5b7 Binary files /dev/null and b/media/temp_image.PNG differ diff --git a/media/temp_image.jpeg b/media/temp_image.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..59b2ca29cc24e095dedabbe4a7f85e3422bb0b59 Binary files /dev/null and b/media/temp_image.jpeg differ diff --git a/media/temp_image.jpg b/media/temp_image.jpg new file mode 100644 index 0000000000000000000000000000000000000000..66bc003201cde4b8351a839b78c31947a53545a8 Binary files /dev/null and b/media/temp_image.jpg differ diff --git a/prediction/Attendify-v2.h5 b/prediction/Attendify-v2.h5 new file mode 100644 index 0000000000000000000000000000000000000000..e161fa885093cf7c718872c24ec0737beed0b135 --- /dev/null +++ b/prediction/Attendify-v2.h5 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b49fd010406d776dc947adbb56980016b11c6a2bb6fa5a19be54e2a72e749032 +size 168409020 diff --git a/prediction/__init__.py b/prediction/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prediction/__pycache__/__init__.cpython-310.pyc b/prediction/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3aaab36490cc482775d36b3c90660b03a3a97269 Binary files /dev/null and b/prediction/__pycache__/__init__.cpython-310.pyc differ diff --git a/prediction/__pycache__/__init__.cpython-311.pyc b/prediction/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..60fe614d8954c36934db5d6dc4f5fcb2033e92e1 Binary files /dev/null and b/prediction/__pycache__/__init__.cpython-311.pyc differ diff --git a/prediction/__pycache__/__init__.cpython-38.pyc b/prediction/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a047363c3bcba4aeae2f550807cf994a24c3e9f3 Binary files /dev/null and b/prediction/__pycache__/__init__.cpython-38.pyc differ diff --git a/prediction/__pycache__/admin.cpython-310.pyc b/prediction/__pycache__/admin.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cf8d7b95b8067f76c36a6d7bbaba46b232edfe5e Binary files /dev/null and b/prediction/__pycache__/admin.cpython-310.pyc differ diff --git a/prediction/__pycache__/admin.cpython-311.pyc b/prediction/__pycache__/admin.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0e619ef851306fd11ddde167eca3b096b530a20f Binary files /dev/null and b/prediction/__pycache__/admin.cpython-311.pyc differ diff --git a/prediction/__pycache__/admin.cpython-38.pyc b/prediction/__pycache__/admin.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3749cbaf05411c420c929e8f3c9e186b039965e1 Binary files /dev/null and b/prediction/__pycache__/admin.cpython-38.pyc differ diff --git a/prediction/__pycache__/apps.cpython-310.pyc b/prediction/__pycache__/apps.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1cc4a3020b45b621eb701161c73f38ca0589ef47 Binary files /dev/null and b/prediction/__pycache__/apps.cpython-310.pyc differ diff --git a/prediction/__pycache__/apps.cpython-311.pyc b/prediction/__pycache__/apps.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..59b79457b5427aaaf39ff9dda921bdc071ba5587 Binary files /dev/null and b/prediction/__pycache__/apps.cpython-311.pyc differ diff --git a/prediction/__pycache__/apps.cpython-38.pyc b/prediction/__pycache__/apps.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6b52ccfddecb1f3a2bd333db3390020f328198d4 Binary files /dev/null and b/prediction/__pycache__/apps.cpython-38.pyc differ diff --git a/prediction/__pycache__/models.cpython-310.pyc b/prediction/__pycache__/models.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..04c0003929eafe215f54ce636f86e9f083166b24 Binary files /dev/null and b/prediction/__pycache__/models.cpython-310.pyc differ diff --git a/prediction/__pycache__/models.cpython-311.pyc b/prediction/__pycache__/models.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..587202303121f3ef67225b6dc7641839f811d757 Binary files /dev/null and b/prediction/__pycache__/models.cpython-311.pyc differ diff --git a/prediction/__pycache__/models.cpython-38.pyc b/prediction/__pycache__/models.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fdb554f30f218696b4dc30a71f90051f1ba17c2e Binary files /dev/null and b/prediction/__pycache__/models.cpython-38.pyc differ diff --git a/prediction/__pycache__/urls.cpython-310.pyc b/prediction/__pycache__/urls.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..81bdd7cc4b215404758065767e0b24e4d79f1b50 Binary files /dev/null and b/prediction/__pycache__/urls.cpython-310.pyc differ diff --git a/prediction/__pycache__/urls.cpython-311.pyc b/prediction/__pycache__/urls.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6cf18c9e7402991b117823fd3c1aa895f09d3a76 Binary files /dev/null and b/prediction/__pycache__/urls.cpython-311.pyc differ diff --git a/prediction/__pycache__/urls.cpython-38.pyc b/prediction/__pycache__/urls.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a5cb7d7ac82eea525a76bf55995fed6f8fad0649 Binary files /dev/null and b/prediction/__pycache__/urls.cpython-38.pyc differ diff --git a/prediction/__pycache__/views.cpython-310.pyc b/prediction/__pycache__/views.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..566e6f53b5abb7bec58b5d8cbdeffeb3feca1705 Binary files /dev/null and b/prediction/__pycache__/views.cpython-310.pyc differ diff --git a/prediction/__pycache__/views.cpython-311.pyc b/prediction/__pycache__/views.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a94dcb05fc331fb70a0000d0b26f0aa94ab6320e Binary files /dev/null and b/prediction/__pycache__/views.cpython-311.pyc differ diff --git a/prediction/__pycache__/views.cpython-38.pyc b/prediction/__pycache__/views.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..533249a39ca384bc07feccfc44e35a6d24260589 Binary files /dev/null and b/prediction/__pycache__/views.cpython-38.pyc differ diff --git a/prediction/admin.py b/prediction/admin.py new file mode 100644 index 0000000000000000000000000000000000000000..4f0b21f87885a7c8e4b014b29b552e83a6f2259e --- /dev/null +++ b/prediction/admin.py @@ -0,0 +1,4 @@ +from django.contrib import admin +from .models import Attendance_Label_Prediction +# Register your models here. +admin.site.register(Attendance_Label_Prediction) \ No newline at end of file diff --git a/prediction/apps.py b/prediction/apps.py new file mode 100644 index 0000000000000000000000000000000000000000..380299d7b085f88cea7b062690c6386d1f244bbf --- /dev/null +++ b/prediction/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class PredictionConfig(AppConfig): + name = 'prediction' diff --git a/prediction/migrations/0001_initial.py b/prediction/migrations/0001_initial.py new file mode 100644 index 0000000000000000000000000000000000000000..ae47a81d2cd6ba622a1740e41a460c05880fe59c --- /dev/null +++ b/prediction/migrations/0001_initial.py @@ -0,0 +1,22 @@ +# Generated by Django 2.2.12 on 2023-11-05 13:34 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Attendance_Label_Prediction', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('image', models.ImageField(upload_to='images/')), + ('predicted_label', models.IntegerField()), + ], + ), + ] diff --git a/prediction/migrations/0002_remove_attendance_label_prediction_predicted_label.py b/prediction/migrations/0002_remove_attendance_label_prediction_predicted_label.py new file mode 100644 index 0000000000000000000000000000000000000000..9c5e7797754854d0999aa96b011d32221565df21 --- /dev/null +++ b/prediction/migrations/0002_remove_attendance_label_prediction_predicted_label.py @@ -0,0 +1,17 @@ +# Generated by Django 2.2.12 on 2023-11-05 13:49 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('prediction', '0001_initial'), + ] + + operations = [ + migrations.RemoveField( + model_name='attendance_label_prediction', + name='predicted_label', + ), + ] diff --git a/prediction/migrations/0003_attendance_label_prediction_predicted_label.py b/prediction/migrations/0003_attendance_label_prediction_predicted_label.py new file mode 100644 index 0000000000000000000000000000000000000000..d812ead9338ad435682ff6bab03552a342408ad8 --- /dev/null +++ b/prediction/migrations/0003_attendance_label_prediction_predicted_label.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.7 on 2023-12-28 18:43 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('prediction', '0002_remove_attendance_label_prediction_predicted_label'), + ] + + operations = [ + migrations.AddField( + model_name='attendance_label_prediction', + name='predicted_label', + field=models.IntegerField(default=False, null=True), + ), + ] diff --git a/prediction/migrations/__init__.py b/prediction/migrations/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prediction/migrations/__pycache__/0001_initial.cpython-38.pyc b/prediction/migrations/__pycache__/0001_initial.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..27aaa0260bf4629d996110b4e3c39108895c2d10 Binary files /dev/null and b/prediction/migrations/__pycache__/0001_initial.cpython-38.pyc differ diff --git a/prediction/migrations/__pycache__/0002_remove_attendance_label_prediction_predicted_label.cpython-38.pyc b/prediction/migrations/__pycache__/0002_remove_attendance_label_prediction_predicted_label.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..da5ba9b8773c68543d2802192fb9b13fcd221810 Binary files /dev/null and b/prediction/migrations/__pycache__/0002_remove_attendance_label_prediction_predicted_label.cpython-38.pyc differ diff --git a/prediction/migrations/__pycache__/0003_attendance_label_prediction_predicted_label.cpython-38.pyc b/prediction/migrations/__pycache__/0003_attendance_label_prediction_predicted_label.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..223e92f078cac9227515272b9f162f3e6b0a1a9e Binary files /dev/null and b/prediction/migrations/__pycache__/0003_attendance_label_prediction_predicted_label.cpython-38.pyc differ diff --git a/prediction/migrations/__pycache__/__init__.cpython-38.pyc b/prediction/migrations/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..88880d9d5eae353d65e19a202400b74ae204fada Binary files /dev/null and b/prediction/migrations/__pycache__/__init__.cpython-38.pyc differ diff --git a/prediction/models.py b/prediction/models.py new file mode 100644 index 0000000000000000000000000000000000000000..d3473e27307756ec6495770853568043c4bee658 --- /dev/null +++ b/prediction/models.py @@ -0,0 +1,9 @@ +from django.db import models + +class Attendance_Label_Prediction(models.Model): + image = models.ImageField(upload_to='images/') # Adjust 'upload_to' to specify the path where uploaded images will be stored + predicted_label = models.IntegerField(null=True,default=False) # Add this field to store the predicted label + + + def __str__(self): + return f"Image Prediction {self.pk}" diff --git a/prediction/tests.py b/prediction/tests.py new file mode 100644 index 0000000000000000000000000000000000000000..7ce503c2dd97ba78597f6ff6e4393132753573f6 --- /dev/null +++ b/prediction/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/prediction/urls.py b/prediction/urls.py new file mode 100644 index 0000000000000000000000000000000000000000..a8210286a706482f612e4167f1149cff9c2a2363 --- /dev/null +++ b/prediction/urls.py @@ -0,0 +1,12 @@ +from django.urls import path +from .views import PredictView, PredictionResultView +from django.conf import settings +from django.conf.urls.static import static + +urlpatterns = [ + path('predict/', PredictView.as_view(), name='predict'), + path('result/', PredictionResultView.as_view(), name='prediction_result'), # Remove the +] + +if settings.DEBUG: + urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) diff --git a/prediction/views.py b/prediction/views.py new file mode 100644 index 0000000000000000000000000000000000000000..9398723175c981795dc96b5970bebbc301fec2de --- /dev/null +++ b/prediction/views.py @@ -0,0 +1,90 @@ +import os + +import cv2 +import numpy as np +import tensorflow as tf +from django.http import HttpResponse +from django.core.files.base import ContentFile +from PIL import Image +from django.conf import settings +from django.shortcuts import render +from django.urls import reverse_lazy +from django.views import View +from django.views.generic.edit import CreateView +from tensorflow.keras.models import load_model + +from .models import Attendance_Label_Prediction + + +from django.urls import reverse_lazy + +from django.urls import reverse_lazy + +class PredictView(CreateView): + template_name = 'predict_form.html' + model = Attendance_Label_Prediction + fields = ['image'] + success_url = reverse_lazy('prediction_result') + + def form_valid(self, form): + model_file = os.path.join(settings.BASE_DIR, 'prediction', 'Attendify-v2.h5') + model = load_model(model_file) + + # Get the uploaded image from the form + image = form.instance.image + custom_image = cv2.imdecode(np.fromstring(image.read(), np.uint8), cv2.IMREAD_GRAYSCALE) + custom_image = cv2.resize(custom_image, (224, 224)) + custom_image = np.expand_dims(custom_image, axis=-1) + custom_image = custom_image / 255.0 + + # Convert the NumPy array to a TensorFlow tensor + custom_image_tensor = tf.convert_to_tensor(custom_image, dtype=tf.float32) + + # Make a prediction + predicted_probs = model.predict(np.expand_dims(custom_image, axis=0)) + + # Convert predicted probabilities to class label (if using one-hot encoding) + predicted_label = np.argmax(predicted_probs) + + # Save the predicted label along with the record + form.instance.predicted_label = predicted_label + form.save() + + return super().form_valid(form) + + +from django.http import HttpResponse +from PIL import Image + +class PredictionResultView(View): + template_name = 'prediction_result.html' + + def get(self, request): + try: + # Fetch the latest prediction record (you might want to adjust this logic based on your needs) + prediction_record = Attendance_Label_Prediction.objects.latest('id') + except Attendance_Label_Prediction.DoesNotExist: + prediction_record = None + + if prediction_record: + # Get the uploaded image from the record + image_content = prediction_record.image.read() + + # Get the file extension from the upload_to attribute of the ImageField + file_extension = prediction_record.image.name.split('.')[-1] + + # Save the image locally + temp_image_path = os.path.join(settings.MEDIA_ROOT, f'temp_image.{file_extension}') + with open(temp_image_path, 'wb') as temp_image_file: + temp_image_file.write(image_content) + + # Pass the image URL, image name, and predicted label to the template + image_url = settings.MEDIA_URL + f'temp_image.{file_extension}' + image_name = prediction_record.image.name + predicted_label = prediction_record.predicted_label + else: + image_url = None + image_name = None + predicted_label = None + + return render(request, self.template_name, {'image_url': image_url, 'image_name': image_name, 'predicted_label': predicted_label}) diff --git a/templates/predict_form.html b/templates/predict_form.html new file mode 100644 index 0000000000000000000000000000000000000000..ac955a7695423f370c850091d1497e0b7e4229f7 --- /dev/null +++ b/templates/predict_form.html @@ -0,0 +1,179 @@ +{% load static %} + + + + + + Upload and Predict + + + +
+ + Attendify + + Attendify +     |    Welcome to DS Attendance System +
+

Attendify

+

Mark Attendance

+
+
+ {% csrf_token %} + + + Selected Image +
+
+
+
+
+
+ +
+ + + + diff --git a/templates/prediction_result.html b/templates/prediction_result.html new file mode 100644 index 0000000000000000000000000000000000000000..f4b102221a3d4ee852ca2a3fe1717c12c1909caa --- /dev/null +++ b/templates/prediction_result.html @@ -0,0 +1,114 @@ + + + + + + Prediction Result + + + +
+ + Attendify +                                                                   ATTENDANCE MARKED +
+
+

+
+
+ {% if image_url %} + Uploaded Image + {% endif %} + +
+

Predicted Label: {{ predicted_label }}

+ {% if image_name %} +

Actual Label: {{ image_name }}

+ {% endif %} +
+
+ +