Skip to content

Commit

Permalink
rewrite description. add missing sections. extend capstone project
Browse files Browse the repository at this point in the history
  • Loading branch information
Wandalen committed Jun 25, 2023
1 parent 8fcdb83 commit c2072c7
Show file tree
Hide file tree
Showing 3 changed files with 118 additions and 0 deletions.
22 changes: 22 additions & 0 deletions backend_book.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Back-End Book: From Ground to Production

Wonderful book if you want to develop the back-end in Rust.

I encourage you to [buy it](https://www.zero2prod.com/index.html). But if you can't afford it, you can read articles by the author on which the book is based:

- [Setup - Toolchain, IDEs, CI](https://www.lpalmieri.com/posts/2020-06-06-zero-to-production-1-setup-toolchain-ides-ci/)
- [Learn By Building An Email Newsletter](https://www.lpalmieri.com/posts/2020-06-21-zero-to-production-2-learn-by-building-an-email-newsletter/)
- [How To Bootstrap A Rust Web API From Scratch](https://www.lpalmieri.com/posts/2020-08-09-zero-to-production-3-how-to-bootstrap-a-new-rust-web-api-from-scratch/)
- [HTML forms, Databases, Integration tests](https://www.lpalmieri.com/posts/2020-08-31-zero-to-production-3-5-html-forms-databases-integration-tests/)
- [Are we observable yet? An introduction to Rust telemetry](https://www.lpalmieri.com/posts/2020-09-27-zero-to-production-4-are-we-observable-yet/)
- [Continuous Deployment For Rust Applications](https://www.lpalmieri.com/posts/2020-11-01-zero-to-production-5-how-to-deploy-a-rust-application/)
- [Using Types To Guarantee Domain Invariants](https://www.lpalmieri.com/posts/2020-12-11-zero-to-production-6-domain-modelling/)
- [An Introduction To Property-Based Testing In Rust](https://www.lpalmieri.com/posts/an-introduction-to-property-based-testing-in-rust/)
- [How To Write A REST Client In Rust](https://www.lpalmieri.com/posts/how-to-write-a-rest-client-in-rust-with-reqwest-and-wiremock/)
- [Skeleton And Principles For A Maintainable Test Suite](https://www.lpalmieri.com/posts/skeleton-and-principles-for-a-maintainable-test-suite/)
- [Zero Downtime Deployments](https://www.lpalmieri.com/posts/zero-downtime-deployments/)
- [Error Handling In Rust - A Deep Dive](https://www.lpalmieri.com/posts/error-handling-rust/)
- [Naive Newsletter Delivery](https://www.lpalmieri.com/posts/naive-newsletter-delivery/)
- [Password auth in Rust, from scratch - Attacks and best practices](https://www.lpalmieri.com/posts/password-authentication-in-rust/)
- [An Introduction To Session-based Authentication In Rust](https://www.lpalmieri.com/posts/session-based-authentication-in-rust/)
- [An In-Depth Introduction To Idempotency](https://www.lpalmieri.com/posts/idempotency/)
59 changes: 59 additions & 0 deletions faq.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
## FAQ

> PR - Pull Request
#### - Коли відбуваються зустрічі?

4 рази на тиждень у будні дні за графіком вашої групи.

#### - Як розпочати виконання завдань?

Для початку вам потрібно зробити приватний форк головного [репозиторію](https://github.com/rust-lang-ua/rust_incubator) Rust Incubator. Як це зробити - читайте детальніше в [інструкції](https://github.com/rust-lang-ua/rust_incubator#before-you-start).

#### - Як і куди надсилати Pull Requests виконаних завдань?

У вашому приватному форку ви створюєте для кожного підрозділу(завдання) окрему гілку (branch). У відповідній гілці виконуєте завдання та створюєте PR у __свою ж__ головну гілку master. У PR тегаєте рев'ювера.

<!-- #### - Що за табличка прогресу та як нею користуватись?
Усім учасникам на електронну адресу прийшло посилання на гугл-табличку. У ній є головна сторінка "Main Page", там відповідно до групи знаходите себе, а також номер, під яким ви записані. Тепер внизу шукаєте аркуш, який є під вашим номером. Це ваша сторінка, яку ви можете редагувати. Додаєте сюди фото. Навпроти кожного підрозділу стоять чекбокси, які вам потрібно відмічати при виконанні завдань. Також у відповідній колонці залишати посилання на виконане завдання. На особистій сторінці можете відслідковувати власний прогрес по розділах, а у 'Main Page' загальний ваш та колег. -->
#### - Коли задача вважається виконаною?
Коли ви зробили Pull Request, і його апрувнув та змерджив один з рев'юверів.
#### - Що робити якщо задача недороблена? Чи відкривати PR?
Так, відкриваєте PR якнайшвидше, а у назві вказуєте "Not Ready".
#### - Чи можу я робити завдання курсу тільки на вихідних?
Ви маєте приділяти навчанню більше 20 год на тиждень щоб досягти якісних результатів. За 3 місяці інтенсиву ви маєте змогу вирости, як за два роки самостійної практики. Якщо залишати задачу лише на вихідні, то щодня ви навчатиметеся по 10 год. Краще раціонально розподіляти навчальний час протягом тижня.
#### - Де відповідати на запитання першого розділу?
Залишаєте відповіді під самим питанням, редагуючи власний md-файл
#### - Куди звертатись за допомогою?
Ви можете запитувати ставити питання у Телеграм-чаті, зокрема іншим учасникам навчального табору. Але ваше рішення має бути оригінальним. За копіювання рішення виключаються обидва: той хто дав списати та той хто списав.
<!-- xxx : extend, tell about forum and chat of community -->

#### - Як правильно ставити питання?

<!-- xxx : write please, add screenshot -->

#### - Як забрати зміни з основного репозиторію?

Додайте основний репозиторій як remote.

```bash
# додайте remote
git remote add template [email protected]:rust-lang-ua/rust_incubator.git
# Заберіть зміни з репозиторію
git fetch --all
# Змерджіть зміни
git merge template/master
```

*Якщо у вас виходить помилка `fatal: refusing to merge unrelated histories` додайте `--allow-unrelated-histories` флаг до останньої команди.*
37 changes: 37 additions & 0 deletions how_to_start.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
## How to do exersices

First of all, you need to fork the [Rust Incubator](https://github.com/rust-lang-ua/rust_incubator) into a **private** repo. For each exercise, you'll need to create separate pull requests. Then, when the reviewer checks and approves your pull request, you can merge it into the master/main branch. After that, the exercise will be considered done.

1. [Create](https://github.com/rust-lang-ua/rust_incubator/generate) a new [GitHub repository](https://help.github.com/articles/github-glossary/#repository) for yourself using this one [ ❗ as template ❗ ](https://help.github.com/en/articles/creating-a-repository-from-a-template). Don't forget to make it private.

- Go to the [Rust Incubator](https://github.com/rust-lang-ua/rust_incubator)
- Find the button **"Use as template"** click and choose **"create a new repository"**.
<p align="center">
<img src="/asset/img/learning_group_2022_12_curriculum_instr/1.png" width="600" align="center" />
</p>

- Now in the creation page name your repository. Choose the **Private** type of visibility. Press the checkbox **"include all branches"**. Click the button **"Create repository from template"**
<p align="center">
<img src="/asset/img/learning_group_2022_12_curriculum_instr/2.png" width="600" align="center" />
</p>

- Here we are. The private fork is ready. Look for it in the list of your repositories.

2. [Invite as a collaborator](https://help.github.com/en/articles/inviting-collaborators-to-a-personal-repository) of your repository our reviewers.
- In the main page of your repository go to the "Settings" section.
<p align="center">
<img src="/asset/img/learning_group_2022_12_curriculum_instr/3.png" width="600" align="center" />
</p>

- In the left corner find the section **"Collaborators"** and click to it.
- Go to the section **"Manage access"** and click to the **"Add people"**
<p align="center">
<img src="/asset/img/learning_group_2022_12_curriculum_instr/4.png" width="600" align="center" />
</p>

- Add [our bot](https://github.com/1tbot) as an collaborator.
<p align="center">
<img src="/asset/img/learning_group_2022_12_curriculum_instr/5.png" width="600" align="center" />
</p>

- Now wait for the approval from a collaborator(s).

0 comments on commit c2072c7

Please sign in to comment.