From cc21f2befd871a33f7dcc60307eb67c15e912f85 Mon Sep 17 00:00:00 2001
From: serikbeissov
Date: Wed, 2 Oct 2024 22:01:03 +0500
Subject: [PATCH 01/12] 1 git-init
---
git/1 git-init/README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/git/1 git-init/README.md b/git/1 git-init/README.md
index d9d05ba5..64dd6ae9 100644
--- a/git/1 git-init/README.md
+++ b/git/1 git-init/README.md
@@ -45,3 +45,5 @@ P.S.
- Красивый вывод логов `git log --all --decorate --oneline --graph`
[Рецензия](./REVIEW.md)
+
+https://github.com/serikbeissov/jusan-git
From 49eeff3812e6732312b6536aa27adeae9921fe3c Mon Sep 17 00:00:00 2001
From: serikbeissov
Date: Wed, 2 Oct 2024 22:20:17 +0500
Subject: [PATCH 02/12] 2 readme
---
git/2 readme/README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/git/2 readme/README.md b/git/2 readme/README.md
index e0f14c3d..fc643009 100644
--- a/git/2 readme/README.md
+++ b/git/2 readme/README.md
@@ -89,3 +89,5 @@ int main() {
| WhatsApp | [Ссылка](whats.app) | 30 минут |
| Telegram | [Ссылка](tg.me) | 5 минут |
````
+
+https://github.com/serikbeissov/jusan-git/commit/31eba8d51d34be3bb47e09238b937e01358b2769
From ddf0b2a90067dfb5743e41080d37f0e2f1ccc0ef Mon Sep 17 00:00:00 2001
From: serikbeissov
Date: Wed, 2 Oct 2024 22:32:19 +0500
Subject: [PATCH 03/12] 3 gitignore
---
git/3 gitignore/README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/git/3 gitignore/README.md b/git/3 gitignore/README.md
index ccc52219..09a79b25 100644
--- a/git/3 gitignore/README.md
+++ b/git/3 gitignore/README.md
@@ -35,3 +35,5 @@ https://github.com/username/jusan-git/tree/5a1e0d9c4c864e13f0682bec96a9f19786fad
```
temp
```
+
+https://github.com/serikbeissov/jusan-git/commit/e914a939432fb500ba96b3ab9a7fe6d878eadb5b
From 10ce5beed0096debb6995ea9a1b43602209f20fa Mon Sep 17 00:00:00 2001
From: serikbeissov
Date: Wed, 2 Oct 2024 22:51:07 +0500
Subject: [PATCH 04/12] 4 branch
---
git/4 branch/README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/git/4 branch/README.md b/git/4 branch/README.md
index 6b39c1aa..01165b61 100644
--- a/git/4 branch/README.md
+++ b/git/4 branch/README.md
@@ -46,3 +46,5 @@ git checkout authorization
5. Загрузите изменения `git push`
6. Прислать ссылку на репозиторий c указанием последнего коммита мастера в URL.
+
+https://github.com/serikbeissov/jusan-git/commit/e914a939432fb500ba96b3ab9a7fe6d878eadb5b
From 51be474136e8d1f9ee53f27f01be5fadb113c5a4 Mon Sep 17 00:00:00 2001
From: serikbeissov
Date: Wed, 2 Oct 2024 23:03:02 +0500
Subject: [PATCH 05/12] 5 merge
---
git/5 merge/README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/git/5 merge/README.md b/git/5 merge/README.md
index 0e3b2fd2..37b152d0 100644
--- a/git/5 merge/README.md
+++ b/git/5 merge/README.md
@@ -12,3 +12,5 @@
1. В репозитории `jusan-git` объедините ветку `feature/username` с `master`.
2. Загрузите изменения `git push`.
3. Прислать ссылку на репозиторий c указанием последнего коммита мастера в URL.
+
+https://github.com/serikbeissov/jusan-git/tree/78506335d583ee1365dc0ad5c25a53cc0ff6bb28
From 2a564c1b62514a386980f34b66c88f9a62d4c014 Mon Sep 17 00:00:00 2001
From: serikbeissov
Date: Wed, 2 Oct 2024 23:12:26 +0500
Subject: [PATCH 06/12] 6 my-pr
---
git/6 my-pr/README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/git/6 my-pr/README.md b/git/6 my-pr/README.md
index 3ee51a47..5e2725ea 100644
--- a/git/6 my-pr/README.md
+++ b/git/6 my-pr/README.md
@@ -12,3 +12,5 @@ Pull request позволяют вам сообщать другим об изм
1. В репозитории `jusan-git` создать "Pull request" из ветки `new-readme` в `master`.
2. Посмотрите на странице пулл-реквеста, как отображаются окна: Conversation, Commits, Checks, Files changed.
3. Прислать ссылку на pull-request.
+
+https://github.com/serikbeissov/jusan-git/pull/1
From f43728cfa58ea792e12ae76412ee7f53dfce5917 Mon Sep 17 00:00:00 2001
From: serikbeissov
Date: Wed, 2 Oct 2024 23:51:46 +0500
Subject: [PATCH 07/12] 7 fork-pr
---
git/7 fork-pr/README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/git/7 fork-pr/README.md b/git/7 fork-pr/README.md
index 71abbe4d..9fbce4b1 100644
--- a/git/7 fork-pr/README.md
+++ b/git/7 fork-pr/README.md
@@ -32,3 +32,5 @@ fork - это клонирование чужого репозитория на
```bash
curl -s https://stepik.org:443/api/course-lists\?page\=1 | jq --raw-output '."course-lists"[].title'
```
+
+https://github.com/jusan-singularity/fork-me/pull/109
From 1d8fb9117b38bb0b77277c64e588908cb475c1f6 Mon Sep 17 00:00:00 2001
From: serikbeissov
Date: Thu, 17 Oct 2024 17:17:16 +0500
Subject: [PATCH 08/12] add python light and medium answers
---
.../calc-deposit.py" | 5 +++++
.../int-cmp.py" | 9 +++++++++
.../max-of-three.py" | 9 +++++++++
.../min.py" | 12 ++++++++++++
.../pow-a-b.py" | 6 ++++++
.../print-even-a-b.py" | 8 ++++++++
.../range.py" | 9 +++++++++
.../sort.py" | 11 +++++++++++
.../sqr-sum-1-n.py" | 7 +++++++
.../sum.py" | 7 +++++++
.../1-medium.py" | 6 ++++++
.../2-medium.py" | 12 ++++++++++++
.../3-medium.py" | 12 ++++++++++++
.../4-medium.py" | 9 +++++++++
.../5-medium.py" | 16 ++++++++++++++++
.../6-medium.py" | 19 +++++++++++++++++++
.../7-medium.py" | 15 +++++++++++++++
.../8-medium.py" | 16 ++++++++++++++++
18 files changed, 188 insertions(+)
create mode 100644 "python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/calc-deposit.py"
create mode 100644 "python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/int-cmp.py"
create mode 100644 "python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/max-of-three.py"
create mode 100644 "python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/min.py"
create mode 100644 "python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/pow-a-b.py"
create mode 100644 "python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/print-even-a-b.py"
create mode 100644 "python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/range.py"
create mode 100644 "python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/sort.py"
create mode 100644 "python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/sqr-sum-1-n.py"
create mode 100644 "python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/sum.py"
create mode 100644 "python/\321\201\321\200\320\265\320\264\320\275\320\270\320\265 \320\267\320\260\320\264\320\260\321\207\320\270/1-medium.py"
create mode 100644 "python/\321\201\321\200\320\265\320\264\320\275\320\270\320\265 \320\267\320\260\320\264\320\260\321\207\320\270/2-medium.py"
create mode 100644 "python/\321\201\321\200\320\265\320\264\320\275\320\270\320\265 \320\267\320\260\320\264\320\260\321\207\320\270/3-medium.py"
create mode 100644 "python/\321\201\321\200\320\265\320\264\320\275\320\270\320\265 \320\267\320\260\320\264\320\260\321\207\320\270/4-medium.py"
create mode 100644 "python/\321\201\321\200\320\265\320\264\320\275\320\270\320\265 \320\267\320\260\320\264\320\260\321\207\320\270/5-medium.py"
create mode 100644 "python/\321\201\321\200\320\265\320\264\320\275\320\270\320\265 \320\267\320\260\320\264\320\260\321\207\320\270/6-medium.py"
create mode 100644 "python/\321\201\321\200\320\265\320\264\320\275\320\270\320\265 \320\267\320\260\320\264\320\260\321\207\320\270/7-medium.py"
create mode 100644 "python/\321\201\321\200\320\265\320\264\320\275\320\270\320\265 \320\267\320\260\320\264\320\260\321\207\320\270/8-medium.py"
diff --git "a/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/calc-deposit.py" "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/calc-deposit.py"
new file mode 100644
index 00000000..d8e9911f
--- /dev/null
+++ "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/calc-deposit.py"
@@ -0,0 +1,5 @@
+def calc(balance:float,procent:float,srok:int):
+ for i in range(srok):
+ balance += balance*procent/100
+ print(round(balance,2))
+calc(1000,5,1)
\ No newline at end of file
diff --git "a/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/int-cmp.py" "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/int-cmp.py"
new file mode 100644
index 00000000..530f0170
--- /dev/null
+++ "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/int-cmp.py"
@@ -0,0 +1,9 @@
+a=float(input("vvedite a: "))
+b=float(input("vvedite b: "))
+if a>b:
+ print("ответ: 1")
+elif a=b and a>=c:
+ print("max number is: ",a)
+elif b>=c and b>a:
+ print("max number is: ",b)
+else:
+ print("max number is: ",c)
\ No newline at end of file
diff --git "a/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/min.py" "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/min.py"
new file mode 100644
index 00000000..14ebb6b4
--- /dev/null
+++ "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/min.py"
@@ -0,0 +1,12 @@
+def min_num(array):
+ if not array:
+ return 0
+ min=array[0]
+ for i in range(len(array)):
+ if min>array[i]:
+ min=array[i]
+ print("min number is",min)
+
+min_num([1,2,3])
+
+
diff --git "a/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/pow-a-b.py" "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/pow-a-b.py"
new file mode 100644
index 00000000..57367dc4
--- /dev/null
+++ "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/pow-a-b.py"
@@ -0,0 +1,6 @@
+a=int(input("vvedite chislo a:"))
+b=int(input("vvedite chislo b:"))
+result=1
+for i in range(b):
+ result=result*a
+print("a^b=",result)
\ No newline at end of file
diff --git "a/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/print-even-a-b.py" "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/print-even-a-b.py"
new file mode 100644
index 00000000..1fa2781b
--- /dev/null
+++ "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/print-even-a-b.py"
@@ -0,0 +1,8 @@
+a=int(input("vvedite chislo a:"))
+b=int(input("vvedite chislo b:"))
+for i in range(b-a+1):
+ if a%2==0:
+ print(a)
+ a+=1
+
+
diff --git "a/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/range.py" "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/range.py"
new file mode 100644
index 00000000..05b90065
--- /dev/null
+++ "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/range.py"
@@ -0,0 +1,9 @@
+def range_arr(num:int):
+ array=[]
+ for i in range(num):
+ array.append(i+1)
+ print(array)
+range_arr(5)
+
+
+
\ No newline at end of file
diff --git "a/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/sort.py" "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/sort.py"
new file mode 100644
index 00000000..e050113d
--- /dev/null
+++ "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/sort.py"
@@ -0,0 +1,11 @@
+def sort(array):
+ end=False
+ while end==False:
+ end=True
+ for i in range(len(array)-1):
+ if array[i]>array[i+1]:
+ array[i],array[i+1]=array[i+1],array[i]
+ end=False
+ print(array)
+
+sort([4,34,6,3,1,45,2,0,-12,53,8,114,2])
\ No newline at end of file
diff --git "a/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/sqr-sum-1-n.py" "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/sqr-sum-1-n.py"
new file mode 100644
index 00000000..06474a66
--- /dev/null
+++ "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/sqr-sum-1-n.py"
@@ -0,0 +1,7 @@
+n=int(input("vvedite chislo: "))
+sum=0
+for i in range(n+1):
+ sum=sum+i*i
+print("Summa kvadratov = ",sum)
+
+
\ No newline at end of file
diff --git "a/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/sum.py" "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/sum.py"
new file mode 100644
index 00000000..19101f07
--- /dev/null
+++ "b/python/\320\273\320\265\320\263\320\272\320\270\320\265 \320\262\320\276\320\277\321\200\320\276\321\201\321\213/sum.py"
@@ -0,0 +1,7 @@
+def sum_array(array):
+ sum=0
+ for i in array:
+ sum+=i
+ print(sum)
+
+sum_array([1,2,3])
diff --git "a/python/\321\201\321\200\320\265\320\264\320\275\320\270\320\265 \320\267\320\260\320\264\320\260\321\207\320\270/1-medium.py" "b/python/\321\201\321\200\320\265\320\264\320\275\320\270\320\265 \320\267\320\260\320\264\320\260\321\207\320\270/1-medium.py"
new file mode 100644
index 00000000..47c4849f
--- /dev/null
+++ "b/python/\321\201\321\200\320\265\320\264\320\275\320\270\320\265 \320\267\320\260\320\264\320\260\321\207\320\270/1-medium.py"
@@ -0,0 +1,6 @@
+def number(num:int):
+ if num%2==0:
+ print(num,"- chetnoe")
+ else:
+ print(num,"- nechetnoe")
+number(25)
\ No newline at end of file
diff --git "a/python/\321\201\321\200\320\265\320\264\320\275\320\270\320\265 \320\267\320\260\320\264\320\260\321\207\320\270/2-medium.py" "b/python/\321\201\321\200\320\265\320\264\320\275\320\270\320\265 \320\267\320\260\320\264\320\260\321\207\320\270/2-medium.py"
new file mode 100644
index 00000000..411b5bc3
--- /dev/null
+++ "b/python/\321\201\321\200\320\265\320\264\320\275\320\270\320\265 \320\267\320\260\320\264\320\260\321\207\320\270/2-medium.py"
@@ -0,0 +1,12 @@
+def palindrom(word:str):
+ i=0
+ while i=1 and day<=31) or (month==1 and day>=1 and day<=31) or (month==2 and day>=1 and day<=29):
+ return "Зима"
+ elif (month==3 and day>=1 and day<=31) or (month==4 and day>=1 and day<=30) or (month==5 and day>=1 and day<=31):
+ return "Весна"
+ elif (month==6 and day>=1 and day<=30) or (month==7 and day>=1 and day<=31) or (month==8 and day>=1 and day<=31):
+ return "Лето"
+ elif (month==9 and day>=1 and day<=30) or (month==10 and day>=1 and day<=31) or (month==11 and day>=1 and day<=31):
+ return "Осень"
+
+month = int(input("Введите месяц (1-12): "))
+day = int(input("Введите день (1-31): "))
+
+season = determine_season(month, day)
+print(f"Эта дата относится к сезону: {season}")
From d9f725eba5db4e44d04aecc911c8c1d9b882d7b4 Mon Sep 17 00:00:00 2001
From: serikbeissov
Date: Sun, 20 Oct 2024 22:15:35 +0500
Subject: [PATCH 09/12] add api-project
---
.../api/fastapi-final/api-project/.gitignore | 162 ++++++++++++++++++
python/api/fastapi-final/api-project/main.py | 67 ++++++++
.../api-project/requirements.txt | 97 +++++++++++
3 files changed, 326 insertions(+)
create mode 100644 python/api/fastapi-final/api-project/.gitignore
create mode 100644 python/api/fastapi-final/api-project/main.py
create mode 100644 python/api/fastapi-final/api-project/requirements.txt
diff --git a/python/api/fastapi-final/api-project/.gitignore b/python/api/fastapi-final/api-project/.gitignore
new file mode 100644
index 00000000..efa407c3
--- /dev/null
+++ b/python/api/fastapi-final/api-project/.gitignore
@@ -0,0 +1,162 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+share/python-wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.nox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+*.py,cover
+.hypothesis/
+.pytest_cache/
+cover/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+local_settings.py
+db.sqlite3
+db.sqlite3-journal
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+.pybuilder/
+target/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# IPython
+profile_default/
+ipython_config.py
+
+# pyenv
+# For a library or package, you might want to ignore these files since the code is
+# intended to run in multiple environments; otherwise, check them in:
+# .python-version
+
+# pipenv
+# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
+# However, in case of collaboration, if having platform-specific dependencies or dependencies
+# having no cross-platform support, pipenv may install dependencies that don't work, or not
+# install all needed dependencies.
+#Pipfile.lock
+
+# poetry
+# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
+# This is especially recommended for binary packages to ensure reproducibility, and is more
+# commonly ignored for libraries.
+# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
+#poetry.lock
+
+# pdm
+# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
+#pdm.lock
+# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
+# in version control.
+# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
+.pdm.toml
+.pdm-python
+.pdm-build/
+
+# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
+__pypackages__/
+
+# Celery stuff
+celerybeat-schedule
+celerybeat.pid
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.venv
+env/
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+.dmypy.json
+dmypy.json
+
+# Pyre type checker
+.pyre/
+
+# pytype static type analyzer
+.pytype/
+
+# Cython debug symbols
+cython_debug/
+
+# PyCharm
+# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
+# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
+# and can be added to the global gitignore or merged into this file. For a more nuclear
+# option (not recommended) you can uncomment the following to ignore the entire idea folder.
+#.idea/
\ No newline at end of file
diff --git a/python/api/fastapi-final/api-project/main.py b/python/api/fastapi-final/api-project/main.py
new file mode 100644
index 00000000..02e74cb9
--- /dev/null
+++ b/python/api/fastapi-final/api-project/main.py
@@ -0,0 +1,67 @@
+from fastapi import FastAPI
+from fastapi import Header, HTTPException
+from pydantic import BaseModel
+app=FastAPI()
+
+elements = []
+
+class Element_in(BaseModel):
+ element:str
+
+class Expression(BaseModel):
+ expr: str
+
+@app.get("/")
+def read_root():
+ return {"Hello": "World"}
+
+@app.get("/sum1n/{item}")
+def sum_array(item:int):
+ sum=0
+ for i in range(item+1):
+ sum+=i
+ return {sum}
+
+@app.get("/fibo/{number}")
+def fibo(number:int):
+ fib1, fib2 = 0, 1
+ for i in range(number - 1):
+ fib1, fib2 = fib2, fib1 + fib2
+ return {fib2}
+
+@app.post("/reverse")
+def reverse_string(string:str=Header(...)):
+ rev_str=string[::-1]
+ return {rev_str}
+
+@app.put("/list")
+def add_element(item:Element_in):
+ elements.append(item.element)
+
+@app.get("/list")
+def get_element():
+ return {elements}
+
+@app.post("/calculator")
+def calculator(expression: Expression):
+ try:
+ num1, operator, num2 = expression.expr.split(',')
+ num1, num2 = float(num1), float(num2)
+
+ if operator == '+':
+ result = num1 + num2
+ elif operator == '-':
+ result = num1 - num2
+ elif operator == '*':
+ result = num1 * num2
+ elif operator == '/':
+ if num2 == 0:
+ raise HTTPException(status_code=403, detail="zerodiv")
+ result = num1 / num2
+ else:
+ raise HTTPException(status_code=400, detail="invalid")
+
+ return {"result": result}
+
+ except ValueError:
+ raise HTTPException(status_code=400, detail="invalid")
diff --git a/python/api/fastapi-final/api-project/requirements.txt b/python/api/fastapi-final/api-project/requirements.txt
new file mode 100644
index 00000000..782e7086
--- /dev/null
+++ b/python/api/fastapi-final/api-project/requirements.txt
@@ -0,0 +1,97 @@
+aiofiles==23.2.1
+anyio==4.2.0
+attrs==23.2.0
+Babel==2.10.3
+bcc==0.29.1
+bcrypt==3.2.2
+blinker==1.7.0
+Brlapi==0.8.5
+certifi==2023.11.17
+chardet==5.2.0
+click==8.1.6
+cloud-init==24.2
+colorama==0.4.6
+command-not-found==0.3
+configobj==5.0.8
+cryptography==41.0.7
+cupshelpers==1.0
+dbus-python==1.3.2
+defer==1.0.6
+distro==1.9.0
+distro-info==1.7+build1
+docker==5.0.3
+docker-compose==1.29.2
+dockerpty==0.4.1
+docopt==0.6.2
+duplicity==2.1.4
+fastapi==0.101.0
+fasteners==0.18
+h11==0.14.0
+httplib2==0.20.4
+idna==3.6
+itsdangerous==2.1.2
+Jinja2==3.1.2
+jsonpatch==1.32
+jsonpointer==2.0
+jsonschema==4.10.3
+language-selector==0.1
+launchpadlib==1.11.0
+lazr.restfulclient==0.14.6
+lazr.uri==1.0.6
+louis==3.29.0
+Mako==1.3.2.dev0
+markdown-it-py==3.0.0
+MarkupSafe==2.1.5
+mdurl==0.1.2
+monotonic==1.6
+netaddr==0.8.0
+netifaces==0.11.0
+oauthlib==3.2.2
+olefile==0.46
+packaging==24.0
+paramiko==2.12.0
+pexpect==4.9.0
+pillow==10.2.0
+ptyprocess==0.7.0
+pycairo==1.25.1
+pycups==2.0.1
+pydantic==1.10.14
+Pygments==2.17.2
+PyGObject==3.48.2
+PyJWT==2.7.0
+PyNaCl==1.5.0
+pyparsing==3.1.1
+pyrsistent==0.20.0
+pyserial==3.5
+python-apt==2.7.7+ubuntu3
+python-dateutil==2.8.2
+python-debian==0.1.49+ubuntu2
+python-dotenv==1.0.1
+python-multipart==0.0.9
+pytz==2024.1
+pyxdg==0.28
+PyYAML==6.0.1
+requests==2.31.0
+rich==13.7.1
+setuptools==68.1.2
+simplejson==3.19.2
+six==1.16.0
+sniffio==1.3.0
+starlette==0.31.1
+systemd-python==235
+texttable==1.6.7
+typing_extensions==4.10.0
+ubuntu-drivers-common==0.0.0
+ubuntu-pro-client==8001
+ufw==0.36.2
+unattended-upgrades==0.1
+urllib3==2.0.7
+usb-creator==0.3.16
+uvicorn==0.27.1
+uvloop==0.19.0
+wadllib==1.3.6
+websocket-client==1.7.0
+wheel==0.42.0
+wsproto==1.2.0
+xdg==5
+xkit==0.0.0
From 21be08f3689056926a1a27542c35de57f6763ac1 Mon Sep 17 00:00:00 2001
From: serikbeissov
Date: Sun, 3 Nov 2024 14:20:25 +0500
Subject: [PATCH 10/12] nginx complete
---
nginx/nginx-auth/README.md | 31 +++++++++++++++++
nginx/nginx-cert/README.md | 17 ++++++++++
nginx/nginx-install/README.md | 26 +++++++++++++++
nginx/nginx-ip/README.md | 37 +++++++++++++++++++++
nginx/nginx-locations/README.md | 59 +++++++++++++++++++++++++++++++++
nginx/nginx-proxy/README.md | 13 ++++++++
nginx/nginx-ufw/README.md | 20 +++++++++++
7 files changed, 203 insertions(+)
diff --git a/nginx/nginx-auth/README.md b/nginx/nginx-auth/README.md
index 6fd4b886..49bea19a 100644
--- a/nginx/nginx-auth/README.md
+++ b/nginx/nginx-auth/README.md
@@ -10,3 +10,34 @@
6. Учетка `design` не должна иметь доступ на другие пути, тоже самое касается других учеток.
---
+
+ GNU nano 7.2 hwnginx.conf
+server {
+ listen 8080;
+ server_name example.com;
+ location / {
+ auth_basic "private site";
+ auth_basic_user_file /etc/nginx/conf.d/passwd;
+ root /var/www/example.com;
+ index index.html;
+ }
+ location /images {
+ auth_basic "design site";
+ auth_basic_user_file /etc/nginx/conf.d/design_passwd;
+ root /var/www/example.com/cats/;
+ }
+ location /gifs {
+ auth_basic "marketing site";
+ auth_basic_user_file /etc/nginx/conf.d/marketing_passwd;
+ root /var/www/example.com/gifs/;
+ }
+ location /secret_word {
+ return 201 'jusan-nginx-locations';
+ }
+
+ location /api/ {
+ proxy_pass http://localhost:9090;
+ }
+}
+
+
diff --git a/nginx/nginx-cert/README.md b/nginx/nginx-cert/README.md
index 066febbe..99298aa3 100644
--- a/nginx/nginx-cert/README.md
+++ b/nginx/nginx-cert/README.md
@@ -41,3 +41,20 @@ curl -H "Host: jusan.kz" -k https://localhost/secret_word
Флаг `-k` нужен для того, чтобы `curl` не ругался на самоподписанный сертификат.
---
+
+server {
+ listen 443 ssl;
+ server_name jusan.kz;
+ ssl_certificate /etc/nginx/ssl/track-devops.crt;
+ ssl_certificate_key /etc/nginx/ssl/track-devops.key;
+ ssl_dhparam /etc/nginx/ssl/dhparam.pem;
+ ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
+ ssl_ciphers HIGH:!aNULL:!MD5;
+ ssl_prefer_server_ciphers on;
+ location /secret_word {
+ return 201 "jusan-nginx-cert";
+ }
+}
+
+curl -H "Host: jusan.kz" -k https://localhost/secret_word
+jusan-nginx-cert
diff --git a/nginx/nginx-install/README.md b/nginx/nginx-install/README.md
index 5b8285e0..35fc9708 100644
--- a/nginx/nginx-install/README.md
+++ b/nginx/nginx-install/README.md
@@ -114,3 +114,29 @@ curl http://127.0.0.1
---
### Ответ
+
+sbeissov@sbeissov-HP-EliteBook-850-G3:~$ curl http://127.0.0.1
+
+
+
+Welcome to nginx!
+
+
+
+Welcome to nginx!
+If you see this page, the nginx web server is successfully installed and
+working. Further configuration is required.
+
+For online documentation and support please refer to
+nginx.org.
+Commercial support is available at
+nginx.com.
+
+Thank you for using nginx.
+
+
+
diff --git a/nginx/nginx-ip/README.md b/nginx/nginx-ip/README.md
index cd550736..e0737537 100644
--- a/nginx/nginx-ip/README.md
+++ b/nginx/nginx-ip/README.md
@@ -22,3 +22,40 @@
---
### Ответ
+
+ GNU nano 7.2 hwnginx.conf *
+server {
+ listen 8080;
+ server_name example.com;
+ location / {
+ auth_basic "private site";
+ auth_basic_user_file /etc/nginx/conf.d/passwd;
+ root /var/www/example.com;
+ index index.html;
+ }
+ location /images {
+ auth_basic "design site";
+ auth_basic_user_file /etc/nginx/conf.d/design_passwd;
+ root /var/www/example.com/cats/;
+ }
+ location /gifs {
+ auth_basic "marketing site";
+ auth_basic_user_file /etc/nginx/conf.d/marketing_passwd;
+ root /var/www/example.com/gifs/;
+ }
+
+ location /secret_word {
+ allow 192.0.0.1/20;
+ deny 192.0.0.1;
+ deny all;
+ return 203 'jusan-nginx-ip';
+ }
+
+ location /api/ {
+ proxy_pass http://localhost:9090;
+ }
+}
+
+curl http://localhost:8080/secret_word
+jusan-nginx-ip
+
diff --git a/nginx/nginx-locations/README.md b/nginx/nginx-locations/README.md
index cb0dc0ae..138d16ea 100644
--- a/nginx/nginx-locations/README.md
+++ b/nginx/nginx-locations/README.md
@@ -25,3 +25,62 @@ curl -H "Host: example.com" http://localhost:8080/
---
### Ответ
+server {
+ listen 8080;
+ server_name example.com;
+ location / {
+ root /var/www/example.com;
+ index index.html;
+ }
+ location /images {
+ alias /var/www/example.com/cats/;
+ }
+ location /gifs {
+ alias /var/www/example.com/gifs/;
+ }
+ location /secret_word {
+ return 201 'jusan-nginx-locations';
+ }
+}
+
+
+curl -H "Host: example.com" http://localhost:8080/
+
+
+
+
+
+
+
+
+ Cats Page
+
+
+
+
+
Cat with Flower
+
+
+
+
+
Cat with Glasses
+
+
+
+
+
Gray Cat
+
+
+
+
+
Cats mafia
+
+
+
+
+
Sleepy Cat
+
+
+
+
+
diff --git a/nginx/nginx-proxy/README.md b/nginx/nginx-proxy/README.md
index 58a6d47e..3d89d9ff 100644
--- a/nginx/nginx-proxy/README.md
+++ b/nginx/nginx-proxy/README.md
@@ -35,3 +35,16 @@ web-server: 0
---
### Ответ
+
+server {
+ listen 8080;
+ server_name example.com;
+
+ location /api/ {
+ proxy_pass http://localhost:9090;
+ }
+}
+
+curl http://localhost:8080/api/
+404 page not found
+
diff --git a/nginx/nginx-ufw/README.md b/nginx/nginx-ufw/README.md
index 2c776dcd..2e439d3a 100644
--- a/nginx/nginx-ufw/README.md
+++ b/nginx/nginx-ufw/README.md
@@ -20,3 +20,23 @@
---
### Ответ
+sudo apt update
+sudo apt install ufw
+sudo ufw disable
+sudo ufw allow ssh
+sudo ufw allow 'Nginx Full'
+sudo ufw enable
+sudo ufw status verbose
+
+Status: active
+Logging: on (low)
+Default: deny (incoming), allow (outgoing), deny (routed)
+New profiles: skip
+
+To Action From
+-- ------ ----
+22/tcp ALLOW IN Anywhere
+80,443/tcp (Nginx Full) ALLOW IN Anywhere
+22/tcp (v6) ALLOW IN Anywhere (v6)
+80,443/tcp (Nginx Full (v6)) ALLOW IN Anywhere (v6)
+
From acce5e15540964f69f8ceb8ac4b3d8ad7aef4b57 Mon Sep 17 00:00:00 2001
From: serikbeissov
Date: Thu, 7 Nov 2024 18:50:20 +0500
Subject: [PATCH 11/12] add Docker complete
---
docker/docker-bind/README.md | 6 +
docker/docker-bind/solution.sh | 6 +
docker/docker-bind/tester-docker-bind.sh | 0
docker/docker-compose/docker-compose.yml | 8 +
docker/docker-exec/README.md | 26 +++
docker/docker-mount/README.md | 2 +
docker/docker-mount/jusan-docker-mount.conf | 8 +
docker/docker-mount/jusan-docker-mount.zip | Bin 0 -> 1557 bytes
.../__MACOSX/jusan-docker-mount/._.DS_Store | Bin 0 -> 120 bytes
.../jusan-docker-mount/.DS_Store | Bin 0 -> 6148 bytes
.../jusan-docker-mount/index.html | 1 +
.../jusan-docker-mount/test | 1 +
.../jusan-docker-mount/token | 1 +
docker/docker-run/README.md | 11 ++
docker/dockerfile/jusan-dockerfile.zip | Bin 0 -> 676 bytes
docker/dockerfile/jusan-dockerfile/dockerfile | 5 +
docker/dockerfile/jusan-dockerfile/index.html | 1 +
.../jusan-dockerfile/jusan-dockerfile.conf | 13 ++
docker/dockerize/api-project/.gitignore | 162 ++++++++++++++++++
docker/dockerize/api-project/Dockerfile | 6 +
docker/dockerize/api-project/main.py | 67 ++++++++
docker/dockerize/api-project/requirements.txt | 97 +++++++++++
22 files changed, 421 insertions(+)
create mode 100755 docker/docker-bind/solution.sh
mode change 100644 => 100755 docker/docker-bind/tester-docker-bind.sh
create mode 100644 docker/docker-compose/docker-compose.yml
create mode 100755 docker/docker-mount/jusan-docker-mount.conf
create mode 100644 docker/docker-mount/jusan-docker-mount.zip
create mode 100644 docker/docker-mount/jusan-docker-mount/__MACOSX/jusan-docker-mount/._.DS_Store
create mode 100644 docker/docker-mount/jusan-docker-mount/jusan-docker-mount/.DS_Store
create mode 100644 docker/docker-mount/jusan-docker-mount/jusan-docker-mount/index.html
create mode 100644 docker/docker-mount/jusan-docker-mount/jusan-docker-mount/test
create mode 100644 docker/docker-mount/jusan-docker-mount/jusan-docker-mount/token
create mode 100644 docker/dockerfile/jusan-dockerfile.zip
create mode 100644 docker/dockerfile/jusan-dockerfile/dockerfile
create mode 100644 docker/dockerfile/jusan-dockerfile/index.html
create mode 100644 docker/dockerfile/jusan-dockerfile/jusan-dockerfile.conf
create mode 100644 docker/dockerize/api-project/.gitignore
create mode 100644 docker/dockerize/api-project/Dockerfile
create mode 100644 docker/dockerize/api-project/main.py
create mode 100644 docker/dockerize/api-project/requirements.txt
diff --git a/docker/docker-bind/README.md b/docker/docker-bind/README.md
index 9fd7d532..5f3c4a01 100644
--- a/docker/docker-bind/README.md
+++ b/docker/docker-bind/README.md
@@ -42,3 +42,9 @@ bash ./tester.sh
---
### Ответ
+
+sudo docker run -d --name jusan-docker-bind -p 7777:80 -v /home/sbeissov/nginx.conf:/etc/nginx/nginx.conf nginx:mainline
+
+sudo docker ps
+
+sudo docker logs jusan-docker-bind
diff --git a/docker/docker-bind/solution.sh b/docker/docker-bind/solution.sh
new file mode 100755
index 00000000..3e23eba4
--- /dev/null
+++ b/docker/docker-bind/solution.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+sudo docker run -d --name jusan-docker-bind -p 7777:80 -v /home/sbeissov/nginx.conf:/etc/nginx/nginx.conf nginx:mainline
+
+sudo docker ps
+
+sudo docker logs jusan-docker-bind
diff --git a/docker/docker-bind/tester-docker-bind.sh b/docker/docker-bind/tester-docker-bind.sh
old mode 100644
new mode 100755
diff --git a/docker/docker-compose/docker-compose.yml b/docker/docker-compose/docker-compose.yml
new file mode 100644
index 00000000..ff7c73b8
--- /dev/null
+++ b/docker/docker-compose/docker-compose.yml
@@ -0,0 +1,8 @@
+services:
+ api:
+ image: jusan-dockerize:latest
+ build: ../dockerize
+ container_name: jusan-compose
+ ports:
+ - 8080:8080
+ restart: on-failure
\ No newline at end of file
diff --git a/docker/docker-exec/README.md b/docker/docker-exec/README.md
index 1cfe97f5..d34e752b 100644
--- a/docker/docker-exec/README.md
+++ b/docker/docker-exec/README.md
@@ -57,3 +57,29 @@ bash ./tester.sh
---
### Ответ
+
+ 1904 sudo docker run -d --name jusan-docker-exec -p 8181:80 nginx:mainline
+ 1905 sudo docker exec -it jusan-docker-exec bash
+ 1906 curl http://localhost:8181
+ 1907 curl http://localhost:8181/home
+ 1908 curl http://localhost:8181/about
+ 1909 sudo docker logs jusan-docker-exec
+
+ 1 cd /etc/nginx/conf.d/
+ 2 ls
+ 3 nano jusan-docker-exec.conf
+ 4 cat << EOF > /etc/nginx/conf.d/jusan-docker-exec.conf
+server {
+ listen 80;
+ server_name jusan.singularity;
+
+ location / {return 200 'Hello, from jusan-docker-exec';}
+ location /home {return 201 'This is my home!';}
+ location /about {return 202 'I am just an exercise!';}
+}
+EOF
+
+ 5 cat jusan-docker-exec.conf
+ 6 rm default.conf
+ 7 nginx -s reload
+
diff --git a/docker/docker-mount/README.md b/docker/docker-mount/README.md
index d7abe89d..262d6cb8 100644
--- a/docker/docker-mount/README.md
+++ b/docker/docker-mount/README.md
@@ -47,3 +47,5 @@ bash ./tester.sh
---
### Ответ
+
+sudo docker run -d --name jusan-docker-mount -p 9988:80 -v /home/sbeissov/github/TechOrda/docker/docker-mount/jusan-docker-mount.conf:/etc/nginx/conf.d/nginx.conf -v /home/sbeissov/github/TechOrda/docker/docker-mount/jusan-docker-mount:/usr/share/nginx/html nginx:mainline
diff --git a/docker/docker-mount/jusan-docker-mount.conf b/docker/docker-mount/jusan-docker-mount.conf
new file mode 100755
index 00000000..e51712dc
--- /dev/null
+++ b/docker/docker-mount/jusan-docker-mount.conf
@@ -0,0 +1,8 @@
+server {
+ listen 80;
+ server_name example.com;
+
+ location / {
+ root /var/www/example;
+ }
+}
diff --git a/docker/docker-mount/jusan-docker-mount.zip b/docker/docker-mount/jusan-docker-mount.zip
new file mode 100644
index 0000000000000000000000000000000000000000..121e844cea4b4057286353e8f9e222abd30c38dd
GIT binary patch
literal 1557
zcmWIWW@Zs#0D*wox)3k}N(eJ3Fl3b$C+6v<@sz)I6}Mg~~2T#XtOdTjAi`}x!yp+@my^NCF9I%b)K$|>NT#`UEnvI)J
z8f^LOarWfN>wzBHr_P6-0J-3@?@9l2e!7>=p4C6Az40Qu79-e6F2WmhG=P?ZEJip9
zIY3z?7#L)*J4w$aI6k-}zbKVZ$iAIn&3DK^z$Lwx+uKA>^KJn{UV`gM&K(S_;S0WB
zRJ@~KVbVICVo!L3X76GS@+T?X5cgm!l
zI%JLJ^S7=mDVCnkZdI0S6#K%D9I!A2
zx&`DOgiGHbB`j{Bj5zjKEJ-ac0Y_jiFe&8&F^EQU8TYv}-uh=fbx!H5WC7cl8mf`O
z3p5jCZh$u$Vqox1Ojhs@R)|o50+1L3ClDI}u^SMB_!U6R08`;00ODZ-jv*mIP;rnB
Iur73U08|YJ=l}o!
literal 0
HcmV?d00001
diff --git a/docker/docker-mount/jusan-docker-mount/jusan-docker-mount/.DS_Store b/docker/docker-mount/jusan-docker-mount/jusan-docker-mount/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6
GIT binary patch
literal 6148
zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3
zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ
zLs35+`xjp>T0Hello, from jusan-docker-mount
\ No newline at end of file
diff --git a/docker/docker-mount/jusan-docker-mount/jusan-docker-mount/test b/docker/docker-mount/jusan-docker-mount/jusan-docker-mount/test
new file mode 100644
index 00000000..e1453b44
--- /dev/null
+++ b/docker/docker-mount/jusan-docker-mount/jusan-docker-mount/test
@@ -0,0 +1 @@
+Singularity
\ No newline at end of file
diff --git a/docker/docker-mount/jusan-docker-mount/jusan-docker-mount/token b/docker/docker-mount/jusan-docker-mount/jusan-docker-mount/token
new file mode 100644
index 00000000..461e0831
--- /dev/null
+++ b/docker/docker-mount/jusan-docker-mount/jusan-docker-mount/token
@@ -0,0 +1 @@
+Jusan
\ No newline at end of file
diff --git a/docker/docker-run/README.md b/docker/docker-run/README.md
index 2e7f0b3b..a781b85c 100644
--- a/docker/docker-run/README.md
+++ b/docker/docker-run/README.md
@@ -54,4 +54,15 @@ bash ./tester.sh
---
### Ответ
+sudo docker run -d --name jsn-dkr-run -p 8887:80 nginx:mainline
+8e2cfdffa414de0acda7dc746ca3a0c1656c7d130269853e932a324f8a4348e9
+
+ sudo docker ps
+8e2cfdffa414 nginx:mainline "/docker-entrypoint.…" 6 minutes ago Up 6 minutes 0.0.0.0:8887->80/tcp, [::]:8887->80/tcp
+
+sudo docker stop jsn-dkr-run
+
+sudo docker ps -a
+
+
diff --git a/docker/dockerfile/jusan-dockerfile.zip b/docker/dockerfile/jusan-dockerfile.zip
new file mode 100644
index 0000000000000000000000000000000000000000..855333cf0a13715d9ee23bcf1eb8e143fd6c1c86
GIT binary patch
literal 676
zcmWIWW@Zs#0D)aCbs=B|ln`W4V8|*hPR!Fy$xqHsElSJGN!1Sx;bmZFG=}>-9|1+AR5i!
z%_j}EeD*kd^5peE5A9RuLr-Yw`klG#d(!`$pRU*GGoGPaF0!v;UJ6uS&zw1Z@{Bht*!C|s
zyWffe%?H^L;LXS+!i+n3fl9#Ots{scBd{UH!-5;xbRU~V#D{8tH!B;+)yzO>2uxG4K+M1Z0J!a+82|tP
literal 0
HcmV?d00001
diff --git a/docker/dockerfile/jusan-dockerfile/dockerfile b/docker/dockerfile/jusan-dockerfile/dockerfile
new file mode 100644
index 00000000..78c4ad13
--- /dev/null
+++ b/docker/dockerfile/jusan-dockerfile/dockerfile
@@ -0,0 +1,5 @@
+FROM nginx:mainline
+WORKDIR /var/www/jusan-dockerfile
+COPY index.html .
+COPY jusan-dockerfile.conf /etc/nginx/conf.d/default.conf
+
diff --git a/docker/dockerfile/jusan-dockerfile/index.html b/docker/dockerfile/jusan-dockerfile/index.html
new file mode 100644
index 00000000..624e4ccb
--- /dev/null
+++ b/docker/dockerfile/jusan-dockerfile/index.html
@@ -0,0 +1 @@
+Hello, from jusan-dockerfile!
\ No newline at end of file
diff --git a/docker/dockerfile/jusan-dockerfile/jusan-dockerfile.conf b/docker/dockerfile/jusan-dockerfile/jusan-dockerfile.conf
new file mode 100644
index 00000000..174ecf94
--- /dev/null
+++ b/docker/dockerfile/jusan-dockerfile/jusan-dockerfile.conf
@@ -0,0 +1,13 @@
+server {
+ listen 80;
+ server_name jusan.dockerfile;
+
+ location / {
+ root /var/www/jusan-dockerfile;
+ }
+
+ location /secret { return 201 'jusan-dockerfile';
+ }
+ location /jusan { return 201 'singularity' ;
+ }
+}
diff --git a/docker/dockerize/api-project/.gitignore b/docker/dockerize/api-project/.gitignore
new file mode 100644
index 00000000..efa407c3
--- /dev/null
+++ b/docker/dockerize/api-project/.gitignore
@@ -0,0 +1,162 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+share/python-wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.nox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+*.py,cover
+.hypothesis/
+.pytest_cache/
+cover/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+local_settings.py
+db.sqlite3
+db.sqlite3-journal
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+.pybuilder/
+target/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# IPython
+profile_default/
+ipython_config.py
+
+# pyenv
+# For a library or package, you might want to ignore these files since the code is
+# intended to run in multiple environments; otherwise, check them in:
+# .python-version
+
+# pipenv
+# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
+# However, in case of collaboration, if having platform-specific dependencies or dependencies
+# having no cross-platform support, pipenv may install dependencies that don't work, or not
+# install all needed dependencies.
+#Pipfile.lock
+
+# poetry
+# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
+# This is especially recommended for binary packages to ensure reproducibility, and is more
+# commonly ignored for libraries.
+# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
+#poetry.lock
+
+# pdm
+# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
+#pdm.lock
+# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
+# in version control.
+# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
+.pdm.toml
+.pdm-python
+.pdm-build/
+
+# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
+__pypackages__/
+
+# Celery stuff
+celerybeat-schedule
+celerybeat.pid
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.venv
+env/
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+.dmypy.json
+dmypy.json
+
+# Pyre type checker
+.pyre/
+
+# pytype static type analyzer
+.pytype/
+
+# Cython debug symbols
+cython_debug/
+
+# PyCharm
+# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
+# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
+# and can be added to the global gitignore or merged into this file. For a more nuclear
+# option (not recommended) you can uncomment the following to ignore the entire idea folder.
+#.idea/
\ No newline at end of file
diff --git a/docker/dockerize/api-project/Dockerfile b/docker/dockerize/api-project/Dockerfile
new file mode 100644
index 00000000..678d8ba9
--- /dev/null
+++ b/docker/dockerize/api-project/Dockerfile
@@ -0,0 +1,6 @@
+FROM python:3.8
+WORKDIR /app
+COPY main.py /app/
+RUN pip3 install fastapi uvicorn
+EXPOSE 8080
+CMD [ "uvicorn", "main:app", "--host", "0.0.0.0","--port", "8080" ]
diff --git a/docker/dockerize/api-project/main.py b/docker/dockerize/api-project/main.py
new file mode 100644
index 00000000..02e74cb9
--- /dev/null
+++ b/docker/dockerize/api-project/main.py
@@ -0,0 +1,67 @@
+from fastapi import FastAPI
+from fastapi import Header, HTTPException
+from pydantic import BaseModel
+app=FastAPI()
+
+elements = []
+
+class Element_in(BaseModel):
+ element:str
+
+class Expression(BaseModel):
+ expr: str
+
+@app.get("/")
+def read_root():
+ return {"Hello": "World"}
+
+@app.get("/sum1n/{item}")
+def sum_array(item:int):
+ sum=0
+ for i in range(item+1):
+ sum+=i
+ return {sum}
+
+@app.get("/fibo/{number}")
+def fibo(number:int):
+ fib1, fib2 = 0, 1
+ for i in range(number - 1):
+ fib1, fib2 = fib2, fib1 + fib2
+ return {fib2}
+
+@app.post("/reverse")
+def reverse_string(string:str=Header(...)):
+ rev_str=string[::-1]
+ return {rev_str}
+
+@app.put("/list")
+def add_element(item:Element_in):
+ elements.append(item.element)
+
+@app.get("/list")
+def get_element():
+ return {elements}
+
+@app.post("/calculator")
+def calculator(expression: Expression):
+ try:
+ num1, operator, num2 = expression.expr.split(',')
+ num1, num2 = float(num1), float(num2)
+
+ if operator == '+':
+ result = num1 + num2
+ elif operator == '-':
+ result = num1 - num2
+ elif operator == '*':
+ result = num1 * num2
+ elif operator == '/':
+ if num2 == 0:
+ raise HTTPException(status_code=403, detail="zerodiv")
+ result = num1 / num2
+ else:
+ raise HTTPException(status_code=400, detail="invalid")
+
+ return {"result": result}
+
+ except ValueError:
+ raise HTTPException(status_code=400, detail="invalid")
diff --git a/docker/dockerize/api-project/requirements.txt b/docker/dockerize/api-project/requirements.txt
new file mode 100644
index 00000000..782e7086
--- /dev/null
+++ b/docker/dockerize/api-project/requirements.txt
@@ -0,0 +1,97 @@
+aiofiles==23.2.1
+anyio==4.2.0
+attrs==23.2.0
+Babel==2.10.3
+bcc==0.29.1
+bcrypt==3.2.2
+blinker==1.7.0
+Brlapi==0.8.5
+certifi==2023.11.17
+chardet==5.2.0
+click==8.1.6
+cloud-init==24.2
+colorama==0.4.6
+command-not-found==0.3
+configobj==5.0.8
+cryptography==41.0.7
+cupshelpers==1.0
+dbus-python==1.3.2
+defer==1.0.6
+distro==1.9.0
+distro-info==1.7+build1
+docker==5.0.3
+docker-compose==1.29.2
+dockerpty==0.4.1
+docopt==0.6.2
+duplicity==2.1.4
+fastapi==0.101.0
+fasteners==0.18
+h11==0.14.0
+httplib2==0.20.4
+idna==3.6
+itsdangerous==2.1.2
+Jinja2==3.1.2
+jsonpatch==1.32
+jsonpointer==2.0
+jsonschema==4.10.3
+language-selector==0.1
+launchpadlib==1.11.0
+lazr.restfulclient==0.14.6
+lazr.uri==1.0.6
+louis==3.29.0
+Mako==1.3.2.dev0
+markdown-it-py==3.0.0
+MarkupSafe==2.1.5
+mdurl==0.1.2
+monotonic==1.6
+netaddr==0.8.0
+netifaces==0.11.0
+oauthlib==3.2.2
+olefile==0.46
+packaging==24.0
+paramiko==2.12.0
+pexpect==4.9.0
+pillow==10.2.0
+ptyprocess==0.7.0
+pycairo==1.25.1
+pycups==2.0.1
+pydantic==1.10.14
+Pygments==2.17.2
+PyGObject==3.48.2
+PyJWT==2.7.0
+PyNaCl==1.5.0
+pyparsing==3.1.1
+pyrsistent==0.20.0
+pyserial==3.5
+python-apt==2.7.7+ubuntu3
+python-dateutil==2.8.2
+python-debian==0.1.49+ubuntu2
+python-dotenv==1.0.1
+python-multipart==0.0.9
+pytz==2024.1
+pyxdg==0.28
+PyYAML==6.0.1
+requests==2.31.0
+rich==13.7.1
+setuptools==68.1.2
+simplejson==3.19.2
+six==1.16.0
+sniffio==1.3.0
+starlette==0.31.1
+systemd-python==235
+texttable==1.6.7
+typing_extensions==4.10.0
+ubuntu-drivers-common==0.0.0
+ubuntu-pro-client==8001
+ufw==0.36.2
+unattended-upgrades==0.1
+urllib3==2.0.7
+usb-creator==0.3.16
+uvicorn==0.27.1
+uvloop==0.19.0
+wadllib==1.3.6
+websocket-client==1.7.0
+wheel==0.42.0
+wsproto==1.2.0
+xdg==5
+xkit==0.0.0
From 12883eb837be9fe40eb1ced6304b3b2b7889f86a Mon Sep 17 00:00:00 2001
From: serikbeissov
Date: Mon, 18 Nov 2024 21:29:21 +0500
Subject: [PATCH 12/12] add Docker solution.sh scripts
---
docker/docker-exec/solution.sh | 24 ++++++++++++++++++
docker/docker-mount/solution.sh | 2 ++
docker/docker-run/solution.sh | 6 +++++
.../{jusan-dockerfile => }/dockerfile | 0
docker/dockerfile/jusan-dockerfile.zip | Bin 676 -> 0 bytes
docker/dockerfile/solution.sh | 6 +++++
docker/dockerize/{api-project => }/.gitignore | 0
docker/dockerize/{api-project => }/Dockerfile | 0
docker/dockerize/{api-project => }/main.py | 0
.../{api-project => }/requirements.txt | 0
docker/dockerize/solution.sh | 4 +++
11 files changed, 42 insertions(+)
create mode 100644 docker/docker-exec/solution.sh
create mode 100644 docker/docker-mount/solution.sh
create mode 100644 docker/docker-run/solution.sh
rename docker/dockerfile/{jusan-dockerfile => }/dockerfile (100%)
delete mode 100644 docker/dockerfile/jusan-dockerfile.zip
create mode 100644 docker/dockerfile/solution.sh
rename docker/dockerize/{api-project => }/.gitignore (100%)
rename docker/dockerize/{api-project => }/Dockerfile (100%)
rename docker/dockerize/{api-project => }/main.py (100%)
rename docker/dockerize/{api-project => }/requirements.txt (100%)
create mode 100644 docker/dockerize/solution.sh
diff --git a/docker/docker-exec/solution.sh b/docker/docker-exec/solution.sh
new file mode 100644
index 00000000..8cf2c35d
--- /dev/null
+++ b/docker/docker-exec/solution.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+sudo docker run -d --name jusan-docker-exec -p 8181:80 nginx:mainline
+sudo docker exec -it jusan-docker-exec bash
+curl http://localhost:8181
+curl http://localhost:8181/home
+curl http://localhost:8181/about
+sudo docker logs jusan-docker-exec
+
+cd /etc/nginx/conf.d/
+nano jusan-docker-exec.conf
+cat << EOF > /etc/nginx/conf.d/jusan-docker-exec.conf
+server {
+ listen 80;
+ server_name jusan.singularity;
+
+ location / {return 200 'Hello, from jusan-docker-exec';}
+ location /home {return 201 'This is my home!';}
+ location /about {return 202 'I am just an exercise!';}
+}
+EOF
+
+cat jusan-docker-exec.conf
+rm default.conf
+nginx -s reload
diff --git a/docker/docker-mount/solution.sh b/docker/docker-mount/solution.sh
new file mode 100644
index 00000000..085ff1e6
--- /dev/null
+++ b/docker/docker-mount/solution.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+sudo docker run -d --name jusan-docker-mount -p 9988:80 -v /home/sbeissov/github/TechOrda/docker/docker-mount/jusan-docker-mount.conf:/etc/nginx/conf.d/nginx.conf -v /home/sbeissov/github/TechOrda/docker/docker-mount/jusan-docker-mount:/usr/share/nginx/html nginx:mainline
diff --git a/docker/docker-run/solution.sh b/docker/docker-run/solution.sh
new file mode 100644
index 00000000..c6cf6451
--- /dev/null
+++ b/docker/docker-run/solution.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+sudo docker run -d --name jsn-dkr-run -p 8888:80 nginx:mainline
+sudo docker ps
+docker stop jsn-dkr-run
+sudo docker ps
+sudo docker ps -a
\ No newline at end of file
diff --git a/docker/dockerfile/jusan-dockerfile/dockerfile b/docker/dockerfile/dockerfile
similarity index 100%
rename from docker/dockerfile/jusan-dockerfile/dockerfile
rename to docker/dockerfile/dockerfile
diff --git a/docker/dockerfile/jusan-dockerfile.zip b/docker/dockerfile/jusan-dockerfile.zip
deleted file mode 100644
index 855333cf0a13715d9ee23bcf1eb8e143fd6c1c86..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 676
zcmWIWW@Zs#0D)aCbs=B|ln`W4V8|*hPR!Fy$xqHsElSJGN!1Sx;bmZFG=}>-9|1+AR5i!
z%_j}EeD*kd^5peE5A9RuLr-Yw`klG#d(!`$pRU*GGoGPaF0!v;UJ6uS&zw1Z@{Bht*!C|s
zyWffe%?H^L;LXS+!i+n3fl9#Ots{scBd{UH!-5;xbRU~V#D{8tH!B;+)yzO>2uxG4K+M1Z0J!a+82|tP
diff --git a/docker/dockerfile/solution.sh b/docker/dockerfile/solution.sh
new file mode 100644
index 00000000..ef9841fd
--- /dev/null
+++ b/docker/dockerfile/solution.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+curl -O https://stepik.org/media/attachments/lesson/686238/jusan-dockerfile.conf
+curl -O https://stepik.org/media/attachments/lesson/686238/jusan-dockerfile.zip
+unzip jusan-dockerfile.zip
+sudo docker build -t nginx:jusan-dockerfile .
+sudo docker run -d -p 6060:80 --name jusan-dockerfile nginx:jusan-dockerfile
\ No newline at end of file
diff --git a/docker/dockerize/api-project/.gitignore b/docker/dockerize/.gitignore
similarity index 100%
rename from docker/dockerize/api-project/.gitignore
rename to docker/dockerize/.gitignore
diff --git a/docker/dockerize/api-project/Dockerfile b/docker/dockerize/Dockerfile
similarity index 100%
rename from docker/dockerize/api-project/Dockerfile
rename to docker/dockerize/Dockerfile
diff --git a/docker/dockerize/api-project/main.py b/docker/dockerize/main.py
similarity index 100%
rename from docker/dockerize/api-project/main.py
rename to docker/dockerize/main.py
diff --git a/docker/dockerize/api-project/requirements.txt b/docker/dockerize/requirements.txt
similarity index 100%
rename from docker/dockerize/api-project/requirements.txt
rename to docker/dockerize/requirements.txt
diff --git a/docker/dockerize/solution.sh b/docker/dockerize/solution.sh
new file mode 100644
index 00000000..3cd0b866
--- /dev/null
+++ b/docker/dockerize/solution.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+sudo docker build -t jusan-fastapi-final:dockerized .
+
+sudo docker run -d -p 8080:8080 --name jusan-dockerize jusan-fastapi-final:dockerized
\ No newline at end of file