An open API service indexing awesome lists of open source software.

https://github.com/vitaminvp/kottans-backend

Backend Course. The course contains basics of backend development: fundamentals of NodeJS or Golang and backend frameworks as well as necessary computer science basics, network and protocols, database fundamentals etc.
https://github.com/vitaminvp/kottans-backend

backend kottans kottans-backend nodejs patterns sql ssh

Last synced: about 1 month ago
JSON representation

Backend Course. The course contains basics of backend development: fundamentals of NodeJS or Golang and backend frameworks as well as necessary computer science basics, network and protocols, database fundamentals etc.

Awesome Lists containing this project

README

          

# Kottans-backend 😺
Backend Course. The course contains basics of backend development: fundamentals of NodeJS or Golang and backend frameworks as well as necessary computer science basics, network and protocols, database fundamentals etc.

___

## πŸ’» Unix Shell ⬛

#### Linux Survival

| [module #1](task_unix_shell/module1.png) | [module #2](task_unix_shell/module2.png) | [module #3](task_unix_shell/module3.png) | [module #4](task_unix_shell/module4.png) |

## 🚦 NodeJS Basics 1

| [learnyounode](node_basic_1/learnyounode/learnyounode.png) | [functional-javascript-workshop](node_basic_1/functional-javascript-workshop/functional-javascript-workshop.png) | [stream adventure](node_basic_1/stream-adventure/stream-adventure.png) |

**Reflections**
- **It wasn\'t as easy πŸŽ‰ as I thought 😐**
- **Maybe need to read some docs at first**

## πŸ“ Memory Management πŸ”΄

**Questions ❓**
- **What's going to happen if program reaches maximum limit of stack ?**
- *If the maximum stack size has been reached, we have a stack overflow and the program receives a Segmentation Fault. While the mapped stack area expands to meet demand, it does not shrink back when the stack gets smaller. Like the federal budget, it only expands.*
- **What's going to happen if program requests a big (more then 128KB) memory allocation on heap ?**
- *If you request a large block of memory via malloc(), the C library will create such an anonymous mapping instead of using heap memory.*
- **What's the difference between Text and Data memory segments ?**
- *The **Data segment**, on the other hand, holds the contents for static variables initialized in source code. This memory area is not anonymous. It maps the part of the program's binary image that contains the initial static values given in source code.
Even though the data segment maps a file, it is a private memory mapping, which means that updates to memory are not reflected in the underlying file.*
- *The string lives in the **Text segment**, which is read-only and stores all of your code in addition to tidbits like string literals. The text segment also maps your binary file in memory, but writes to this area earn your program a Segmentation Fault. This helps prevent pointer bugs, though not as effectively as avoiding C in the first place.*
- *A **Text segment** contains read-only code and data. A **Data segment** contains data that may be both readable and writable.*
```
5603bacc2000-5603bacd7000 r-xp 00000000 08:06 133600 /usr/lib/gnome-settings-daemon/gsd-power
5603baed7000-5603baed8000 r--p 00015000 08:06 133600 /usr/lib/gnome-settings-daemon/gsd-power
5603baed8000-5603baed9000 rw-p 00016000 08:06 133600 /usr/lib/gnome-settings-daemon/gsd-power
5603bbeae000-5603bc1e2000 rw-p 00000000 00:00 0 [heap]
7f61d0000000-7f61d0021000 rw-p 00000000 00:00 0
7f61d0021000-7f61d4000000 ---p 00000000 00:00 0
7f61d6db6000-7f61d6dc1000 r-xp 00000000 08:06 399238 /lib/x86_64-linux-gnu/libnss_files-2.27.so
7f61d6dc1000-7f61d6fc0000 ---p 0000b000 08:06 399238 /lib/x86_64-linux-gnu/libnss_files-2.27.so
7f61d6fc0000-7f61d6fc1000 r--p 0000a000 08:06 399238 /lib/x86_64-linux-gnu/libnss_files-2.27.so
...
7ffcf0e6a000-7ffcf0e8b000 rw-p 00000000 00:00 0 [stack]
7ffcf0fe5000-7ffcf0fe8000 r--p 00000000 00:00 0 [vvar]
7ffcf0fe8000-7ffcf0fe9000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
```
Heap - `5603bbeae000-5603bc1e2000`,
stack - `7ffcf0e6a000-7ffcf0e8b000`,
MMS - `7f61d6db6000-7f61d6dc1000`.

## πŸ•Έ TCP. UDP. Network πŸ•·

| [Internet 101](task_networks/how_the_internet_works.png) | [Networking for Web Developers](task_networks/networking_for_web_developers.png) |

**Subtask**

| [Code base](https://github.com/Vitaminvp/kottans-backend/tree/master/task_networks/sniffer) |

**`Reviewed and approved by` [@ByMyself](https://github.com/Vitaminvp)**

**Reflections**
- **Almost πŸ§›β€β™‚οΈπŸ§›β€β™€οΈ Halloween πŸ§Ÿβ€β™‚οΈ πŸ§Ÿβ€β™€οΈ**

## πŸ“¬ Http & Https πŸ•Š

**Practice**

***Exploring GitHub API.***

- `curl https://api.github.com/users/vitaminvp`
- `curl -i https://api.github.com/users/vitaminvp`
- `curl https://api.github.com/gists/starred`
- `curl --user "vitaminvp:BLABLABLA" https://api.github.com/gists/starred`
- `curl --user "vitaminvp:*****" https://api.github.com/gists/starred`
- `curl --user "vitaminvp" https://api.github.com/gists/starred`
- `curl -i https://api.github.com/orgs/kottans/repos`
- `curl -H 'Authorization: token *****' https://api.github.com/repos/vitaminvp/kottans-backend/issues -d '{"title": "Test issue", "body": "test issue body"}'`

**Questions ❓**
1. Name at least three possible negative consequences of not using https.
- **Integrity** - *Man In The Middle Attackers* could read or modify any requests
- **Privacy** - eavesdropping passwords and private information
- **Identification** - changing your destination server to phishing
- **Trustability** - site could be not recommended to visit by browser
1. Explain the main idea behind public key cryptography in few sentences.
- If anyone, even you, encrypts data with your *public-key*, only you can decrypt it with your *private key*.
If you encrypt data with your *private key*, anyone can decrypt it, but this serves as a proof that you encrypted it: it’s β€œdigitally signed” by you.
1. You are creating an application for pet clinic. You need to implement the following functionality:
- add new pet (including name, age, breed, owner's name, medical history)
- request `POST` `/pets` `{name,age,breed,owner,medicalHistory}` β€Έ
- response `status 201` `{id}`
- search pet by name
- request `GET` `/pets?name=` β€Έ
- response `status 200` `{petId,name,age,breed,owner,medicalHistory}`
- change name of an existing pet
- request `PUT/PATCH` `/pets/` `{name: newName}` β€Έ
- response `status 200` `{petId,newName,age,breed,owner,medicalHistory}`
- add new info about pet's health
- request `PUT/PATCH` `/pets/` `{medicalHistory: newMedicalHistory}` β€Έ
- response `status 200` `{petId,newName,age,breed,owner,newMedicalHistory}`
- assign a pet to a particular doctor in the clinic
- request `PUT/PATCH` `/pets/` `{doctorId}` β€Έ
- response `status 200` `{id,newName,age,breed,owner,newMedicalHistory,doctorId}`
- register an appointment for a pet. This request should include info about pet, doctor and appointment date and time.
- request `POST` `/visit` `{petId,doctorId,dateTime}` β€Έ
- response `status 201` `{visitId,petId,doctorId,dateTime}`

## 🏞 Patterns πŸ‘·

| [Software Architecture & Design](patterns/software_architecture_design.png) |

**Reflections**
- **I thought I would die ☠, ⬆ so boring πŸ›Œ video️**

## πŸ— Data Structures 🚧

## πŸ—ƒ File System πŸ“

**Practical Task**
- `mkdir file_system` `touch secret.txt` `echo "secret" > secret.txt` `printf " text" >> secret.txt`
- `chmod u+x,o+r secret.txt`

| [secret.txt](file_system/secret.txt) | [file_system_task.js](file_system/file_system_task.js) |

## πŸƒ Runtime and Ecosystem πŸ•°

## πŸ¦‘ Databases πŸ‘¨β€πŸ’»

| [Intro to Relational Databases](sql_basics/Intro_to_Relational_Databases.png) | [CodeCademy Learn SQL](sql_basics/learn_SQL.png) | [Intro to SQL: Querying and managing data](sql_basics/Intro_to_SQL.png) |

**Practical Task**

| first_name | last_name | total_orders | total_items_bought | total_money_spent |
| ---------- | --------- | ------------ | ------------------ | ----------------- |
| Ann | Peterson | 1 | 5 | 24.74 |
| Josh | Harris | 1 | 2 | 692.79 |
| Sarah | Connor | 0 | null | null |
| James | Ball | 2 | 13 | 177.81 |

| [select.sql](sql_basics/select.sql) |

**Reflections**
- **πŸ‚οΈ**

## Language-specific Topics: Part II β˜”

### 🌀 Weather APP β›ˆ