Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
40ae30e
create-dev
zahra121281 Mar 9, 2024
f4a7988
fit/UserModle
zahra121281 Mar 13, 2024
9f3549d
fir/UserModel
zahra121281 Mar 13, 2024
9128593
Merge pull request #1 from ENIAC-group/fb_UserModel
zahra121281 Mar 13, 2024
4ada165
feat/signup
zahra121281 Mar 17, 2024
5ace02c
feat/updateModel
zahra121281 Mar 18, 2024
f4260e0
feat/Login-Logout
asmahamid1382 Mar 18, 2024
0d78ffa
feat/update
asmahamid1382 Mar 18, 2024
3883054
Merge pull request #2 from ENIAC-group/fb_Login
asmahamid1382 Mar 18, 2024
de6b041
fix/forgot_passwd
zahra121281 Mar 18, 2024
6e35642
Merge branch 'dev' into fb_SignUp
zahra121281 Mar 18, 2024
2e7b888
Merge pull request #3 from ENIAC-group/fb_SignUp
zahra121281 Mar 18, 2024
f5debc6
update imports
asmahamid1382 Mar 18, 2024
4a14945
Merge pull request #4 from ENIAC-group/fb_import
asmahamid1382 Mar 18, 2024
5fcffa6
fix/reset_passwd
zahra121281 Mar 18, 2024
437bade
Merge pull request #5 from ENIAC-group/fb_ResetPasswd
zahra121281 Mar 18, 2024
68f590d
feat/PhoneNumber
zahra121281 Mar 19, 2024
9fe7890
Merge pull request #6 from ENIAC-group/fb_ModelUpdate
zahra121281 Mar 19, 2024
d301e10
feat/loginupdate
asmahamid1382 Mar 19, 2024
81e0d69
Merge pull request #7 from ENIAC-group/loginupdate
asmahamid1382 Mar 19, 2024
53aa9fb
fix/logout
zahra121281 Mar 22, 2024
c5d988c
Merge pull request #8 from ENIAC-group/fb_logout
zahra121281 Mar 22, 2024
1e00bd5
feat/counseling
zahra121281 Mar 25, 2024
a57d6b1
feat/CompleteInfo
zahra121281 Mar 26, 2024
a19cf6e
Merge pull request #9 from ENIAC-group/fb_doctorModel
zahra121281 Mar 26, 2024
ece28a3
feat/DoctorProfile
zahra121281 Mar 31, 2024
96c1f44
fix/cors-headers
zahra121281 Apr 1, 2024
3cf70cc
fix/errors
zahra121281 Apr 1, 2024
966fe87
fix/errors
zahra121281 Apr 1, 2024
d61622f
fix/image
zahra121281 Apr 2, 2024
ee8595f
feat/connectToDB
asmahamid1382 Apr 2, 2024
6b06a56
Merge pull request #10 from ENIAC-group/fb_ConnectToDB
asmahamid1382 Apr 2, 2024
ff87d39
fix/doctorImage
zahra121281 Apr 2, 2024
d69c7a1
Merge pull request #11 from ENIAC-group/fb_doctorModel
zahra121281 Apr 2, 2024
d8f231c
Merge branch 'dev' into fb_counseling
zahra121281 Apr 2, 2024
48b2d11
Merge pull request #12 from ENIAC-group/fb_counseling
zahra121281 Apr 2, 2024
0937a59
fix/media
zahra121281 Apr 2, 2024
e2a083a
feat/HomePage/statistics
asmahamid1382 Apr 3, 2024
ae41c90
Merge pull request #13 from ENIAC-group/fb_HomePage
asmahamid1382 Apr 3, 2024
cf45cf9
feat/changepassword
asmahamid1382 Apr 3, 2024
9019c2a
fix/resendVerification
zahra121281 Apr 4, 2024
a223527
Merge pull request #14 from ENIAC-group/fb_changepassword
zahra121281 Apr 4, 2024
69aee50
feat/user_retrieve
zahra121281 Apr 6, 2024
8657e74
Merge pull request #15 from ENIAC-group/fb_changepassword
zahra121281 Apr 6, 2024
1d6fa81
feat/reserve
zahra121281 Apr 8, 2024
1e44755
Merge pull request #16 from ENIAC-group/fb_reservation
asmahamid1382 Apr 8, 2024
a10797d
.
zahra121281 Apr 8, 2024
15c6f60
feat/Tellbot
zahra121281 Apr 9, 2024
c56fec6
feat/reserve
zahra121281 Apr 9, 2024
042f9e6
Merge pull request #17 from ENIAC-group/fb_reservation
zahra121281 Apr 9, 2024
3e6c981
m
zahra121281 Apr 10, 2024
bd8f84d
fix
zahra121281 Apr 10, 2024
3bacfab
fix/threpytests
zahra121281 Apr 12, 2024
991cf9b
feat/telegrambot
zahra121281 Apr 12, 2024
1a3becb
feat/telegrambot
zahra121281 Apr 12, 2024
e21a20f
feat/telegrambot
zahra121281 Apr 12, 2024
a4ba8c1
fix/confilict
zahra121281 Apr 12, 2024
f29154a
fix/confilict
zahra121281 Apr 12, 2024
fbb98bc
fix/conflict
zahra121281 Apr 12, 2024
73a05f8
Merge pull request #19 from ENIAC-group/fb_telegrambot
zahra121281 Apr 12, 2024
0dcf58e
fix/bot
zahra121281 Apr 17, 2024
03d23b0
fix/url
zahra121281 Apr 17, 2024
426ea56
feat/glasserTest
zahra121281 Apr 17, 2024
eb6e27f
Merge branch 'dev' into fb_TherapyTests
zahra121281 Apr 17, 2024
b9a7513
Merge pull request #20 from ENIAC-group/fb_TherapyTests
zahra121281 Apr 17, 2024
ee96234
fix/telNotif
zahra121281 Apr 19, 2024
ad387e2
fix/doctorChoices
zahra121281 Apr 19, 2024
cb38259
Merge pull request #21 from ENIAC-group/fb_doctorModel
zahra121281 Apr 19, 2024
cb6d6a7
fix/telegramNotif
zahra121281 Apr 19, 2024
19bd204
fix/telegramNotif
zahra121281 Apr 19, 2024
9179402
fix/telegramNotif
zahra121281 Apr 19, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
480 changes: 480 additions & 0 deletions .gitignore

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"iis.configDir": ""
}
906 changes: 906 additions & 0 deletions BackEnd/.iis/applicationhost.config

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions BackEnd/.vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"iis.configDir": ""
}
16 changes: 16 additions & 0 deletions BackEnd/BackEnd/asgi.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
"""
ASGI config for BackEnd project.

It exposes the ASGI callable as a module-level variable named ``application``.

For more information on this file, see
https://docs.djangoproject.com/en/5.0/howto/deployment/asgi/
"""

