From 18940da24e46255b437e51e57f20f50b593c8610 Mon Sep 17 00:00:00 2001
From: Yousef Obeidat <85868033+mrobeidat@users.noreply.github.com>
Date: Tue, 28 Dec 2021 17:44:12 +0200
Subject: [PATCH 01/13] initial commit
---
README.md | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 89415d6..8e4447f 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,17 @@
-# Donation-Back
\ No newline at end of file
+
Filteristic
+
+Summary
+
+A website for blood donation
+
+ Team members
+
+1- yahia labib (team leader)
+
+2- Mohammad Alkhatib
+
+3- haia Lawansah
+
+4- Yaseen Saed
+
+5- Yousef obaidate
From d52c237cde92f0d478fa31d365e601f402f7f395 Mon Sep 17 00:00:00 2001
From: Yousef Obeidat <85868033+mrobeidat@users.noreply.github.com>
Date: Tue, 28 Dec 2021 17:44:41 +0200
Subject: [PATCH 02/13] initial commit
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 8e4447f..dfdf517 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-Filteristic
+Life Share
Summary
From 274faddb5973974cdd6993ebeef4052513b3480c Mon Sep 17 00:00:00 2001
From: Yousef Obeidat <85868033+mrobeidat@users.noreply.github.com>
Date: Tue, 28 Dec 2021 17:45:44 +0200
Subject: [PATCH 03/13] initial commit
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index dfdf517..98c083e 100644
--- a/README.md
+++ b/README.md
@@ -14,4 +14,4 @@ A website for blood donation
4- Yaseen Saed
-5- Yousef obaidate
+5- Yousef Obeidat
From 1c178546a81b8ce190cfc80941d74c79fc4c75a4 Mon Sep 17 00:00:00 2001
From: mrobeidat
Date: Wed, 29 Dec 2021 21:31:30 +0200
Subject: [PATCH 04/13] initial
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index 98c083e..658658e 100644
--- a/README.md
+++ b/README.md
@@ -15,3 +15,4 @@ A website for blood donation
4- Yaseen Saed
5- Yousef Obeidat
+
\ No newline at end of file
From b2485e397c420f07a59c202cad7b9da77c69f7ca Mon Sep 17 00:00:00 2001
From: Yahialabeeb
Date: Wed, 29 Dec 2021 21:44:05 +0200
Subject: [PATCH 05/13] initial commit
---
accounts/__init__.py | 0
accounts/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 155 bytes
accounts/__pycache__/admin.cpython-39.pyc | Bin 0 -> 196 bytes
accounts/__pycache__/apps.cpython-39.pyc | Bin 0 -> 436 bytes
accounts/__pycache__/models.cpython-39.pyc | Bin 0 -> 193 bytes
accounts/admin.py | 3 +
accounts/apps.py | 6 +
accounts/migrations/__init__.py | 0
.../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 166 bytes
accounts/models.py | 3 +
accounts/tests.py | 3 +
accounts/views.py | 3 +
blood_donating/__init__.py | 0
.../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 161 bytes
.../__pycache__/admin.cpython-39.pyc | Bin 0 -> 202 bytes
.../__pycache__/apps.cpython-39.pyc | Bin 0 -> 453 bytes
.../__pycache__/models.cpython-39.pyc | Bin 0 -> 199 bytes
blood_donating/admin.py | 3 +
blood_donating/apps.py | 6 +
blood_donating/migrations/__init__.py | 0
.../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 172 bytes
blood_donating/models.py | 3 +
blood_donating/tests.py | 3 +
blood_donating/views.py | 3 +
db.sqlite3 | 0
lifeshare/.env | 12 +
lifeshare/__init__.py | 0
lifeshare/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 156 bytes
lifeshare/__pycache__/settings.cpython-39.pyc | Bin 0 -> 2954 bytes
lifeshare/__pycache__/urls.cpython-39.pyc | Bin 0 -> 935 bytes
lifeshare/__pycache__/wsgi.cpython-39.pyc | Bin 0 -> 563 bytes
lifeshare/asgi.py | 16 ++
lifeshare/settings.py | 150 ++++++++++++
lifeshare/urls.py | 21 ++
lifeshare/wsgi.py | 16 ++
manage.py | 22 ++
poetry.lock | 225 ++++++++++++++++++
pyproject.toml | 21 ++
38 files changed, 519 insertions(+)
create mode 100644 accounts/__init__.py
create mode 100644 accounts/__pycache__/__init__.cpython-39.pyc
create mode 100644 accounts/__pycache__/admin.cpython-39.pyc
create mode 100644 accounts/__pycache__/apps.cpython-39.pyc
create mode 100644 accounts/__pycache__/models.cpython-39.pyc
create mode 100644 accounts/admin.py
create mode 100644 accounts/apps.py
create mode 100644 accounts/migrations/__init__.py
create mode 100644 accounts/migrations/__pycache__/__init__.cpython-39.pyc
create mode 100644 accounts/models.py
create mode 100644 accounts/tests.py
create mode 100644 accounts/views.py
create mode 100644 blood_donating/__init__.py
create mode 100644 blood_donating/__pycache__/__init__.cpython-39.pyc
create mode 100644 blood_donating/__pycache__/admin.cpython-39.pyc
create mode 100644 blood_donating/__pycache__/apps.cpython-39.pyc
create mode 100644 blood_donating/__pycache__/models.cpython-39.pyc
create mode 100644 blood_donating/admin.py
create mode 100644 blood_donating/apps.py
create mode 100644 blood_donating/migrations/__init__.py
create mode 100644 blood_donating/migrations/__pycache__/__init__.cpython-39.pyc
create mode 100644 blood_donating/models.py
create mode 100644 blood_donating/tests.py
create mode 100644 blood_donating/views.py
create mode 100644 db.sqlite3
create mode 100644 lifeshare/.env
create mode 100644 lifeshare/__init__.py
create mode 100644 lifeshare/__pycache__/__init__.cpython-39.pyc
create mode 100644 lifeshare/__pycache__/settings.cpython-39.pyc
create mode 100644 lifeshare/__pycache__/urls.cpython-39.pyc
create mode 100644 lifeshare/__pycache__/wsgi.cpython-39.pyc
create mode 100644 lifeshare/asgi.py
create mode 100644 lifeshare/settings.py
create mode 100644 lifeshare/urls.py
create mode 100644 lifeshare/wsgi.py
create mode 100755 manage.py
create mode 100644 poetry.lock
create mode 100644 pyproject.toml
diff --git a/accounts/__init__.py b/accounts/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/accounts/__pycache__/__init__.cpython-39.pyc b/accounts/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..55ee2e8e0cf8d41034534de30f9e0c6b0abfab53
GIT binary patch
literal 155
zcmYe~<>g`kf}(9_5<&E15P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!H6enx(7s(xi+
zMrLA8Vp3+3zKMaMenC-wR%&vIzE5UaYH&tkQL3&}Vsf^AVsdhRX&r
Yyk0@&Ee@O9{FKt1R6CH#pMjVG0QjLK^8f$<
literal 0
HcmV?d00001
diff --git a/accounts/__pycache__/admin.cpython-39.pyc b/accounts/__pycache__/admin.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..ab452c4b87459d7760a03e9ee57f68fcfdb8173c
GIT binary patch
literal 196
zcmYe~<>g`kf}(9_677NXV-N=!FabFZKwK;UBvKes7;_kM8KW2(8B&;n88n$+0!0}#
z8E>&BrsQVk`Drpm@ug%X=B4NBCFkdr6lEqAfecv5P{a(Rz{D?G{fzwFRQ<}tjLgKG
z#H7q5eG>yi{eq(WtkmQZeV@#<)ZmQ7qEua{#N=%K#N_1s(!7#leX#j@1(mlrY;yBc
PN^?@}7=b2!24V&PMeZ;?
literal 0
HcmV?d00001
diff --git a/accounts/__pycache__/apps.cpython-39.pyc b/accounts/__pycache__/apps.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..4d0baac2233206c45fcb92f319203dfa1c95d86a
GIT binary patch
literal 436
zcmYjNy-ve05Vqq~3jJX~tVpaGNI+t&P+KHeP?v65tZVGFDNY>XWGE{<0x!V}@Dx0O
zS0-M8iE~;+PrA?d^Z7gbU^MCzwEE){-thc#$)Wj}Owi3af*^t_QqY7_a!-UO*eelC
z(ifI^!e5ZE_l+zPQhPM5s#{%V`6_jlL!+2X(9J1=BncG+Z_|VcFYyIK72h6D(^R)*
zV|E(PXJP~8N=ITD6%lP{8Dz0k1k!ce@i_@%
literal 0
HcmV?d00001
diff --git a/accounts/__pycache__/models.cpython-39.pyc b/accounts/__pycache__/models.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..cb51aa9e7c25f221dfeccda5d88b3c5f38142f03
GIT binary patch
literal 193
zcmYe~<>g`kf}(9_5-oxBV-N=!FabFZKwK;UBvKes7;_kM8KW2(8B&;n88n$+0!0}#
z8E>)W=BK3Q6#Hp1-QrBiO3X{o*Gow%0%=~!P{abHz{D>*{fzwFRQ<}tjLgKG#H7q5
zeG>yi{eq(WtkmQZeV@#<)ZmQ7qEua{#N=%K#N_1s(!7#leTdn51(mlrY=G?2oK!nT
Kppl<}m;nI79xs6a
literal 0
HcmV?d00001
diff --git a/accounts/admin.py b/accounts/admin.py
new file mode 100644
index 0000000..8c38f3f
--- /dev/null
+++ b/accounts/admin.py
@@ -0,0 +1,3 @@
+from django.contrib import admin
+
+# Register your models here.
diff --git a/accounts/apps.py b/accounts/apps.py
new file mode 100644
index 0000000..3e3c765
--- /dev/null
+++ b/accounts/apps.py
@@ -0,0 +1,6 @@
+from django.apps import AppConfig
+
+
+class AccountsConfig(AppConfig):
+ default_auto_field = 'django.db.models.BigAutoField'
+ name = 'accounts'
diff --git a/accounts/migrations/__init__.py b/accounts/migrations/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/accounts/migrations/__pycache__/__init__.cpython-39.pyc b/accounts/migrations/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..2e893f5b9415517b076dfba842e17aab1fdc641f
GIT binary patch
literal 166
zcmYe~<>g`kf}(9_5<&E15P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!Hwenx(7s(xi+
zMrLA8Vp3+3zKMaMenC-wR%&vIzE5UaYH&tkQL3&}Vsf^AVsdhRXg`kg6-SRB!cM2AOaaM0yz#qT+9L_QW%06G#UL?G8BP?5yUSy{fzwFRQ<}t
zjLgKG#H7q5eG>yi{eq(WtkmQZeV@#<)ZmQ7qEua{#N=%Kq@4Wxl=zhVyu^~symbBe
e_{_Y_lK6PNg34PQHo5sJr8%i~AoD*1F#`Y`3@4!g
literal 0
HcmV?d00001
diff --git a/blood_donating/__pycache__/admin.cpython-39.pyc b/blood_donating/__pycache__/admin.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..07ec48e209da18f910c6754acab0a74e772510ab
GIT binary patch
literal 202
zcmYe~<>g`kg6-SRB-#V%#~=e4NX<@B61#fd|HhO)wYF!KWN5xg+2Jdm+Fi
zeP)pZ?wokNZ$uG~n!RaRUh5*s(uK|J3dLZ8S|6d2B%(mDn??+r$OVQht~m^q)^MW>
z(PTxsA$mH7l_*l}L+s}oq^kWeOQ&t4Z!@XD?8ml;!?tPW^-Q1hLgbQjGvFM1T4nta
z=Z~#W+sXmRM6{~m0-1QyQMtDEMk;%n&isVIQs**Qi)AL1h_g7jI6Du@O0VRi3GTB*
z&X=N+r=eIp1phx0h_bBxa$PZGv*)a>=~I_>nVHATaJ!jBR*oHNv47(?-Vk%9f4SM?
L%AT>d*b(~$7Z!8&
literal 0
HcmV?d00001
diff --git a/blood_donating/__pycache__/models.cpython-39.pyc b/blood_donating/__pycache__/models.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..024d5bf3129a71f512f2ee3f00eda0e48bfb01ca
GIT binary patch
literal 199
zcmYe~<>g`kg6-SRBw7OL#~=g`kg6-SRB!cM2AOaaM0yz#qT+9L_QW%06G#UL?G8BP?5yY=R{fzwFRQ<}t
zjLgKG#H7q5eG>yi{eq(WtkmQZeV@#<)ZmQ7qEua{#N=%Kq@4Wxl=zhVyu^~symbBC
o%=984D?hJTKR!M)FS8^*Uaz3?7Kcr4eoARhsvXFx&p^xo01#9x7ytkO
literal 0
HcmV?d00001
diff --git a/blood_donating/models.py b/blood_donating/models.py
new file mode 100644
index 0000000..71a8362
--- /dev/null
+++ b/blood_donating/models.py
@@ -0,0 +1,3 @@
+from django.db import models
+
+# Create your models here.
diff --git a/blood_donating/tests.py b/blood_donating/tests.py
new file mode 100644
index 0000000..7ce503c
--- /dev/null
+++ b/blood_donating/tests.py
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/blood_donating/views.py b/blood_donating/views.py
new file mode 100644
index 0000000..91ea44a
--- /dev/null
+++ b/blood_donating/views.py
@@ -0,0 +1,3 @@
+from django.shortcuts import render
+
+# Create your views here.
diff --git a/db.sqlite3 b/db.sqlite3
new file mode 100644
index 0000000..e69de29
diff --git a/lifeshare/.env b/lifeshare/.env
new file mode 100644
index 0000000..580055d
--- /dev/null
+++ b/lifeshare/.env
@@ -0,0 +1,12 @@
+SECRET_KEY=123456
+DEBUG=True
+
+ALLOWED_HOSTS=localhost,127.0.0.1,0.0.0.0
+ALLOW_ALL_ORIGINS=True
+
+DATABASE_ENGINE=django.db.backends.postgresql
+DATABASE_NAME=dftjbzcy
+DATABASE_USER=dftjbzcy
+DATABASE_PASSWORD=kJGveBE2dk9G3pH9axz6jVoQ6U-Frmae
+DATABASE_HOST=hansken.db.elephantsql.com
+DATABASE_PORT=5432
\ No newline at end of file
diff --git a/lifeshare/__init__.py b/lifeshare/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/lifeshare/__pycache__/__init__.cpython-39.pyc b/lifeshare/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..25ba100fcf1c5493d9944dd156d1d9c4f5ff0e9d
GIT binary patch
literal 156
zcmYe~<>g`kf|py*B!cM2AOaaM0yz#qT+9L_QW%06G#UL?G8BP?5yUS?{fzwFRQ<}t
zjLgKG#H7q5eG>yi{eq(WtkmQZeV@#<)ZmQ7qEua{#N=%K93ZzC#MO_F&&Vbi69b^IiUy+L0T;?iUGMxa%B);
zc9&9x+gx|@0=bBDmq*AuASTTsgvwU*2*E-
zQqY>Ujx#5DTtL}T8W&Lx=%Qa5r=Y)}MWl#ToI~r|Vz!9#E3}LXqckf1vtVuDO}z14
z36)+*UrW~3IEBjJOV$-=H=wsI2qwCgN=q->gq8l%y
zsJ$7tZ^!MexZRH0GJ5BQgl>PEC6aXm-9hhyt~;m_(LY4=k3<^F)=l)D^)~vGbqnI%
zhW8z`W8H>m?rx{7JLsPEF3Omx>if=zkiLB5#PP;{g<;N#H)fTQPb)4NVK#9nuFR-^
zf`?qq=MS-mslzd<49+X}P$aeMpegYxj60OaocAho26`&7+Q;exkUapMQy4
zcU|zE@rpmX49M{i7{Y{BP91lS+5cmU;!(oTFQN#mQYd#EK4}O0aT18f@NiD??)mQh
z(az}cC;ZW9M5~Uw``+a2?p^!u)PMBR!v}jicPAfzLh(l*p!2<8ckg^Bc-T9z@|~{H
z=+}EqqaEB@XjIWa9XP}1*h5TZU%7bE*@AnU_g5G}C>>BMO
zz1_36v{uVFwt?D4w|UrXn_(%M(i`?u!|a*X#&Wn^-)Lw(ZC^8WTW^Da9+oa9+S*Za
z*f;fVxOK7G(Mou
zSY?VCw@1{O;xnH?wjlG-_gj{?E
zr%8?Kgz$6K6a@pFql>j*C!tqO$kf4Hg6)37+XUCKh@mZFNbo-XojfJgn~U5fq^hs_
z4X1DFdulyu{s$|gBef3X8Np`>*1xRy;=nE^{m@_x8%%}~I3xsDgIMlqQut`G&k3oI
zUlW8&hR;vnSiwfAe?1TzYRm)@CDU8JfIf9jT^7`0JseMGE}-A#xr`SY5fJv`WoBK8
zD)k@S2ILxoTd;doIe33n&8u80!h`uZxc>&66n_Oc#)A)H-epxsIem?0F&{iyVZO-Y
zYXp{SRXNPm{K#zb{yGstwbjbRSqku!HW
z%>n|@oFIxI>w<_&o)&;qvtc#{9y!7rIf5DG0$t4Y4G`*YC0kwna-yz?2Y;4QvQoKm0uj5PVD2Q
zg1t9Y(4J2*CBs)WtYL3=&a6zoR}Ylh0=8;l;Wro;8-Y7y>Lctjb)Ssk$oU5ZyQo?T
zb2fn3(6+PEztya3q8!8Z<=te4H?@B6
zsl6;B`*auC$)%YPr{|s?Qklb?a-{ji(<7{KNke0mNO^_Cv>
zX;AtiSO&gb56XcEm!a>mkcKSS4!5H(!Ny-6(BZY0jEDlzlCPOAh+^p7n=5oKt2N&=
ziWn}dD0*8kbknG^CdM#T=^IpXZIF_UVcK5M$Vl{ovyVDO7g8Z10f<*?sf2?-b;*ck
zNHeyG5RAf@S}!oBGS?~Hl4>JsCATa$X)Xn36+TVp*vOja8rxtD&ubjL{6qv`=|yzW
zRJmohd)9%Tr06-Nh*XG+S}LaN
literal 0
HcmV?d00001
diff --git a/lifeshare/__pycache__/wsgi.cpython-39.pyc b/lifeshare/__pycache__/wsgi.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..f0ffc9f64bc1e8239fef0da6c4e780d4f7ba1032
GIT binary patch
literal 563
zcmYjP!EO^V5cO`-CM*=83UT%|5?u$WCj=FsmMEyChb=?uRZoB
z=&>KbU+@F?%BjD=iP;3IjO4M#qnY>KjQP$^M9}Vk{Ny(QA-~&T)4CYE!()f&1ep>M
zh)@O70Pl_ptIo6&5D4bo?^~iPwr)d=I@e^nEy9Ehwy%CgUz5?8W=7|-pt)(Nk~!Ft
zH$dyg%pr4e6pbB)%i375)RjQjC0r?frhsxwIjxL1SFopG0g5hoBUdTSD-d)x<8`fM
z#+@{JHp6}&5vMW;AvHo)s{}O~n@dY`so*8G08!~&ZC^7cOlD&-=ejWeIc26|pxJ&r
zWTm-qh6$*ZSyrGOyRe01(LD}?Oa_5}UVuy6w{(Mse{uNf{bY2KCP$~I=3.6"
+
+[package.extras]
+tests = ["pytest", "pytest-asyncio", "mypy (>=0.800)"]
+
+[[package]]
+name = "django"
+version = "4.0"
+description = "A high-level Python web framework that encourages rapid development and clean, pragmatic design."
+category = "main"
+optional = false
+python-versions = ">=3.8"
+
+[package.dependencies]
+asgiref = ">=3.4.1,<4"
+sqlparse = ">=0.2.2"
+tzdata = {version = "*", markers = "sys_platform == \"win32\""}
+
+[package.extras]
+argon2 = ["argon2-cffi (>=19.1.0)"]
+bcrypt = ["bcrypt"]
+
+[[package]]
+name = "django-cors-headers"
+version = "3.10.1"
+description = "django-cors-headers is a Django application for handling the server headers required for Cross-Origin Resource Sharing (CORS)."
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+Django = ">=2.2"
+
+[[package]]
+name = "django-environ"
+version = "0.8.1"
+description = "A package that allows you to utilize 12factor inspired environment variables to configure your Django application."
+category = "main"
+optional = false
+python-versions = ">=3.4,<4"
+
+[package.extras]
+develop = ["coverage[toml] (>=5.0a4)", "pytest (>=4.6.11)", "furo (>=2021.8.17b43,<2021.9.0)", "sphinx (>=3.5.0)", "sphinx-notfound-page"]
+docs = ["furo (>=2021.8.17b43,<2021.9.0)", "sphinx (>=3.5.0)", "sphinx-notfound-page"]
+testing = ["coverage[toml] (>=5.0a4)", "pytest (>=4.6.11)"]
+
+[[package]]
+name = "djangorestframework"
+version = "3.13.1"
+description = "Web APIs for Django, made easy."
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+django = ">=2.2"
+pytz = "*"
+
+[[package]]
+name = "gunicorn"
+version = "20.1.0"
+description = "WSGI HTTP Server for UNIX"
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[package.extras]
+eventlet = ["eventlet (>=0.24.1)"]
+gevent = ["gevent (>=1.4.0)"]
+setproctitle = ["setproctitle"]
+tornado = ["tornado (>=0.2)"]
+
+[[package]]
+name = "psycopg2-binary"
+version = "2.9.3"
+description = "psycopg2 - Python-PostgreSQL Database Adapter"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[[package]]
+name = "pytz"
+version = "2021.3"
+description = "World timezone definitions, modern and historical"
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "sqlparse"
+version = "0.4.2"
+description = "A non-validating SQL parser."
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[[package]]
+name = "tzdata"
+version = "2021.5"
+description = "Provider of IANA time zone data"
+category = "main"
+optional = false
+python-versions = ">=2"
+
+[[package]]
+name = "whitenoise"
+version = "5.3.0"
+description = "Radically simplified static file serving for WSGI applications"
+category = "main"
+optional = false
+python-versions = ">=3.5, <4"
+
+[package.extras]
+brotli = ["brotli"]
+
+[metadata]
+lock-version = "1.1"
+python-versions = "^3.9"
+content-hash = "67118044f3f5f067c6f13623ee1ee4503a79c56bb34fbccea0b3498840fb7e1f"
+
+[metadata.files]
+asgiref = [
+ {file = "asgiref-3.4.1-py3-none-any.whl", hash = "sha256:ffc141aa908e6f175673e7b1b3b7af4fdb0ecb738fc5c8b88f69f055c2415214"},
+ {file = "asgiref-3.4.1.tar.gz", hash = "sha256:4ef1ab46b484e3c706329cedeff284a5d40824200638503f5768edb6de7d58e9"},
+]
+django = [
+ {file = "Django-4.0-py3-none-any.whl", hash = "sha256:59304646ebc6a77b9b6a59adc67d51ecb03c5e3d63ed1f14c909cdfda84e8010"},
+ {file = "Django-4.0.tar.gz", hash = "sha256:d5a8a14da819a8b9237ee4d8c78dfe056ff6e8a7511987be627192225113ee75"},
+]
+django-cors-headers = [
+ {file = "django-cors-headers-3.10.1.tar.gz", hash = "sha256:b5a874b492bcad99f544bb76ef679472259eb41ee5644ca62d1a94ddb26b7f6e"},
+ {file = "django_cors_headers-3.10.1-py3-none-any.whl", hash = "sha256:1390b5846e9835b0911e2574409788af87cd9154246aafbdc8ec546c93698fe6"},
+]
+django-environ = [
+ {file = "django-environ-0.8.1.tar.gz", hash = "sha256:6f0bc902b43891656b20486938cba0861dc62892784a44919170719572a534cb"},
+ {file = "django_environ-0.8.1-py2.py3-none-any.whl", hash = "sha256:42593bee519a527602a467c7b682aee1a051c2597f98c45f4f4f44169ecdb6e5"},
+]
+djangorestframework = [
+ {file = "djangorestframework-3.13.1-py3-none-any.whl", hash = "sha256:24c4bf58ed7e85d1fe4ba250ab2da926d263cd57d64b03e8dcef0ac683f8b1aa"},
+ {file = "djangorestframework-3.13.1.tar.gz", hash = "sha256:0c33407ce23acc68eca2a6e46424b008c9c02eceb8cf18581921d0092bc1f2ee"},
+]
+gunicorn = [
+ {file = "gunicorn-20.1.0-py3-none-any.whl", hash = "sha256:9dcc4547dbb1cb284accfb15ab5667a0e5d1881cc443e0677b4882a4067a807e"},
+ {file = "gunicorn-20.1.0.tar.gz", hash = "sha256:e0a968b5ba15f8a328fdfd7ab1fcb5af4470c28aaf7e55df02a99bc13138e6e8"},
+]
+psycopg2-binary = [
+ {file = "psycopg2-binary-2.9.3.tar.gz", hash = "sha256:761df5313dc15da1502b21453642d7599d26be88bff659382f8f9747c7ebea4e"},
+ {file = "psycopg2_binary-2.9.3-cp310-cp310-macosx_10_14_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:539b28661b71da7c0e428692438efbcd048ca21ea81af618d845e06ebfd29478"},
+ {file = "psycopg2_binary-2.9.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e82d38390a03da28c7985b394ec3f56873174e2c88130e6966cb1c946508e65"},
+ {file = "psycopg2_binary-2.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:57804fc02ca3ce0dbfbef35c4b3a4a774da66d66ea20f4bda601294ad2ea6092"},
+ {file = "psycopg2_binary-2.9.3-cp310-cp310-manylinux_2_24_aarch64.whl", hash = "sha256:083a55275f09a62b8ca4902dd11f4b33075b743cf0d360419e2051a8a5d5ff76"},
+ {file = "psycopg2_binary-2.9.3-cp310-cp310-manylinux_2_24_ppc64le.whl", hash = "sha256:0a29729145aaaf1ad8bafe663131890e2111f13416b60e460dae0a96af5905c9"},
+ {file = "psycopg2_binary-2.9.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3a79d622f5206d695d7824cbf609a4f5b88ea6d6dab5f7c147fc6d333a8787e4"},
+ {file = "psycopg2_binary-2.9.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:090f3348c0ab2cceb6dfbe6bf721ef61262ddf518cd6cc6ecc7d334996d64efa"},
+ {file = "psycopg2_binary-2.9.3-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:a9e1f75f96ea388fbcef36c70640c4efbe4650658f3d6a2967b4cc70e907352e"},
+ {file = "psycopg2_binary-2.9.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c3ae8e75eb7160851e59adc77b3a19a976e50622e44fd4fd47b8b18208189d42"},
+ {file = "psycopg2_binary-2.9.3-cp310-cp310-win32.whl", hash = "sha256:7b1e9b80afca7b7a386ef087db614faebbf8839b7f4db5eb107d0f1a53225029"},
+ {file = "psycopg2_binary-2.9.3-cp310-cp310-win_amd64.whl", hash = "sha256:8b344adbb9a862de0c635f4f0425b7958bf5a4b927c8594e6e8d261775796d53"},
+ {file = "psycopg2_binary-2.9.3-cp36-cp36m-macosx_10_14_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:e847774f8ffd5b398a75bc1c18fbb56564cda3d629fe68fd81971fece2d3c67e"},
+ {file = "psycopg2_binary-2.9.3-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:68641a34023d306be959101b345732360fc2ea4938982309b786f7be1b43a4a1"},
+ {file = "psycopg2_binary-2.9.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3303f8807f342641851578ee7ed1f3efc9802d00a6f83c101d21c608cb864460"},
+ {file = "psycopg2_binary-2.9.3-cp36-cp36m-manylinux_2_24_aarch64.whl", hash = "sha256:e3699852e22aa68c10de06524a3721ade969abf382da95884e6a10ff798f9281"},
+ {file = "psycopg2_binary-2.9.3-cp36-cp36m-manylinux_2_24_ppc64le.whl", hash = "sha256:526ea0378246d9b080148f2d6681229f4b5964543c170dd10bf4faaab6e0d27f"},
+ {file = "psycopg2_binary-2.9.3-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:b1c8068513f5b158cf7e29c43a77eb34b407db29aca749d3eb9293ee0d3103ca"},
+ {file = "psycopg2_binary-2.9.3-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:15803fa813ea05bef089fa78835118b5434204f3a17cb9f1e5dbfd0b9deea5af"},
+ {file = "psycopg2_binary-2.9.3-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:152f09f57417b831418304c7f30d727dc83a12761627bb826951692cc6491e57"},
+ {file = "psycopg2_binary-2.9.3-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:404224e5fef3b193f892abdbf8961ce20e0b6642886cfe1fe1923f41aaa75c9d"},
+ {file = "psycopg2_binary-2.9.3-cp36-cp36m-win32.whl", hash = "sha256:1f6b813106a3abdf7b03640d36e24669234120c72e91d5cbaeb87c5f7c36c65b"},
+ {file = "psycopg2_binary-2.9.3-cp36-cp36m-win_amd64.whl", hash = "sha256:2d872e3c9d5d075a2e104540965a1cf898b52274a5923936e5bfddb58c59c7c2"},
+ {file = "psycopg2_binary-2.9.3-cp37-cp37m-macosx_10_14_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:10bb90fb4d523a2aa67773d4ff2b833ec00857f5912bafcfd5f5414e45280fb1"},
+ {file = "psycopg2_binary-2.9.3-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:874a52ecab70af13e899f7847b3e074eeb16ebac5615665db33bce8a1009cf33"},
+ {file = "psycopg2_binary-2.9.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a29b3ca4ec9defec6d42bf5feb36bb5817ba3c0230dd83b4edf4bf02684cd0ae"},
+ {file = "psycopg2_binary-2.9.3-cp37-cp37m-manylinux_2_24_aarch64.whl", hash = "sha256:12b11322ea00ad8db8c46f18b7dfc47ae215e4df55b46c67a94b4effbaec7094"},
+ {file = "psycopg2_binary-2.9.3-cp37-cp37m-manylinux_2_24_ppc64le.whl", hash = "sha256:53293533fcbb94c202b7c800a12c873cfe24599656b341f56e71dd2b557be063"},
+ {file = "psycopg2_binary-2.9.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c381bda330ddf2fccbafab789d83ebc6c53db126e4383e73794c74eedce855ef"},
+ {file = "psycopg2_binary-2.9.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:9d29409b625a143649d03d0fd7b57e4b92e0ecad9726ba682244b73be91d2fdb"},
+ {file = "psycopg2_binary-2.9.3-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:183a517a3a63503f70f808b58bfbf962f23d73b6dccddae5aa56152ef2bcb232"},
+ {file = "psycopg2_binary-2.9.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:15c4e4cfa45f5a60599d9cec5f46cd7b1b29d86a6390ec23e8eebaae84e64554"},
+ {file = "psycopg2_binary-2.9.3-cp37-cp37m-win32.whl", hash = "sha256:adf20d9a67e0b6393eac162eb81fb10bc9130a80540f4df7e7355c2dd4af9fba"},
+ {file = "psycopg2_binary-2.9.3-cp37-cp37m-win_amd64.whl", hash = "sha256:2f9ffd643bc7349eeb664eba8864d9e01f057880f510e4681ba40a6532f93c71"},
+ {file = "psycopg2_binary-2.9.3-cp38-cp38-macosx_10_14_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:def68d7c21984b0f8218e8a15d514f714d96904265164f75f8d3a70f9c295667"},
+ {file = "psycopg2_binary-2.9.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dffc08ca91c9ac09008870c9eb77b00a46b3378719584059c034b8945e26b272"},
+ {file = "psycopg2_binary-2.9.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:280b0bb5cbfe8039205c7981cceb006156a675362a00fe29b16fbc264e242834"},
+ {file = "psycopg2_binary-2.9.3-cp38-cp38-manylinux_2_24_aarch64.whl", hash = "sha256:af9813db73395fb1fc211bac696faea4ca9ef53f32dc0cfa27e4e7cf766dcf24"},
+ {file = "psycopg2_binary-2.9.3-cp38-cp38-manylinux_2_24_ppc64le.whl", hash = "sha256:63638d875be8c2784cfc952c9ac34e2b50e43f9f0a0660b65e2a87d656b3116c"},
+ {file = "psycopg2_binary-2.9.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ffb7a888a047696e7f8240d649b43fb3644f14f0ee229077e7f6b9f9081635bd"},
+ {file = "psycopg2_binary-2.9.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:0c9d5450c566c80c396b7402895c4369a410cab5a82707b11aee1e624da7d004"},
+ {file = "psycopg2_binary-2.9.3-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:d1c1b569ecafe3a69380a94e6ae09a4789bbb23666f3d3a08d06bbd2451f5ef1"},
+ {file = "psycopg2_binary-2.9.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8fc53f9af09426a61db9ba357865c77f26076d48669f2e1bb24d85a22fb52307"},
+ {file = "psycopg2_binary-2.9.3-cp38-cp38-win32.whl", hash = "sha256:6472a178e291b59e7f16ab49ec8b4f3bdada0a879c68d3817ff0963e722a82ce"},
+ {file = "psycopg2_binary-2.9.3-cp38-cp38-win_amd64.whl", hash = "sha256:35168209c9d51b145e459e05c31a9eaeffa9a6b0fd61689b48e07464ffd1a83e"},
+ {file = "psycopg2_binary-2.9.3-cp39-cp39-macosx_10_14_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:47133f3f872faf28c1e87d4357220e809dfd3fa7c64295a4a148bcd1e6e34ec9"},
+ {file = "psycopg2_binary-2.9.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:91920527dea30175cc02a1099f331aa8c1ba39bf8b7762b7b56cbf54bc5cce42"},
+ {file = "psycopg2_binary-2.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:887dd9aac71765ac0d0bac1d0d4b4f2c99d5f5c1382d8b770404f0f3d0ce8a39"},
+ {file = "psycopg2_binary-2.9.3-cp39-cp39-manylinux_2_24_aarch64.whl", hash = "sha256:1f14c8b0942714eb3c74e1e71700cbbcb415acbc311c730370e70c578a44a25c"},
+ {file = "psycopg2_binary-2.9.3-cp39-cp39-manylinux_2_24_ppc64le.whl", hash = "sha256:7af0dd86ddb2f8af5da57a976d27cd2cd15510518d582b478fbb2292428710b4"},
+ {file = "psycopg2_binary-2.9.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:93cd1967a18aa0edd4b95b1dfd554cf15af657cb606280996d393dadc88c3c35"},
+ {file = "psycopg2_binary-2.9.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bda845b664bb6c91446ca9609fc69f7db6c334ec5e4adc87571c34e4f47b7ddb"},
+ {file = "psycopg2_binary-2.9.3-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:01310cf4cf26db9aea5158c217caa92d291f0500051a6469ac52166e1a16f5b7"},
+ {file = "psycopg2_binary-2.9.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:99485cab9ba0fa9b84f1f9e1fef106f44a46ef6afdeec8885e0b88d0772b49e8"},
+ {file = "psycopg2_binary-2.9.3-cp39-cp39-win32.whl", hash = "sha256:46f0e0a6b5fa5851bbd9ab1bc805eef362d3a230fbdfbc209f4a236d0a7a990d"},
+ {file = "psycopg2_binary-2.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:accfe7e982411da3178ec690baaceaad3c278652998b2c45828aaac66cd8285f"},
+]
+pytz = [
+ {file = "pytz-2021.3-py2.py3-none-any.whl", hash = "sha256:3672058bc3453457b622aab7a1c3bfd5ab0bdae451512f6cf25f64ed37f5b87c"},
+ {file = "pytz-2021.3.tar.gz", hash = "sha256:acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326"},
+]
+sqlparse = [
+ {file = "sqlparse-0.4.2-py3-none-any.whl", hash = "sha256:48719e356bb8b42991bdbb1e8b83223757b93789c00910a616a071910ca4a64d"},
+ {file = "sqlparse-0.4.2.tar.gz", hash = "sha256:0c00730c74263a94e5a9919ade150dfc3b19c574389985446148402998287dae"},
+]
+tzdata = [
+ {file = "tzdata-2021.5-py2.py3-none-any.whl", hash = "sha256:3eee491e22ebfe1e5cfcc97a4137cd70f092ce59144d81f8924a844de05ba8f5"},
+ {file = "tzdata-2021.5.tar.gz", hash = "sha256:68dbe41afd01b867894bbdfd54fa03f468cfa4f0086bfb4adcd8de8f24f3ee21"},
+]
+whitenoise = [
+ {file = "whitenoise-5.3.0-py2.py3-none-any.whl", hash = "sha256:d963ef25639d1417e8a247be36e6aedd8c7c6f0a08adcb5a89146980a96b577c"},
+ {file = "whitenoise-5.3.0.tar.gz", hash = "sha256:d234b871b52271ae7ed6d9da47ffe857c76568f11dd30e28e18c5869dbd11e12"},
+]
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 0000000..7142812
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,21 @@
+[tool.poetry]
+name = "lifeshare-back"
+version = "0.1.0"
+description = ""
+authors = ["Yahialabeeb "]
+
+[tool.poetry.dependencies]
+python = "^3.9"
+Django = "^4.0"
+djangorestframework = "^3.13.1"
+django-environ = "^0.8.1"
+psycopg2-binary = "^2.9.3"
+gunicorn = "^20.1.0"
+whitenoise = "^5.3.0"
+django-cors-headers = "^3.10.1"
+
+[tool.poetry.dev-dependencies]
+
+[build-system]
+requires = ["poetry-core>=1.0.0"]
+build-backend = "poetry.core.masonry.api"
From b83ab0fc87c33325e8e67cadf9569ed9d96b1778 Mon Sep 17 00:00:00 2001
From: Yahialabeeb
Date: Wed, 29 Dec 2021 21:53:15 +0200
Subject: [PATCH 06/13] add jwt
---
lifeshare/urls.py | 3 ++-
poetry.lock | 44 +++++++++++++++++++++++++++++++++++++++++++-
pyproject.toml | 1 +
3 files changed, 46 insertions(+), 2 deletions(-)
diff --git a/lifeshare/urls.py b/lifeshare/urls.py
index f180867..0cad06a 100644
--- a/lifeshare/urls.py
+++ b/lifeshare/urls.py
@@ -14,7 +14,8 @@
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
-from django.urls import path
+from django.urls import path, include
+from rest_framework_simplejwt import views as jwt_views
urlpatterns = [
path('admin/', admin.site.urls),
diff --git a/poetry.lock b/poetry.lock
index b0b3d63..0313745 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -62,6 +62,26 @@ python-versions = ">=3.6"
django = ">=2.2"
pytz = "*"
+[[package]]
+name = "djangorestframework-simplejwt"
+version = "5.0.0"
+description = "A minimal JSON Web Token authentication plugin for Django REST Framework"
+category = "main"
+optional = false
+python-versions = ">=3.7"
+
+[package.dependencies]
+django = "*"
+djangorestframework = "*"
+pyjwt = ">=2,<3"
+
+[package.extras]
+dev = ["pytest-watch", "wheel", "twine", "ipython", "cryptography", "pytest-cov", "pytest-django", "pytest-xdist", "pytest", "tox", "flake8", "pep8", "isort", "Sphinx (>=1.6.5,<2)", "sphinx-rtd-theme (>=0.1.9)", "python-jose (==3.0.0)"]
+doc = ["Sphinx (>=1.6.5,<2)", "sphinx-rtd-theme (>=0.1.9)"]
+lint = ["flake8", "pep8", "isort"]
+python-jose = ["python-jose (==3.0.0)"]
+test = ["cryptography", "pytest-cov", "pytest-django", "pytest-xdist", "pytest", "tox"]
+
[[package]]
name = "gunicorn"
version = "20.1.0"
@@ -84,6 +104,20 @@ category = "main"
optional = false
python-versions = ">=3.6"
+[[package]]
+name = "pyjwt"
+version = "2.3.0"
+description = "JSON Web Token implementation in Python"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.extras]
+crypto = ["cryptography (>=3.3.1)"]
+dev = ["sphinx", "sphinx-rtd-theme", "zope.interface", "cryptography (>=3.3.1)", "pytest (>=6.0.0,<7.0.0)", "coverage[toml] (==5.0.4)", "mypy", "pre-commit"]
+docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"]
+tests = ["pytest (>=6.0.0,<7.0.0)", "coverage[toml] (==5.0.4)"]
+
[[package]]
name = "pytz"
version = "2021.3"
@@ -122,7 +156,7 @@ brotli = ["brotli"]
[metadata]
lock-version = "1.1"
python-versions = "^3.9"
-content-hash = "67118044f3f5f067c6f13623ee1ee4503a79c56bb34fbccea0b3498840fb7e1f"
+content-hash = "b6f7c129a9ef84b2d03d519a01b3038b6988d4f1fb30813cc908f472fca2a683"
[metadata.files]
asgiref = [
@@ -145,6 +179,10 @@ djangorestframework = [
{file = "djangorestframework-3.13.1-py3-none-any.whl", hash = "sha256:24c4bf58ed7e85d1fe4ba250ab2da926d263cd57d64b03e8dcef0ac683f8b1aa"},
{file = "djangorestframework-3.13.1.tar.gz", hash = "sha256:0c33407ce23acc68eca2a6e46424b008c9c02eceb8cf18581921d0092bc1f2ee"},
]
+djangorestframework-simplejwt = [
+ {file = "djangorestframework_simplejwt-5.0.0-py3-none-any.whl", hash = "sha256:ddcbeef51155d1e71410dde44b581c7e04cfb74776f5337661ac3ef4c0c367e6"},
+ {file = "djangorestframework_simplejwt-5.0.0.tar.gz", hash = "sha256:30b10e7732395c44d21980f773214d2b9bdeadf2a6c6809cd1a7c9abe272873c"},
+]
gunicorn = [
{file = "gunicorn-20.1.0-py3-none-any.whl", hash = "sha256:9dcc4547dbb1cb284accfb15ab5667a0e5d1881cc443e0677b4882a4067a807e"},
{file = "gunicorn-20.1.0.tar.gz", hash = "sha256:e0a968b5ba15f8a328fdfd7ab1fcb5af4470c28aaf7e55df02a99bc13138e6e8"},
@@ -207,6 +245,10 @@ psycopg2-binary = [
{file = "psycopg2_binary-2.9.3-cp39-cp39-win32.whl", hash = "sha256:46f0e0a6b5fa5851bbd9ab1bc805eef362d3a230fbdfbc209f4a236d0a7a990d"},
{file = "psycopg2_binary-2.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:accfe7e982411da3178ec690baaceaad3c278652998b2c45828aaac66cd8285f"},
]
+pyjwt = [
+ {file = "PyJWT-2.3.0-py3-none-any.whl", hash = "sha256:e0c4bb8d9f0af0c7f5b1ec4c5036309617d03d56932877f2f7a0beeb5318322f"},
+ {file = "PyJWT-2.3.0.tar.gz", hash = "sha256:b888b4d56f06f6dcd777210c334e69c737be74755d3e5e9ee3fe67dc18a0ee41"},
+]
pytz = [
{file = "pytz-2021.3-py2.py3-none-any.whl", hash = "sha256:3672058bc3453457b622aab7a1c3bfd5ab0bdae451512f6cf25f64ed37f5b87c"},
{file = "pytz-2021.3.tar.gz", hash = "sha256:acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326"},
diff --git a/pyproject.toml b/pyproject.toml
index 7142812..d5c6cc5 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -13,6 +13,7 @@ psycopg2-binary = "^2.9.3"
gunicorn = "^20.1.0"
whitenoise = "^5.3.0"
django-cors-headers = "^3.10.1"
+djangorestframework-simplejwt = "^5.0.0"
[tool.poetry.dev-dependencies]
From 692851f200a2e853153b39d3104fd12ed24780ae Mon Sep 17 00:00:00 2001
From: Yahialabeeb
Date: Thu, 30 Dec 2021 11:01:02 +0200
Subject: [PATCH 07/13] remove pycache
---
accounts/__pycache__/__init__.cpython-39.pyc | Bin 155 -> 0 bytes
accounts/__pycache__/admin.cpython-39.pyc | Bin 196 -> 0 bytes
accounts/__pycache__/apps.cpython-39.pyc | Bin 436 -> 0 bytes
accounts/__pycache__/models.cpython-39.pyc | Bin 193 -> 0 bytes
.../__pycache__/__init__.cpython-39.pyc | Bin 161 -> 0 bytes
blood_donating/__pycache__/admin.cpython-39.pyc | Bin 202 -> 0 bytes
blood_donating/__pycache__/apps.cpython-39.pyc | Bin 453 -> 0 bytes
blood_donating/__pycache__/models.cpython-39.pyc | Bin 199 -> 0 bytes
lifeshare/.env | 12 ------------
lifeshare/__pycache__/__init__.cpython-39.pyc | Bin 156 -> 0 bytes
lifeshare/__pycache__/settings.cpython-39.pyc | Bin 2954 -> 0 bytes
lifeshare/__pycache__/urls.cpython-39.pyc | Bin 935 -> 0 bytes
lifeshare/__pycache__/wsgi.cpython-39.pyc | Bin 563 -> 0 bytes
13 files changed, 12 deletions(-)
delete mode 100644 accounts/__pycache__/__init__.cpython-39.pyc
delete mode 100644 accounts/__pycache__/admin.cpython-39.pyc
delete mode 100644 accounts/__pycache__/apps.cpython-39.pyc
delete mode 100644 accounts/__pycache__/models.cpython-39.pyc
delete mode 100644 blood_donating/__pycache__/__init__.cpython-39.pyc
delete mode 100644 blood_donating/__pycache__/admin.cpython-39.pyc
delete mode 100644 blood_donating/__pycache__/apps.cpython-39.pyc
delete mode 100644 blood_donating/__pycache__/models.cpython-39.pyc
delete mode 100644 lifeshare/.env
delete mode 100644 lifeshare/__pycache__/__init__.cpython-39.pyc
delete mode 100644 lifeshare/__pycache__/settings.cpython-39.pyc
delete mode 100644 lifeshare/__pycache__/urls.cpython-39.pyc
delete mode 100644 lifeshare/__pycache__/wsgi.cpython-39.pyc
diff --git a/accounts/__pycache__/__init__.cpython-39.pyc b/accounts/__pycache__/__init__.cpython-39.pyc
deleted file mode 100644
index 55ee2e8e0cf8d41034534de30f9e0c6b0abfab53..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 155
zcmYe~<>g`kf}(9_5<&E15P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!H6enx(7s(xi+
zMrLA8Vp3+3zKMaMenC-wR%&vIzE5UaYH&tkQL3&}Vsf^AVsdhRX&r
Yyk0@&Ee@O9{FKt1R6CH#pMjVG0QjLK^8f$<
diff --git a/accounts/__pycache__/admin.cpython-39.pyc b/accounts/__pycache__/admin.cpython-39.pyc
deleted file mode 100644
index ab452c4b87459d7760a03e9ee57f68fcfdb8173c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 196
zcmYe~<>g`kf}(9_677NXV-N=!FabFZKwK;UBvKes7;_kM8KW2(8B&;n88n$+0!0}#
z8E>&BrsQVk`Drpm@ug%X=B4NBCFkdr6lEqAfecv5P{a(Rz{D?G{fzwFRQ<}tjLgKG
z#H7q5eG>yi{eq(WtkmQZeV@#<)ZmQ7qEua{#N=%K#N_1s(!7#leX#j@1(mlrY;yBc
PN^?@}7=b2!24V&PMeZ;?
diff --git a/accounts/__pycache__/apps.cpython-39.pyc b/accounts/__pycache__/apps.cpython-39.pyc
deleted file mode 100644
index 4d0baac2233206c45fcb92f319203dfa1c95d86a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 436
zcmYjNy-ve05Vqq~3jJX~tVpaGNI+t&P+KHeP?v65tZVGFDNY>XWGE{<0x!V}@Dx0O
zS0-M8iE~;+PrA?d^Z7gbU^MCzwEE){-thc#$)Wj}Owi3af*^t_QqY7_a!-UO*eelC
z(ifI^!e5ZE_l+zPQhPM5s#{%V`6_jlL!+2X(9J1=BncG+Z_|VcFYyIK72h6D(^R)*
zV|E(PXJP~8N=ITD6%lP{8Dz0k1k!ce@i_@%
diff --git a/accounts/__pycache__/models.cpython-39.pyc b/accounts/__pycache__/models.cpython-39.pyc
deleted file mode 100644
index cb51aa9e7c25f221dfeccda5d88b3c5f38142f03..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 193
zcmYe~<>g`kf}(9_5-oxBV-N=!FabFZKwK;UBvKes7;_kM8KW2(8B&;n88n$+0!0}#
z8E>)W=BK3Q6#Hp1-QrBiO3X{o*Gow%0%=~!P{abHz{D>*{fzwFRQ<}tjLgKG#H7q5
zeG>yi{eq(WtkmQZeV@#<)ZmQ7qEua{#N=%K#N_1s(!7#leTdn51(mlrY=G?2oK!nT
Kppl<}m;nI79xs6a
diff --git a/blood_donating/__pycache__/__init__.cpython-39.pyc b/blood_donating/__pycache__/__init__.cpython-39.pyc
deleted file mode 100644
index f6c485d1f1253e1e007a55df08a98d9e3432a150..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 161
zcmYe~<>g`kg6-SRB!cM2AOaaM0yz#qT+9L_QW%06G#UL?G8BP?5yUSy{fzwFRQ<}t
zjLgKG#H7q5eG>yi{eq(WtkmQZeV@#<)ZmQ7qEua{#N=%Kq@4Wxl=zhVyu^~symbBe
e_{_Y_lK6PNg34PQHo5sJr8%i~AoD*1F#`Y`3@4!g
diff --git a/blood_donating/__pycache__/admin.cpython-39.pyc b/blood_donating/__pycache__/admin.cpython-39.pyc
deleted file mode 100644
index 07ec48e209da18f910c6754acab0a74e772510ab..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 202
zcmYe~<>g`kg6-SRB-#V%#~=e4NX<@B61#fd|HhO)wYF!KWN5xg+2Jdm+Fi
zeP)pZ?wokNZ$uG~n!RaRUh5*s(uK|J3dLZ8S|6d2B%(mDn??+r$OVQht~m^q)^MW>
z(PTxsA$mH7l_*l}L+s}oq^kWeOQ&t4Z!@XD?8ml;!?tPW^-Q1hLgbQjGvFM1T4nta
z=Z~#W+sXmRM6{~m0-1QyQMtDEMk;%n&isVIQs**Qi)AL1h_g7jI6Du@O0VRi3GTB*
z&X=N+r=eIp1phx0h_bBxa$PZGv*)a>=~I_>nVHATaJ!jBR*oHNv47(?-Vk%9f4SM?
L%AT>d*b(~$7Z!8&
diff --git a/blood_donating/__pycache__/models.cpython-39.pyc b/blood_donating/__pycache__/models.cpython-39.pyc
deleted file mode 100644
index 024d5bf3129a71f512f2ee3f00eda0e48bfb01ca..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 199
zcmYe~<>g`kg6-SRBw7OL#~=g`kf|py*B!cM2AOaaM0yz#qT+9L_QW%06G#UL?G8BP?5yUS?{fzwFRQ<}t
zjLgKG#H7q5eG>yi{eq(WtkmQZeV@#<)ZmQ7qEua{#N=%K93ZzC#MO_F&&Vbi69b^IiUy+L0T;?iUGMxa%B);
zc9&9x+gx|@0=bBDmq*AuASTTsgvwU*2*E-
zQqY>Ujx#5DTtL}T8W&Lx=%Qa5r=Y)}MWl#ToI~r|Vz!9#E3}LXqckf1vtVuDO}z14
z36)+*UrW~3IEBjJOV$-=H=wsI2qwCgN=q->gq8l%y
zsJ$7tZ^!MexZRH0GJ5BQgl>PEC6aXm-9hhyt~;m_(LY4=k3<^F)=l)D^)~vGbqnI%
zhW8z`W8H>m?rx{7JLsPEF3Omx>if=zkiLB5#PP;{g<;N#H)fTQPb)4NVK#9nuFR-^
zf`?qq=MS-mslzd<49+X}P$aeMpegYxj60OaocAho26`&7+Q;exkUapMQy4
zcU|zE@rpmX49M{i7{Y{BP91lS+5cmU;!(oTFQN#mQYd#EK4}O0aT18f@NiD??)mQh
z(az}cC;ZW9M5~Uw``+a2?p^!u)PMBR!v}jicPAfzLh(l*p!2<8ckg^Bc-T9z@|~{H
z=+}EqqaEB@XjIWa9XP}1*h5TZU%7bE*@AnU_g5G}C>>BMO
zz1_36v{uVFwt?D4w|UrXn_(%M(i`?u!|a*X#&Wn^-)Lw(ZC^8WTW^Da9+oa9+S*Za
z*f;fVxOK7G(Mou
zSY?VCw@1{O;xnH?wjlG-_gj{?E
zr%8?Kgz$6K6a@pFql>j*C!tqO$kf4Hg6)37+XUCKh@mZFNbo-XojfJgn~U5fq^hs_
z4X1DFdulyu{s$|gBef3X8Np`>*1xRy;=nE^{m@_x8%%}~I3xsDgIMlqQut`G&k3oI
zUlW8&hR;vnSiwfAe?1TzYRm)@CDU8JfIf9jT^7`0JseMGE}-A#xr`SY5fJv`WoBK8
zD)k@S2ILxoTd;doIe33n&8u80!h`uZxc>&66n_Oc#)A)H-epxsIem?0F&{iyVZO-Y
zYXp{SRXNPm{K#zb{yGstwbjbRSqku!HW
z%>n|@oFIxI>w<_&o)&;qvtc#{9y!7rIf5DG0$t4Y4G`*YC0kwna-yz?2Y;4QvQoKm0uj5PVD2Q
zg1t9Y(4J2*CBs)WtYL3=&a6zoR}Ylh0=8;l;Wro;8-Y7y>Lctjb)Ssk$oU5ZyQo?T
zb2fn3(6+PEztya3q8!8Z<=te4H?@B6
zsl6;B`*auC$)%YPr{|s?Qklb?a-{ji(<7{KNke0mNO^_Cv>
zX;AtiSO&gb56XcEm!a>mkcKSS4!5H(!Ny-6(BZY0jEDlzlCPOAh+^p7n=5oKt2N&=
ziWn}dD0*8kbknG^CdM#T=^IpXZIF_UVcK5M$Vl{ovyVDO7g8Z10f<*?sf2?-b;*ck
zNHeyG5RAf@S}!oBGS?~Hl4>JsCATa$X)Xn36+TVp*vOja8rxtD&ubjL{6qv`=|yzW
zRJmohd)9%Tr06-Nh*XG+S}LaN
diff --git a/lifeshare/__pycache__/wsgi.cpython-39.pyc b/lifeshare/__pycache__/wsgi.cpython-39.pyc
deleted file mode 100644
index f0ffc9f64bc1e8239fef0da6c4e780d4f7ba1032..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 563
zcmYjP!EO^V5cO`-CM*=83UT%|5?u$WCj=FsmMEyChb=?uRZoB
z=&>KbU+@F?%BjD=iP;3IjO4M#qnY>KjQP$^M9}Vk{Ny(QA-~&T)4CYE!()f&1ep>M
zh)@O70Pl_ptIo6&5D4bo?^~iPwr)d=I@e^nEy9Ehwy%CgUz5?8W=7|-pt)(Nk~!Ft
zH$dyg%pr4e6pbB)%i375)RjQjC0r?frhsxwIjxL1SFopG0g5hoBUdTSD-d)x<8`fM
z#+@{JHp6}&5vMW;AvHo)s{}O~n@dY`so*8G08!~&ZC^7cOlD&-=ejWeIc26|pxJ&r
zWTm-qh6$*ZSyrGOyRe01(LD}?Oa_5}UVuy6w{(Mse{uNf{bY2KCP$~I
Date: Thu, 30 Dec 2021 18:41:01 +0200
Subject: [PATCH 08/13] hospital app created
---
accounts/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 176 bytes
accounts/__pycache__/admin.cpython-39.pyc | Bin 0 -> 217 bytes
accounts/__pycache__/apps.cpython-39.pyc | Bin 0 -> 457 bytes
accounts/__pycache__/models.cpython-39.pyc | Bin 0 -> 214 bytes
.../__pycache__/__init__.cpython-39.pyc | Bin 166 -> 187 bytes
.../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 182 bytes
.../__pycache__/admin.cpython-39.pyc | Bin 0 -> 223 bytes
.../__pycache__/apps.cpython-39.pyc | Bin 0 -> 474 bytes
.../__pycache__/models.cpython-39.pyc | Bin 0 -> 220 bytes
.../__pycache__/__init__.cpython-39.pyc | Bin 172 -> 193 bytes
db.sqlite3 | Bin 0 -> 139264 bytes
hospital/__init__.py | 0
hospital/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 176 bytes
hospital/__pycache__/admin.cpython-39.pyc | Bin 0 -> 217 bytes
hospital/__pycache__/apps.cpython-39.pyc | Bin 0 -> 457 bytes
hospital/__pycache__/forms.cpython-39.pyc | Bin 0 -> 1968 bytes
hospital/__pycache__/models.cpython-39.pyc | Bin 0 -> 541 bytes
.../__pycache__/serializers.cpython-39.pyc | Bin 0 -> 1021 bytes
hospital/__pycache__/urls.cpython-39.pyc | Bin 0 -> 476 bytes
hospital/__pycache__/views.cpython-39.pyc | Bin 0 -> 1650 bytes
hospital/admin.py | 3 +
hospital/apps.py | 6 ++
hospital/default.png | Bin 0 -> 302949 bytes
hospital/forms.py | 44 +++++++++++++++
hospital/migrations/0001_initial.py | 33 +++++++++++
hospital/migrations/0002_customuser_image.py | 18 ++++++
hospital/migrations/__init__.py | 0
.../__pycache__/0001_initial.cpython-39.pyc | Bin 0 -> 1064 bytes
.../0002_customuser_image.cpython-39.pyc | Bin 0 -> 636 bytes
.../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 187 bytes
hospital/models.py | 7 +++
hospital/serializers.py | 24 ++++++++
hospital/tests.py | 3 +
hospital/urls.py | 12 ++++
hospital/views.py | 33 +++++++++++
lifeshare/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 177 bytes
lifeshare/__pycache__/settings.cpython-39.pyc | Bin 0 -> 3149 bytes
lifeshare/__pycache__/urls.cpython-39.pyc | Bin 0 -> 1299 bytes
lifeshare/__pycache__/wsgi.cpython-39.pyc | Bin 0 -> 584 bytes
lifeshare/settings.py | 13 ++++-
lifeshare/urls.py | 7 +++
poetry.lock | 53 +++++++++++++++++-
pyproject.toml | 1 +
templates/base.html | 14 +++++
templates/registration/signup.html | 13 +++++
45 files changed, 281 insertions(+), 3 deletions(-)
create mode 100644 accounts/__pycache__/__init__.cpython-39.pyc
create mode 100644 accounts/__pycache__/admin.cpython-39.pyc
create mode 100644 accounts/__pycache__/apps.cpython-39.pyc
create mode 100644 accounts/__pycache__/models.cpython-39.pyc
create mode 100644 blood_donating/__pycache__/__init__.cpython-39.pyc
create mode 100644 blood_donating/__pycache__/admin.cpython-39.pyc
create mode 100644 blood_donating/__pycache__/apps.cpython-39.pyc
create mode 100644 blood_donating/__pycache__/models.cpython-39.pyc
create mode 100644 hospital/__init__.py
create mode 100644 hospital/__pycache__/__init__.cpython-39.pyc
create mode 100644 hospital/__pycache__/admin.cpython-39.pyc
create mode 100644 hospital/__pycache__/apps.cpython-39.pyc
create mode 100644 hospital/__pycache__/forms.cpython-39.pyc
create mode 100644 hospital/__pycache__/models.cpython-39.pyc
create mode 100644 hospital/__pycache__/serializers.cpython-39.pyc
create mode 100644 hospital/__pycache__/urls.cpython-39.pyc
create mode 100644 hospital/__pycache__/views.cpython-39.pyc
create mode 100644 hospital/admin.py
create mode 100644 hospital/apps.py
create mode 100644 hospital/default.png
create mode 100644 hospital/forms.py
create mode 100644 hospital/migrations/0001_initial.py
create mode 100644 hospital/migrations/0002_customuser_image.py
create mode 100644 hospital/migrations/__init__.py
create mode 100644 hospital/migrations/__pycache__/0001_initial.cpython-39.pyc
create mode 100644 hospital/migrations/__pycache__/0002_customuser_image.cpython-39.pyc
create mode 100644 hospital/migrations/__pycache__/__init__.cpython-39.pyc
create mode 100644 hospital/models.py
create mode 100644 hospital/serializers.py
create mode 100644 hospital/tests.py
create mode 100644 hospital/urls.py
create mode 100644 hospital/views.py
create mode 100644 lifeshare/__pycache__/__init__.cpython-39.pyc
create mode 100644 lifeshare/__pycache__/settings.cpython-39.pyc
create mode 100644 lifeshare/__pycache__/urls.cpython-39.pyc
create mode 100644 lifeshare/__pycache__/wsgi.cpython-39.pyc
create mode 100644 templates/base.html
create mode 100644 templates/registration/signup.html
diff --git a/accounts/__pycache__/__init__.cpython-39.pyc b/accounts/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..6d315785c8041196d6c1aff9d20e70e22ee963c0
GIT binary patch
literal 176
zcmYe~<>g`k0@I4Ki6Hthh(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o10WKO;XkRX;aB
zBQZBOF-5Ilr{1IJH>c#K2HLEi*4MM;9uk?~|F98k~_>l&b5Ln4GPj
mm<&{!2hVW&i+cDJ;(b
literal 0
HcmV?d00001
diff --git a/accounts/__pycache__/admin.cpython-39.pyc b/accounts/__pycache__/admin.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..ecfdc51d9fa5b6adc96b03d22c094b4e0dd6046e
GIT binary patch
literal 217
zcmYjKy9&ZE6ir$L5i0&hhc*hjiAZO0uv@ollG@ZJDQOG(Nq&q!(ACM=&Br9^ls3H>K_Nl5z<2(8RM^s=ca!JKT&
zt!bS)y5Yf%I3LSb-Un7#Et$3jXbpnZ&X$t54db?RjcnL*zF@gBP({BH+o@cp1vnWc
cz|Ragt{S}fhQ{@^AFs6)T_raZV_rz|0g{$D8~^|S
literal 0
HcmV?d00001
diff --git a/accounts/__pycache__/apps.cpython-39.pyc b/accounts/__pycache__/apps.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..13a7487d21a2a1b75c9c4500feacdd67822832e4
GIT binary patch
literal 457
zcmYjNy-ve05Vqq~3jJX~tVpaG8iNEILT!;?L6uOqESAYRZAu)6IFW!Ao`N^vVR(V8
zOuPaU=QfC*bf53%^QXI$qfwuroj-lbcYMEGvTHsj6Lfow00d}GG>s`GHv~LjZv>d4
zuPpY!Uy!i(jVuz_a>~=JkomZ4
z@!Kp_ig`k0@I4Ki8es`F^Gc(44TX@fuanW
zjJMcw^HWlDiv2X1ZgHk$CFZ5)>!lenx(7s(x;MMq+MmVv2r2
zQGQlxa!Ij%a(-!1acZ%?iGiVhT4r8ijxJP6-zPIIH8>-&C{@=fF*#d5F&U^d52yoT
Ypg`k0@I4Ki6Hthh(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o10cKO;XkRX;aB
zBQZBOF-5Ilr{1IJH>c#K2HLEi*4MM;9uk?~|F98k~_>l&b5Ln4GPj
ul#`#I5}%TvmspaSm#!ZlpP83g5+AQuP}gJOx8V{&pX6iwfUT9aot3LtI50EJ
zF3e!F*-(Pv>55bF`zQP(k}wgLZ4pwWbLI3(YemsQCGkV9D$%zZlCyrEM5`9<(eJpM
zvaf>Ogipamg;?w>uO(#c3^>lvIV30o?@d~jkn%Bu%UV}LVkZ%=TX`<`K}vU;HT>N3rO6b}%u;5V1YVS8rJ~C6$ke4(mY*J<
z@How-9=9oem&R(ol%*O^W%R)RPse3Z*r0eW8GhkzY#sEdN7s>=&zeEIuB$9NZW34f
WH`B%%V65q#Zje
diff --git a/db.sqlite3 b/db.sqlite3
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..386b1886946dc728f576368518f473a00d2e1734 100644
GIT binary patch
literal 139264
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
literal 0
HcmV?d00001
diff --git a/hospital/__pycache__/admin.cpython-39.pyc b/hospital/__pycache__/admin.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..c65bc19ff7fe1dd597b1a598c85a1e36ec8cc3fd
GIT binary patch
literal 217
zcmYe~<>g`kf*Flx6YYWYV-N=!FabFZKwK;UBvKes7;_kM8KW2(8B&;n88n$+0!0}#
z8E>&BrsQVk`Drpm@ug%X=B4NBCFkdr6lEqAfecv5P{a(Rz{Ia0{fzwFRQ=rijKtjB
z#1#F4qWrAXp0TsX9zcIGV
zYpyzt=OeM<#o9#TKGH@=WuryDo;S6*%B2!*koELsIA{aL3a%w%?T|5GH_F9h#vU84
z`p$unDQ{HGIB2kRE8@G}C#u{%w(xsLGovNdCgWOjLCeZ)WKvt2n5MGQ(zBCOn&t&p
z)4oM-^Hi=fUdic#Cl4^+twDKN+NgZ02#C9rS_c94@wT!INjvISbj-?ge{kIY-*nLk
RYHe`dt##o}X&rY={s5h}bw2I_gb#4zU477Gz>^KbFf^;h|1jE|yAPf)~k&fk3l1Ir)
zYB<2K=9(RMPLBOB`vSb~l&>&gz}}0?pr%-^7;$X3(nvRq(`+o%vD-|;=C$^g1(LYmJ+N?^6VKHVQ%#&CKGOE
zww21!E!a+3BA+Efatubt7?(W%xG;DMt@sUuAR*->w1ho&IOP_%xpQoXE{r|ya_^Xi
zHDg2RbN|>1>t>9y8V6<^@CI*!wIS@2<|zqVyv0|JNVvjRc^mpwzQ#MyxA_KN=QodN
zxW;b*oHNjo`6IK-ax#B&mn(+1$z9-6Adn?a|iAuXm2VL72yG2rpGeY4zmAhJjMPeAg
ze{9gOZ9yv@ftZsqkYSUY&{J|qOKS`{oI?(e>7g~ZPTW(X9+V!p-_qadoB~#7N7W$?
zc8J}qgEj4bEupIXO?UesDav;>-HfGRncxvrmI35^Unqs&)wO(gEaI}z-Y}7+P}+_2
zX;vys5oE_HgdCccwVjFmcSL;xhJSt>jPg_r(tO0yl<~ntI)f_HhI-7mW-E8`Kc
z_a>sLI8g!Z;>2APmw>LC>P5@dpWFeT1=xTFRvYVh?;5a|!d}LRaQPrr;TEkBe-27X
z#`MGjv^E|V(*tVL+neOn#>4XAa8zaKLR`-=v{zUH-H7q-6A@C#AY4>YdvTtoNvR!U
zxdhND*slWjP~eq7sAst8|LeH3jcahB_fC(#>~*vsMR@&0kq)9L&G}TK-i)GOrc72A
zg{XCX3l568aLv(E2;E@Ntz~_lXOn5Ex@a&}=wMv%JY{>r1Zp=yU19pwXDIHWzP&`1nuhmgMZ@p%aQ*UAUQ!dyBGu!R1!r~N*(s3r~K5X
zX<=HLvn`KdRi8I{I
z;^m`ue;`CR4h-m!wwduLv}>tY)7rq1JTkakCI8~@hr&=wZ#
Q;HbOAF`lv$8q%Tv3wm^mNdN!<
literal 0
HcmV?d00001
diff --git a/hospital/__pycache__/serializers.cpython-39.pyc b/hospital/__pycache__/serializers.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..3035934feb6c9efd160bef4fa5236dcb48b3e536
GIT binary patch
literal 1021
zcmZuw%Wl&^6rG3dxJeowrJ%B8=SAZpu|fz%RDw;LO+Z54SQF1Aacak5#vy7{R_(SQ
z!bk84{J?BkD2#QF=6UAKxz}QMw@IL#eETlejF2BV*lrFCdJyI%fFzP;
zB&QLj*k>8bdBma5rIR_i8@ZIcBhr=L6_K8zQ}2>T4cQowz+c085>VSRN~a=AS4tZg
zcE+lV7cdv+g;d#^*1MX?!jwh+0TvQGxZOAmdJv`yph!d|iJ0P3M^eeIY2>1uD-wCP
zQZCtz4BJ7@!A8S-(9m4!v{Z31%gz(4NUSS)>aH^8h*jA#I05wPw
zaO)VAjcn&LI3{6Q#(=^)xcZgo`*8H<$8b{QD$I+C$a5jXxh^WIFew(=C=7;9&d
zVZR;6pB5skS88Y7s<5m#N>wIJW!V-y09Dq(3-?hZmb*_Krk_HmANU$)^<#u52v{C=
z=NPPei*$7!AL0rg*y6>^Xe8Gj0ER*ES)2RKY7W?KM=MjtBMlFMGC8a1_vBQ}#zi+N
uW~EMtU9l)98f(#d)l*FUu6w8W!wfbVt4RN+!1}Lhe_mrQDj97GAO8)=;q}G<
literal 0
HcmV?d00001
diff --git a/hospital/__pycache__/urls.cpython-39.pyc b/hospital/__pycache__/urls.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..c27f0be450acfdc5be9d7bb4f5af17ece6155652
GIT binary patch
literal 476
zcmYk2J5B>J5Qgo2B!O%o4Tnep28jwG1cZVDfe?>kg@jBzWS6Y%mF)$QmYO?2$ziyF
zTN=0m5)$K(f{{F$PxJc6yw_VKXrKO_b4tiZfdAG)*u`hB&E@8T`T`IR#Pj*>Dvzs0i-+loeV6le*wia=~h&?_lIC8|lVauxxXE
zgWZ;jSF7_BJ1TGCtl$P#_xWgo{eP#kAZD$8^qp;~MN`2}5N5-cEb2#D+^2n-{rmzt
CF^DVx
literal 0
HcmV?d00001
diff --git a/hospital/__pycache__/views.cpython-39.pyc b/hospital/__pycache__/views.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..5fdf536f5088ff06cc4c89e57c765d6d2536dbe0
GIT binary patch
literal 1650
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