import os

from django.core.asgi import get_asgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "BackEnd.settings")

application = get_asgi_application()
228 changes: 228 additions & 0 deletions BackEnd/BackEnd/settings.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,228 @@
"""
Django settings for BackEnd project.

Generated by 'django-admin startproject' using Django 5.0.3.

For more information on this file, see
https://docs.djangoproject.com/en/5.0/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/5.0/ref/settings/
"""

from pathlib import Path
from environs import Env
import os
import datetime
from datetime import timedelta

# Environment Variables
# Build paths inside the project like this: BASE_DIR / 'subdir'.

BASE_DIR = Path(__file__).resolve().parent.parent


# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = "django-insecure-#zdhi36fsv(lx#%swqp(l9)0dctgcmwqc__*6h5$9gk@sqxn-e"

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
env = Env()
env.read_env()

# Setting Website URL
WEBSITE_URL = 'http://localhost:8000/' #env.str('WEBSITE_URL')
# BASE_URL = 'http://localhost:8000/'
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'eniakgroupiust@gmail.com'#env.str('EMAIL_HOST_USER')
EMAIL_HOST_PASSWORD = 'otawrhfscdedswzd'# '%_giw.9?5=3aNQr'#env.str('EMAIL_HOST_PASSWORD')
EMAIL_PORT = 587
EMAIL_USE_TLS = True
REDIS_HOST = os.environ.get('REDIS_HOST', '127.0.0.1')
# CSRF_TRUSTED_ORIGINS = ["http://127.0.0.1:8000/"]

SESSION_COOKIE_SECURE = False
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
MEDIA_URL = "media/"
MEDIA_ROOT = os.path.join(BASE_DIR, "media/")


# SESSION_COOKIE_DOMAIN
ALLOWED_HOSTS = ['*']

REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES' : [
'rest_framework.permissions.AllowAny'
],
'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema' ,
'DEFAULT_AUTHENTICATION_CLASSES' : [
'rest_framework.authentication.SessionAuthentication',
'rest_framework_simplejwt.authentication.JWTAuthentication',
'rest_framework.authentication.TokenAuthentication',
]
}

SIMPLE_JWT = {
'ACCESS_TOKEN_LIFETIME': timedelta(days=10),
'REFRESH_TOKEN_LIFETIME': timedelta(days=10),
'ROTATE_REFRESH_TOKENS': False,
'BLACKLIST_AFTER_ROTATION': False,
'UPDATE_LAST_LOGIN': False,
'ALGORITHM': 'HS256',
'SIGNING_KEY': SECRET_KEY,
'VERIFYING_KEY': None,
'AUDIENCE': None,
'ISSUER': None,
'JWK_URL': None,
'LEEWAY': 0,
'AUTH_HEADER_TYPES': ('Bearer',),
'AUTH_HEADER_NAME': 'HTTP_AUTHORIZATION',
'USER_ID_FIELD': 'id',
'USER_ID_CLAIM': 'user_id',
'USER_AUTHENTICATION_RULE': 'rest_framework_simplejwt.authentication.default_user_authentication_rule',

'AUTH_TOKEN_CLASSES': ('rest_framework_simplejwt.tokens.AccessToken',),
'TOKEN_TYPE_CLAIM': 'token_type',
'TOKEN_USER_CLASS': 'rest_framework_simplejwt.models.TokenUser',

'JTI_CLAIM': 'jti',

'SLIDING_TOKEN_REFRESH_EXP_CLAIM': 'refresh_exp',
'SLIDING_TOKEN_LIFETIME': timedelta(minutes=15),
'SLIDING_TOKEN_REFRESH_LIFETIME': timedelta(days=1),
}
# Application definition

INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"corsheaders",
"telegrambot",
"accounts",
"reservation",
"rest_framework",
"rest_framework_swagger",
"rest_framework_simplejwt.token_blacklist",
"Profile",
"drf_yasg",
"counseling",
# "django_tgbot",
"background_task",
'django.contrib.sites' ,
"reservation",
"TherapyTests",
"telegrambot",
]
SITE_ID = 1

MIDDLEWARE = [
"django.middleware.security.SecurityMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
"django.middleware.common.CommonMiddleware",
"django.middleware.csrf.CsrfViewMiddleware",
"corsheaders.middleware.CorsMiddleware",
"django.middleware.common.CommonMiddleware",
"django.contrib.auth.middleware.AuthenticationMiddleware",
"django.contrib.messages.middleware.MessageMiddleware",
"django.middleware.clickjacking.XFrameOptionsMiddleware",
]


CORS_ALLOWED_ORIGINS = [
# 'CORS_ALLOW_ALL_ORIGINS',
"http://localhost:5173" ,

]


ROOT_URLCONF = "BackEnd.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 = "BackEnd.wsgi.application"


# Database
# https://docs.djangoproject.com/en/5.0/ref/settings/#databases

# DATABASES = {
# "default": {
# "ENGINE": "django.db.backends.sqlite3",
# "NAME": BASE_DIR / "db.sqlite3",
# }
# }

DATABASES = {

'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'TherapyDB',
'USER': 'postgres',
'PASSWORD': 'Hgbr5391',
'HOST': 'localhost',
'PORT': '5432',

}
}


# Password validation
# https://docs.djangoproject.com/en/5.0/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/5.0/topics/i18n/

LANGUAGE_CODE = "en-us"

TIME_ZONE = 'Asia/Tehran'

USE_I18N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/5.0/howto/static-files/

STATIC_URL = "static/"

# Default primary key field type
# https://docs.djangoproject.com/en/5.0/ref/settings/#default-auto-field

DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
AUTH_USER_MODEL = 'accounts.User'
AUTH_PROFILE_MODULE = 'accounts.User'

AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'django.contrib.auth.backends.RemoteUserBackend',
)
55 changes: 55 additions & 0 deletions BackEnd/BackEnd/urls.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
"""
URL configuration for BackEnd project.

The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/5.0/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
from drf_yasg.views import get_schema_view
from rest_framework import permissions
from drf_yasg import openapi
from django.urls import re_path as url
from django.views.static import serve
from django.conf import settings

schema_view = get_schema_view(
openapi.Info(
title="API",
default_version='v1',
description="API",
terms_of_service="https://www.google.com/policies/terms/",
contact=openapi.Contact(email="contact#snippets.local"),
license=openapi.License(name="BSD License"),
),
public=True,
permission_classes=[permissions.AllowAny, ],
)

urlpatterns = [
path("admin/", admin.site.urls),
path("accounts/" , include("accounts.urls")),
path("HomePage/" , include("HomePage.urls")),
path("reserve/" ,include("reservation.urls") ) ,
path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
path('profile/' , include("Profile.urls")) ,
path('telegrambot/' , include("telegrambot.urls")),
path('redoc/', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
path('TherapyTests/' , include("TherapyTests.urls")),
]


if settings.DEBUG:
urlpatterns += [
url(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}),
]
16 changes: 16 additions & 0 deletions BackEnd/BackEnd/wsgi.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
"""
WSGI config for BackEnd 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/5.0/howto/deployment/wsgi/
"""

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "BackEnd.settings")

application = get_wsgi_application()
Empty file added BackEnd/HomePage/__init__.py
Empty file.
3 changes: 3 additions & 0 deletions BackEnd/HomePage/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.contrib import admin

# Register your models here.
6 changes: 6 additions & 0 deletions BackEnd/HomePage/apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
from django.apps import AppConfig


class HomepageConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'HomePage'
Empty file.
3 changes: 3 additions & 0 deletions BackEnd/HomePage/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.db import models

# Create your models here.
10 changes: 10 additions & 0 deletions BackEnd/HomePage/serializers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@

from rest_framework import serializers

class DoctorCountSerializer(serializers.Serializer):
doctor_count = serializers.IntegerField()

class PationtCountSerializer(serializers.Serializer):
Pationt_count = serializers.IntegerField()


3 changes: 3 additions & 0 deletions BackEnd/HomePage/tests.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.test import TestCase

# Create your tests here.
11 changes: 11 additions & 0 deletions BackEnd/HomePage/urls.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from .views import *
from django.urls import path


urlpatterns = [
# path('PationtCount/' , PationtCountView.as_view() , name='PationtCount' ) ,
# path('DoctorCount/' , DoctorCountView.as_view() , name='DoctorCount' ) ,
path('count/',CountView.as_view(),name='count'),


]
Loading