From def316d0f3a3d61a313682dc68b2a3538027d134 Mon Sep 17 00:00:00 2001 From: xpetit <32063953+xpetit@users.noreply.github.com> Date: Tue, 27 Apr 2021 21:04:54 +0200 Subject: [PATCH] Reformat markdown (with prettier) --- docs/audits-at-home/README_ru.md | 10 +- docs/metrics.md | 86 ++-- docs/piscine-rust-curriculum.md | 14 - docs/server-requirements.md | 3 +- subjects/abs/README.md | 2 - subjects/action-reaction/README.md | 1 + subjects/all/README.md | 2 - subjects/armyofone/README.md | 80 ++-- subjects/armyofone/audit/README.md | 66 ++-- subjects/ascii-art-web/README.md | 4 +- subjects/atm-management-system/README.md | 4 +- .../atm-management-system/audit/README.md | 2 +- subjects/biggie-smalls/README.md | 2 +- subjects/block-chain/README.md | 7 +- subjects/blood_types_s/README.md | 2 +- subjects/bloody-sunday/README.md | 2 +- subjects/borrow/README.md | 1 + subjects/borrow_me_the_reference/README.md | 18 +- subjects/bring-it-to-life/README.md | 1 + subjects/carbon-copy/audit/README.md | 54 +-- subjects/change/README.md | 3 +- subjects/changes/README.md | 2 +- subjects/chunky/README.md | 2 +- subjects/circular/README.md | 1 - subjects/class-that/README.md | 1 + subjects/clonernews/README.md | 1 - subjects/collections/README.md | 4 +- subjects/concat-str/README.md | 1 - subjects/copy/README.md | 14 +- subjects/count-leap-years/README.md | 2 +- subjects/currify/README.md | 5 +- subjects/cut-corners/README.md | 4 +- subjects/day-of-the-year/README.md | 2 +- subjects/declarations/README.md | 2 +- subjects/dr-strange/README.md | 1 - subjects/elementary/README.md | 1 + subjects/ephemeris/README.md | 28 +- subjects/fibonacci2/README.md | 2 +- subjects/filter/README.md | 8 +- subjects/find-expression/README.md | 8 +- subjects/firingrange/audit/README.md | 50 +-- subjects/first-words/README.md | 1 + subjects/flagger/README.md | 8 +- subjects/flat/README.md | 2 - subjects/flow/README.md | 8 +- subjects/for-each/README.md | 2 - subjects/forum/audit/README.md | 374 +++++++++--------- subjects/forum/moderation/audit.md | 102 ++--- subjects/fusion/README.md | 6 +- subjects/get-json/README.md | 5 +- subjects/get/README.md | 7 +- subjects/good-practices/README.md | 4 +- subjects/gougle-search/README.md | 10 +- subjects/greedy-url/README.md | 1 - subjects/group-price/README.md | 6 +- subjects/groupie-tracker/audit/README.md | 206 +++++----- subjects/has-city/README.md | 2 +- subjects/hello_rust/README.md | 7 +- subjects/index-of/README.md | 5 +- subjects/ion-out/README.md | 1 - subjects/is-winner/README.md | 5 +- subjects/is/README.md | 3 +- subjects/its-a-match/README.md | 1 - subjects/keep-cut/README.md | 1 - subjects/keep-trying-or-giveup/README.md | 12 +- subjects/last-first-kiss/README.md | 1 - subjects/letter-space-number/README.md | 1 - subjects/long-words/README.md | 6 +- .../make-your-game/different-maps/README.md | 6 +- subjects/manipulate-entries/README.md | 2 - subjects/manipulate-keys/README.md | 3 +- subjects/manipulate-values/README.md | 2 +- subjects/mapper/README.md | 4 +- subjects/match-cron/README.md | 1 - subjects/matrix_transposition/README.md | 2 +- subjects/min-max/README.md | 2 - subjects/more-or-less/README.md | 2 +- subjects/mousevr/README.md | 110 +++--- subjects/mousevr/audit/README.md | 62 +-- subjects/multiplayer_fps/README.md | 3 +- subjects/mutability/README.md | 2 - subjects/nasa/README.md | 4 +- subjects/nascaronlinealpha/README.md | 138 +++---- subjects/neuron/README.md | 2 +- subjects/ownership/README.md | 2 +- subjects/primitives/README.md | 2 +- subjects/pronoun/README.md | 6 +- subjects/pyramid/README.md | 1 + subjects/quad/README.md | 8 +- subjects/quantifiers/README.md | 8 +- subjects/race/README.md | 3 +- subjects/rebecca-black/README.md | 2 +- subjects/reduce/README.md | 23 +- subjects/repeat/README.md | 2 - subjects/returns/README.md | 1 - subjects/reverser/README.md | 2 - subjects/road_intersection/README.md | 7 +- subjects/same-amount/README.md | 3 +- subjects/scalar/README.md | 11 +- subjects/select-and-style/README.md | 1 + subjects/series/README.md | 1 - subjects/shop/audit/README.md | 1 + subjects/sign/README.md | 2 - subjects/simple_hash/README.md | 1 + subjects/skeleton/README.md | 1 + subjects/slicer/README.md | 2 - subjects/sortable/README.md | 14 +- subjects/system-monitor/README.md | 10 +- subjects/talking/README.md | 2 +- subjects/tell-it-cypher/README.md | 1 + subjects/temperature_conv/README.md | 1 - subjects/tetris-optimizer/audit/README.md | 166 ++++---- .../tetris-optimizer/badexample00/README.md | 22 +- .../tetris-optimizer/badexample01/README.md | 22 +- .../tetris-optimizer/badexample02/README.md | 22 +- .../tetris-optimizer/badexample03/README.md | 22 +- .../tetris-optimizer/badexample04/README.md | 22 +- .../tetris-optimizer/goodexample00/README.md | 22 +- .../tetris-optimizer/goodexample01/README.md | 52 +-- .../tetris-optimizer/goodexample02/README.md | 92 ++--- .../tetris-optimizer/goodexample03/README.md | 122 +++--- subjects/the-pages/README.md | 7 +- subjects/throttle/README.md | 2 +- subjects/triangle/README.md | 1 + subjects/tron/README.md | 160 ++++---- subjects/tron/audit/README.md | 90 ++--- subjects/unbreakable/README.md | 3 +- .../unicode-technical-report-35/README.md | 2 +- subjects/using-filter/README.md | 16 +- subjects/using-map/README.md | 23 +- subjects/using-reduce/README.md | 5 +- subjects/valid-ip/README.md | 1 - subjects/vehiclephysics/README.md | 102 ++--- subjects/vehiclephysics/audit/README.md | 86 ++-- subjects/vowel-dots/README.md | 1 - subjects/widgetfactory/README.md | 134 +++---- subjects/widgetfactory/audit/README.md | 78 ++-- subjects/zombieai/README.md | 158 ++++---- subjects/zombieai/audit/README.md | 82 ++-- subjects/何/README.md | 1 - 140 files changed, 1613 insertions(+), 1656 deletions(-) diff --git a/docs/audits-at-home/README_ru.md b/docs/audits-at-home/README_ru.md index 5dcc9661..a304771f 100644 --- a/docs/audits-at-home/README_ru.md +++ b/docs/audits-at-home/README_ru.md @@ -26,7 +26,7 @@ Также, можете прочесть: -### Необходимые вещи для коммуникации аудитора и капитана команды +### Необходимые вещи для коммуникации аудитора и капитана команды - Программы для коммуникации и стрима (Discord подойдет) - teamViewer или что-то похожее чтобы дать аудитору доступ к вашему компьютеру @@ -54,11 +54,11 @@ 4. Капитан, зайдя на платформу, разрешает аудитору взять под контроль свой компьютер (TeamViewer) 5. Теперь аудитор может запустить проверку на компьютере капитана. -   Организация окон со стороны аудитора может быть сложной частью. Мы предлагаем -   посмотреть видео, и узнать как мы это сделали. +    Организация окон со стороны аудитора может быть сложной частью. Мы предлагаем +    посмотреть видео, и узнать как мы это сделали. 6. Аудитор проводит проверку, если аудитор не может в прямом эфире транслировать свою проверку, он или она -   затем объяснит голосом (или в чате), что он или она делает и как проверяет. +    затем объяснит голосом (или в чате), что он или она делает и как проверяет. 7. Аудит проводится до тех пор, пока все вопросы не верны или пока не будет допущена ошибка. @@ -67,7 +67,7 @@ 9. Группа обсуждает потенциальное место ошибки столько, сколько необходимо, до завершения аудита. 10. После завершения аудита все программы могут быть закрыты. Скажите пока и спасибо за ваше время и сделайте -    необходимые выводы среди членов группы. +     необходимые выводы среди членов группы. ### Conclusion diff --git a/docs/metrics.md b/docs/metrics.md index fb3afb3d..5f38d573 100644 --- a/docs/metrics.md +++ b/docs/metrics.md @@ -1,63 +1,65 @@ ## Metrics card - Export of students' results ### Where to find the data + Metrics for students from a given campus can be found in the Metrics card in the Admin dashboard. ### Important information -* Data can be exported in csv and json formats -* Data is filtered by campus, exports include all historical data for that campus. - * We will later develop a feature that enables filtering information before downloading it -* Data is updated every hour -* The download link is valid for 24 hours -* We recommend sharing the downloaded document itself instead of the download link as the link contains the admin’s authorisation token +- Data can be exported in csv and json formats +- Data is filtered by campus, exports include all historical data for that campus. + - We will later develop a feature that enables filtering information before downloading it +- Data is updated every hour +- The download link is valid for 24 hours +- We recommend sharing the downloaded document itself instead of the download link as the link contains the admin’s authorisation token ### Description of the data included in the exports -Field | Example | Description ------ | ----- | ----- -**user** | MarieMalarme | Student’s github username -**first_name** | Marie | Student’s first name -**last_name** | Malarme | Student’s last name -**object** | who-are-you | Name of the object for which a result is given -**type** | exercise | There are 3 object types:
- exercise (for quests and exams)
- raid
- project -**parent** | Quest 01 | The object’s hierarchical parent:
- If the object is an exercise, the parent will be either a quest or an exam.
- If the object is a raid or a project, the parent will be the module (piscine or div) -**module** | piscine-go | The part of the curriculum in which the object is included, either a piscine (piscine Go, piscine JS, piscine Rust) or the main curriculum (Div01) -**path** | /madere/piscine-go/quest-01/who-are-you | The url to that object, which outlines the path and hence the hierarchical structure to that object -**attempts** | 2 | Number of submission attempts made by the student -**status** | succeeded | Current status of the student's work on the object:
- "available" indicates that the student has started working on the object but either hasn't submitted it yet to be corrected, or is waiting for the auditing process to be completed
- "succeeded" and "failed" are attributed once the object has been corrected -**xp** | 325 | Number of XPs gained by the student for succeeding -**base_xp** | 325 | Maximum number of XPs the student can get for succeeding for that object -**grade** | 1 | The student’s score for that object is a number between 0 (failed) and 1 (succeeded). If the object is a project, the grade can be superior to 1 when the student successfully passes bonus questions -**last_update** | 2020-07-27T15:39:46.368Z | Date and time of the student’s latest activity for that object +| Field | Example | Description | +| --------------- | --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **user** | MarieMalarme | Student’s github username | +| **first_name** | Marie | Student’s first name | +| **last_name** | Malarme | Student’s last name | +| **object** | who-are-you | Name of the object for which a result is given | +| **type** | exercise | There are 3 object types:
- exercise (for quests and exams)
- raid
- project | +| **parent** | Quest 01 | The object’s hierarchical parent:
- If the object is an exercise, the parent will be either a quest or an exam.
- If the object is a raid or a project, the parent will be the module (piscine or div) | +| **module** | piscine-go | The part of the curriculum in which the object is included, either a piscine (piscine Go, piscine JS, piscine Rust) or the main curriculum (Div01) | +| **path** | /madere/piscine-go/quest-01/who-are-you | The url to that object, which outlines the path and hence the hierarchical structure to that object | +| **attempts** | 2 | Number of submission attempts made by the student | +| **status** | succeeded | Current status of the student's work on the object:
- "available" indicates that the student has started working on the object but either hasn't submitted it yet to be corrected, or is waiting for the auditing process to be completed
- "succeeded" and "failed" are attributed once the object has been corrected | +| **xp** | 325 | Number of XPs gained by the student for succeeding | +| **base_xp** | 325 | Maximum number of XPs the student can get for succeeding for that object | +| **grade** | 1 | The student’s score for that object is a number between 0 (failed) and 1 (succeeded). If the object is a project, the grade can be superior to 1 when the student successfully passes bonus questions | +| **last_update** | 2020-07-27T15:39:46.368Z | Date and time of the student’s latest activity for that object | ### Explanation of the XP and Grade calculation #### Exercises within quests -* _Test mode_: automatic tester -* _XPs_: fixed value. Students get all the points when succeeding at the exercise, no matter how many attempts they made. -* _Grade_: 0 (failure) or 1 (success) + +- _Test mode_: automatic tester +- _XPs_: fixed value. Students get all the points when succeeding at the exercise, no matter how many attempts they made. +- _Grade_: 0 (failure) or 1 (success) #### Exercises within exams -* _Contextual information_: - * Exams consist of many exercises which are grouped by difficulty levels. The student is randomly assigned an exercise from each level and has to succeed in order to move on to the next exercise level. - * Each exercise level has a maximum amount of XPs which grows according to the level’s difficulty. - * Exams are limited in time so students have to successfully complete as many exams as they can as fast as they can with the least amount of errors. -* _Test mode_: automatic tester -* _XPs_: variable value. Students get the maximum amount of points when they succeed at the first attempt. Each failed submission reduces the amount of XPs the student can get for that level. -* _Grade_: 0 (failure) or 1 (success) -#### Raids -* _Test mode_: projects are evaluated by a jury panel in 2 steps: - * First the jury evaluates the code through an audit, a series of pass / fail questions to be answered by the auditor. Succeeding the audit gives students a certain amount of XPs. - * The jury then interviews students and can decide to give them bonus / malus XPs based on their evaluation of the code and the students’ answers to their questions. -* _XPs_: variable value calculated as a fixed value for succeeding the project plus / minus XPs attributed by the jury at their discretion -* _Grade_: 0 (failure) or 1 (success) +- _Contextual information_: + - Exams consist of many exercises which are grouped by difficulty levels. The student is randomly assigned an exercise from each level and has to succeed in order to move on to the next exercise level. + - Each exercise level has a maximum amount of XPs which grows according to the level’s difficulty. + - Exams are limited in time so students have to successfully complete as many exams as they can as fast as they can with the least amount of errors. +- _Test mode_: automatic tester +- _XPs_: variable value. Students get the maximum amount of points when they succeed at the first attempt. Each failed submission reduces the amount of XPs the student can get for that level. +- _Grade_: 0 (failure) or 1 (success) -#### Projects -* _Test mode_: audits, which are peer-to-peer evaluations based on a series of pass/fail questions to be answered by the auditor -* _XPs_: variable value. Students can get more than the maximum value of XPs if they complete bonus exercises. They get no XPs at all if they fail at least one of the questions in the audit -* _Grade_: number between 0 and 1, proportionate to the number of questions successfully passed in the audit. The grade can be higher than 1 if the student completed bonus exercises. +#### Raids +- _Test mode_: projects are evaluated by a jury panel in 2 steps: + - First the jury evaluates the code through an audit, a series of pass / fail questions to be answered by the auditor. Succeeding the audit gives students a certain amount of XPs. + - The jury then interviews students and can decide to give them bonus / malus XPs based on their evaluation of the code and the students’ answers to their questions. +- _XPs_: variable value calculated as a fixed value for succeeding the project plus / minus XPs attributed by the jury at their discretion +- _Grade_: 0 (failure) or 1 (success) +#### Projects +- _Test mode_: audits, which are peer-to-peer evaluations based on a series of pass/fail questions to be answered by the auditor +- _XPs_: variable value. Students can get more than the maximum value of XPs if they complete bonus exercises. They get no XPs at all if they fail at least one of the questions in the audit +- _Grade_: number between 0 and 1, proportionate to the number of questions successfully passed in the audit. The grade can be higher than 1 if the student completed bonus exercises. diff --git a/docs/piscine-rust-curriculum.md b/docs/piscine-rust-curriculum.md index f33e92c3..8d426a6d 100644 --- a/docs/piscine-rust-curriculum.md +++ b/docs/piscine-rust-curriculum.md @@ -20,7 +20,6 @@ Exercices: - division-and-remainder | https://github.com/01-edu/public/tree/master/subjects/division-and-remainder - tuples | https://github.com/01-edu/public/tree/master/subjects/tuples - ### Quest 02-rust Exercices: @@ -36,7 +35,6 @@ Exercices: - arrange-it | https://github.com/01-edu/public/tree/master/subjects/arrange-it - tic-tac-toe | https://github.com/01-edu/public/tree/master/subjects/tic-tac-toe - ### Quest 03-rust Exercices: @@ -54,13 +52,10 @@ Exercices: - simple-hash | https://github.com/01-edu/public/tree/master/subjects/simple-hash - collect | https://github.com/01-edu/public/tree/master/subjects/collect - --- - ## Week Two - ## Quest 04-rust Exercices: @@ -75,7 +70,6 @@ Exercices: - error-types | https://github.com/01-edu/public/tree/master/subjects/error-types - boxing-todo | https://github.com/01-edu/public/tree/master/subjects/boxing-todo - ## Quest 05-rust Exercices: @@ -87,7 +81,6 @@ Exercices: - expected-variable | https://github.com/01-edu/public/tree/master/subjects/expected-variable - mobs | https://github.com/01-edu/public/tree/master/subjects/mobs - ## Quest 06-rust Exercices: @@ -109,12 +102,10 @@ Exercices: - delete-perfix | https://github.com/01-edu/public/tree/master/subjects/mdelete-perfix - commits-stats | https://github.com/01-edu/public/tree/master/subjects/mcommits-stats - --- ## Week Three - ## Quest 07-rust Exercices: @@ -126,13 +117,10 @@ Exercices: - ref-cell | https://github.com/01-edu/public/tree/master/subjects/ref-cell - drop-the-thread | https://github.com/01-edu/public/tree/master/subjects/drop-the-thread - - ## Quest 08-rust Exercices: - - closures | https://github.com/01-edu/public/tree/master/subjects/closures - sales | https://github.com/01-edu/public/tree/master/subjects/sales - adding | https://github.com/01-edu/public/tree/master/subjects/adding @@ -144,12 +132,10 @@ Exercices: - step-iterator | https://github.com/01-edu/public/tree/master/subjects/step-iterator - project-motion | https://github.com/01-edu/public/tree/master/subjects/project-motion - ## Quest 09-rust Exercices: - - stars | https://github.com/01-edu/public/tree/master/subjects/stars - ordinal | https://github.com/01-edu/public/tree/master/subjects/ordinal - pangram | https://github.com/01-edu/public/tree/master/subjects/pangram diff --git a/docs/server-requirements.md b/docs/server-requirements.md index 92141892..c6d7fc97 100644 --- a/docs/server-requirements.md +++ b/docs/server-requirements.md @@ -1,6 +1,7 @@ # Server requirements Features required : + - Dedicated hardware - Linux compatibility - UEFI @@ -11,4 +12,4 @@ Features required : | --------- | --------------------------- | | Processor | 12 threads x86-64 (64 bits) | | Memory | 16 GB DDR4 | -| Disk | 2 * 500 GB SSD | +| Disk | 2 \* 500 GB SSD | diff --git a/subjects/abs/README.md b/subjects/abs/README.md index 59966501..2ef22b83 100644 --- a/subjects/abs/README.md +++ b/subjects/abs/README.md @@ -10,14 +10,12 @@ Create the `abs` function that takes one number argument and returns its absolute value. You are not allowed to use `Math.abs`, make your own. - ### Notions - [nan-academy.github.io/js-training/examples/functions.js](https://nan-academy.github.io/js-training/examples/functions.js) - [nan-academy.github.io/js-training/examples/ternary.js](https://nan-academy.github.io/js-training/examples/ternary.js) - [devdocs.io/javascript/global_objects/math/abs](https://devdocs.io/javascript/global_objects/math/abs) - ### Code provided > all code provided will be added to your solution and doesn't need to be submited. diff --git a/subjects/action-reaction/README.md b/subjects/action-reaction/README.md index a1ff192a..b00ce62a 100644 --- a/subjects/action-reaction/README.md +++ b/subjects/action-reaction/README.md @@ -3,6 +3,7 @@ ### Resources We provide you with some content to get started smoothly, check it out! + - Video [querySelector](https://www.youtube.com/watch?v=m34qd7aGMBo&list=PLHyAJ_GrRtf979iZZ1N3qYMfsPj9PCCrF&index=12) - Video [DOM JS - Add an event listener to an element](https://www.youtube.com/watch?v=ydRv338Fl8Y) - Video [DOM JS - Set an element's properties](https://www.youtube.com/watch?v=4O6zSVR0ufw&list=PLHyAJ_GrRtf979iZZ1N3qYMfsPj9PCCrF&index=14) diff --git a/subjects/all/README.md b/subjects/all/README.md index 2f280c0b..6a4a26c4 100644 --- a/subjects/all/README.md +++ b/subjects/all/README.md @@ -5,13 +5,11 @@ Create a function `all` that works like `Promise.all` but with objects. (instead of arrays) - ### Notions - [nan-academy.github.io/js-training/examples/promise.js](https://nan-academy.github.io/js-training/examples/promise.js) - [devdocs.io/javascript/global_objects/promise/all](https://devdocs.io/javascript/global_objects/promise/all) - ### Code provided > all code provided will be added to your solution and doesn't need to be submited. diff --git a/subjects/armyofone/README.md b/subjects/armyofone/README.md index 4429556c..93ee9d23 100644 --- a/subjects/armyofone/README.md +++ b/subjects/armyofone/README.md @@ -1,40 +1,40 @@ -## ArmyOfOne - -In this exercise, you will learn to create a complex player movement from scratch. The character you will use is Countess from the game Paragon. She's nice after you know her, just give her a chance. - -### Objectives - -For this project you will implement a fully playable character using what we call Animation Blueprint, Aim Offset and PlayerCharacter Blueprint. - -### Instructions - -Starting from an empty project, after creating a level with a floor (nothing else is really required), you should: - -- create a Third Player Character Blueprint and apply the Countess mesh to it. - - - give the character the ability to: - - - move forward, backward, left and right using the WASD keys. - - look around and change direction using the mouse. - - jump using Space. - - attack using the left mouse click. - -- create an animation blueprint file to animate the character so she can be animated while running, jumping, attacking, etc... - -- implement the Aim Offset, so that when the player moves the mouse, the head of Countess follow the direction we’re looking at, in a 180-degree angle. - -- separate the upper and lower body part, so that the character is able to walk and attack at the same time without any animation problems. - -- make Countess lean according to the mouse direction, while running forward. - -- use Animation Blendspace to organize your movements. - -- use Animation Blueprint variables to handle different animation states. - -After downloading and unzipping this [file](https://assets.01-edu.org/Unreal-Engine-Piscine/ArmyOfOne.zip), you can copy its content to your project Content folder. - -When finished, your project should look like the [“Expected Result” video](https://youtu.be/sebi5icA1MM). - -> Do not forget to zip up the project compile and save everything for peer correction. - -[Here](https://www.youtube.com/playlist?list=PLHyAJ_GrRtf9sxZqgfPVM06PrLk8_CWA-) you can find an instructional playlist on Unreal Engine. +## ArmyOfOne + +In this exercise, you will learn to create a complex player movement from scratch. The character you will use is Countess from the game Paragon. She's nice after you know her, just give her a chance. + +### Objectives + +For this project you will implement a fully playable character using what we call Animation Blueprint, Aim Offset and PlayerCharacter Blueprint. + +### Instructions + +Starting from an empty project, after creating a level with a floor (nothing else is really required), you should: + +- create a Third Player Character Blueprint and apply the Countess mesh to it. + + - give the character the ability to: + + - move forward, backward, left and right using the WASD keys. + - look around and change direction using the mouse. + - jump using Space. + - attack using the left mouse click. + +- create an animation blueprint file to animate the character so she can be animated while running, jumping, attacking, etc... + +- implement the Aim Offset, so that when the player moves the mouse, the head of Countess follow the direction we’re looking at, in a 180-degree angle. + +- separate the upper and lower body part, so that the character is able to walk and attack at the same time without any animation problems. + +- make Countess lean according to the mouse direction, while running forward. + +- use Animation Blendspace to organize your movements. + +- use Animation Blueprint variables to handle different animation states. + +After downloading and unzipping this [file](https://assets.01-edu.org/Unreal-Engine-Piscine/ArmyOfOne.zip), you can copy its content to your project Content folder. + +When finished, your project should look like the [“Expected Result” video](https://youtu.be/sebi5icA1MM). + +> Do not forget to zip up the project compile and save everything for peer correction. + +[Here](https://www.youtube.com/playlist?list=PLHyAJ_GrRtf9sxZqgfPVM06PrLk8_CWA-) you can find an instructional playlist on Unreal Engine. diff --git a/subjects/armyofone/audit/README.md b/subjects/armyofone/audit/README.md index 80fea176..a3d9fd48 100644 --- a/subjects/armyofone/audit/README.md +++ b/subjects/armyofone/audit/README.md @@ -1,33 +1,33 @@ -#### Functional - -###### Can the Countess character move in the four directions (forward, backward, left and right) using the WASD keys? - -###### Can the Countess character jump using the Space key? - -###### Can the Countess character attack using the left mouse click? - -###### While running, does moving the mouse left and right change the player's leaning angle and direction? - -###### Is the animation used for the countess in the animation blueprint stored in a BlendSpace file? - -###### Does the Countess head follow the mouse orientation? - -###### Is an Aim Offset being used to move the Countess head according to the mouse movement? - -###### Can the Countess character attack using the blades when clicking on the left mouse button? - -###### Are the body transitions smooth when starting an attack or jumping, etc…? - -###### Can you attack and move around at the same time without damaging the animations performance? - -###### Does the Countess body blends between two animations (are blend nodes being used)? - -###### Is the upper body and lower body being controlled as "two separate modules"? - -###### Does the Animation Blueprint have at least three variables in order to handle the character speed if she is in the air and attacking? - -#### Bonus - -###### Can the Countess character execute more than 3 attacks? - -###### Are they at least two different Countess skins being used? +#### Functional + +###### Can the Countess character move in the four directions (forward, backward, left and right) using the WASD keys? + +###### Can the Countess character jump using the Space key? + +###### Can the Countess character attack using the left mouse click? + +###### While running, does moving the mouse left and right change the player's leaning angle and direction? + +###### Is the animation used for the countess in the animation blueprint stored in a BlendSpace file? + +###### Does the Countess head follow the mouse orientation? + +###### Is an Aim Offset being used to move the Countess head according to the mouse movement? + +###### Can the Countess character attack using the blades when clicking on the left mouse button? + +###### Are the body transitions smooth when starting an attack or jumping, etc…? + +###### Can you attack and move around at the same time without damaging the animations performance? + +###### Does the Countess body blends between two animations (are blend nodes being used)? + +###### Is the upper body and lower body being controlled as "two separate modules"? + +###### Does the Animation Blueprint have at least three variables in order to handle the character speed if she is in the air and attacking? + +#### Bonus + +###### Can the Countess character execute more than 3 attacks? + +###### Are they at least two different Countess skins being used? diff --git a/subjects/ascii-art-web/README.md b/subjects/ascii-art-web/README.md index 40a166cb..1bb41193 100644 --- a/subjects/ascii-art-web/README.md +++ b/subjects/ascii-art-web/README.md @@ -9,10 +9,10 @@ Your web-page should provide usage of different [banners](https://github.com/01- Implement following HTTP endpoints: 1. GET `/`: Sends HTML response - the main page.\ - 1.1. GET Tip: [go templates](https://golang.org/pkg/html/template/) to receive and display data from the server + 1.1. GET Tip: [go templates](https://golang.org/pkg/html/template/) to receive and display data from the server 2. POST `/ascii-art`: that sends data to Go server (text and a banner)\ - 2.1. POST Tip: use form and other types of [tags](https://developer.mozilla.org/en-US/docs/Web/HTML/Element) to make the post request.\ + 2.1. POST Tip: use form and other types of [tags](https://developer.mozilla.org/en-US/docs/Web/HTML/Element) to make the post request.\ Main page must have: diff --git a/subjects/atm-management-system/README.md b/subjects/atm-management-system/README.md index 54c42712..39de408f 100644 --- a/subjects/atm-management-system/README.md +++ b/subjects/atm-management-system/README.md @@ -20,7 +20,7 @@ You will be provided with an ATM management system where users can do the follow - Make transactions > The application provided will just handle the **login**, the **creation of new accounts** and **checking the list of owned accounts**. The rest of the features must -be implemented by yourself. +> be implemented by yourself. ### File System @@ -112,7 +112,7 @@ One of the ways of doing this is by using pipes and child processes (communicati You can also do more bonus features or update the terminal interface: - Better terminal interface (TUI) -- Encryption of passwords +- Encryption of passwords - Adding your own Makefile ### Example diff --git a/subjects/atm-management-system/audit/README.md b/subjects/atm-management-system/audit/README.md index 57398827..f071f640 100644 --- a/subjects/atm-management-system/audit/README.md +++ b/subjects/atm-management-system/audit/README.md @@ -32,7 +32,7 @@ ###### Was the country of that account updated in the application and the file `"records.txt"`? -##### Resorting to the user Alice, try to create a new account with: date `"10/10/2012"` account number `"834213"`, country `"UK"`, phone number `"291231392"`, deposit amount $`"1001.20"`, type of account `"saving"`. Then select `"Check accounts"` choose the account you just created. +##### Resorting to the user Alice, try to create a new account with: date `"10/10/2012"` account number `"834213"`, country `"UK"`, phone number `"291231392"`, deposit amount $`"1001.20"`, type of account `"saving"`. Then select `"Check accounts"` choose the account you just created. ###### Did the application displayed the account information and the gain of $5.84 of interest on day 10 of every month? diff --git a/subjects/biggie-smalls/README.md b/subjects/biggie-smalls/README.md index 6ec7ee21..24812275 100644 --- a/subjects/biggie-smalls/README.md +++ b/subjects/biggie-smalls/README.md @@ -3,10 +3,10 @@ ### Instructions Create 2 variables + - `smalls` with the smallest possible `number` value - `biggie` with the greatest possible `number` value - ### Notions - [devdocs.io/javascript-number](https://devdocs.io/javascript-number/) diff --git a/subjects/block-chain/README.md b/subjects/block-chain/README.md index ca63cadd..4d3b8d80 100644 --- a/subjects/block-chain/README.md +++ b/subjects/block-chain/README.md @@ -5,11 +5,13 @@ Create a `blockChain` that create a block in your very own block chain. the function takes 2 arguments: + - `data` any valid JSON data -- `prev` the previous block, if no block are given it should use the +- `prev` the previous block, if no block are given it should use the genesis block: `{ index: 0, hash: '0' }` A block must have the following properties: + - `index` - `hash` a computed hash using the concatenation of the `index`, `hash` and stringified `data` and hashing all of it using the provided `hashCode`. @@ -17,7 +19,6 @@ A block must have the following properties: - `prev` the previous block - `chain` a function that takes a new `data` and create the next block with it. - ### Examples ```js @@ -48,12 +49,10 @@ console.log(chain.index) // -> 5 console.log(fork.index) // -> 5 ``` - ### Notions - [devdocs.io/javascript/global_objects/json/stringify](https://devdocs.io/javascript/global_objects/json/stringify) - ### Code provided > all code provided will be added to your solution and doesn't need to be submited. diff --git a/subjects/blood_types_s/README.md b/subjects/blood_types_s/README.md index 493b0160..6a37e178 100644 --- a/subjects/blood_types_s/README.md +++ b/subjects/blood_types_s/README.md @@ -5,7 +5,7 @@ Use the following table to define the methods asked: | Blood Types | Donate Blood to | Receive Blood From | -|-------------|------------------|--------------------| +| ----------- | ---------------- | ------------------ | | A+ | A+, AB+ | A+, A-, O+, O- | | O+ | O+, A+, B+, AB+ | O+, O- | | B+ | O+, O- | B+, B-, O+, O- | diff --git a/subjects/bloody-sunday/README.md b/subjects/bloody-sunday/README.md index 4e438970..81e5f7c5 100644 --- a/subjects/bloody-sunday/README.md +++ b/subjects/bloody-sunday/README.md @@ -11,4 +11,4 @@ So now, a week is 6 days from monday to saturday. To prove your point, create a `bloodySunday` function that return what week day the given date is. -> note that the 01/01/0001 is still a monday. \ No newline at end of file +> note that the 01/01/0001 is still a monday. diff --git a/subjects/borrow/README.md b/subjects/borrow/README.md index 508d470d..fd2977c4 100644 --- a/subjects/borrow/README.md +++ b/subjects/borrow/README.md @@ -10,6 +10,7 @@ Complete the signature and the body of the `str_len` **function** that receives pub fn str_len(s: ) -> usize { } ``` + ### Notions [Primitive Type str](https://doc.rust-lang.org/std/primitive.str.html) diff --git a/subjects/borrow_me_the_reference/README.md b/subjects/borrow_me_the_reference/README.md index 75eefb12..c2c529bd 100644 --- a/subjects/borrow_me_the_reference/README.md +++ b/subjects/borrow_me_the_reference/README.md @@ -7,15 +7,16 @@ needing garbage collector. Therefore you must understand ownership in rust. Create the following functions : - - `delete_and_backspace`, imagine that the `-` represents the `backspace key` and the `+` represents the `delete key`, this function must receive a borrowed string and turn this string into the string that applies the `backspaces` and the `deletes`. - - For example: - - "helll-o" turns into "hello" - - - "he+lllo" turns into "hello" +- `delete_and_backspace`, imagine that the `-` represents the `backspace key` and the `+` represents the `delete key`, this function must receive a borrowed string and turn this string into the string that applies the `backspaces` and the `deletes`. +- For example: - - `is_correct` that borrows a Vector of string literals with some correct and incorrect math equations and replaces the correct equations with `✔` and the wrong with `✘` and returns a `usize` with the percentage of correct equations. - -### Expected Functions + - "helll-o" turns into "hello" + + - "he+lllo" turns into "hello" + +- `is_correct` that borrows a Vector of string literals with some correct and incorrect math equations and replaces the correct equations with `✔` and the wrong with `✘` and returns a `usize` with the percentage of correct equations. + +### Expected Functions ```rust pub fn delete_and_backspace(s: &mut String) { @@ -30,7 +31,6 @@ pub fn is_correct(v: &mut Vec<&str>) -> usize { - https://doc.rust-lang.org/book/ch04-00-understanding-ownership.html - https://docs.rs/meval/0.2.0/meval/ - ### Usage Here is a program to test your function diff --git a/subjects/bring-it-to-life/README.md b/subjects/bring-it-to-life/README.md index c32f8d16..dbce45c0 100644 --- a/subjects/bring-it-to-life/README.md +++ b/subjects/bring-it-to-life/README.md @@ -3,6 +3,7 @@ ### Resources We provide you with some content to get started smoothly, check it out! + - Video [Link a JS script to your HTML file](https://www.youtube.com/watch?v=jMvsQm-p1gM&list=PLHyAJ_GrRtf979iZZ1N3qYMfsPj9PCCrF&index=7) - Video [DOM JS - getElementById](https://www.youtube.com/watch?v=34kAR8yBtDM&list=PLHyAJ_GrRtf979iZZ1N3qYMfsPj9PCCrF&index=8) - Video [DOM JS - Set an element's inline style](https://www.youtube.com/watch?v=pxlYKvju1z8&list=PLHyAJ_GrRtf979iZZ1N3qYMfsPj9PCCrF&index=15) diff --git a/subjects/carbon-copy/audit/README.md b/subjects/carbon-copy/audit/README.md index a6b76976..fb941382 100644 --- a/subjects/carbon-copy/audit/README.md +++ b/subjects/carbon-copy/audit/README.md @@ -1,27 +1,27 @@ -#### HTML structure - -###### Does the webpage look the same as the template, and includes all the elements? - -###### When clicking on an item of the navbar menu, does it scroll to the corresponding section in the page? - -#### Custom CSS - -###### Have the colors been modified from the template version? - -###### Does the Dashboard section display the 3 cards, looking similar to the template? - -#### JS interactions - -###### When clicking on the images' section, does it toggle the order of the pics? - -###### +In the Contact section, when writing something in the input and clicking the button, the following sentence should appear in the place of the input, and display the text filled in the input: "Nice to meet you _[input data displayed here]_ 👋! Thanks for introducing yourself.". Is this working? - -###### +When clicking on a card of the dashboard, does it open a modal displaying the card content? - -###### +Does the modal close when clicking on the closing button & when pressing the "Escape" key? - -###### +Does the modal include a widget allowing to change the alignment of the text? - -###### +Does the header display a different Chuck Norris' joke every time the page is reloaded? - -###### +Does the header display a different Chuck Norris' joke every 10 seconds? +#### HTML structure + +###### Does the webpage look the same as the template, and includes all the elements? + +###### When clicking on an item of the navbar menu, does it scroll to the corresponding section in the page? + +#### Custom CSS + +###### Have the colors been modified from the template version? + +###### Does the Dashboard section display the 3 cards, looking similar to the template? + +#### JS interactions + +###### When clicking on the images' section, does it toggle the order of the pics? + +###### +In the Contact section, when writing something in the input and clicking the button, the following sentence should appear in the place of the input, and display the text filled in the input: "Nice to meet you _[input data displayed here]_ 👋! Thanks for introducing yourself.". Is this working? + +###### +When clicking on a card of the dashboard, does it open a modal displaying the card content? + +###### +Does the modal close when clicking on the closing button & when pressing the "Escape" key? + +###### +Does the modal include a widget allowing to change the alignment of the text? + +###### +Does the header display a different Chuck Norris' joke every time the page is reloaded? + +###### +Does the header display a different Chuck Norris' joke every 10 seconds? diff --git a/subjects/change/README.md b/subjects/change/README.md index 0924f8b8..64a84143 100644 --- a/subjects/change/README.md +++ b/subjects/change/README.md @@ -3,6 +3,7 @@ ### Instructions Create 2 functions: + - `get`: a function that takes a key and return the corresponding value from the sourceObject @@ -10,7 +11,6 @@ Create 2 functions: value for the corresponding property of the sourceObject and return the set value - ### Notions - [nan-academy.github.io/js-training/examples/functions.js](https://nan-academy.github.io/js-training/examples/functions.js) @@ -18,7 +18,6 @@ Create 2 functions: - [nan-academy.github.io/js-training/examples/get.js](https://nan-academy.github.io/js-training/examples/get.js) - [nan-academy.github.io/js-training/examples/set.js](https://nan-academy.github.io/js-training/examples/set.js) - ### Code provided > all code provided will be added to your solution and doesn't need to be submited. diff --git a/subjects/changes/README.md b/subjects/changes/README.md index 1f75bdf3..faf87021 100644 --- a/subjects/changes/README.md +++ b/subjects/changes/README.md @@ -6,7 +6,7 @@ Imagine you are working on a software to control smart lights in a house. You ha Define the associated **function** `new` to the data structure `Light` which creates a new light with the alias passed in the arguments and a brightness of 0. -Define the **function** `change_brightness` that receives a `Vec` of lights, an `alias` and a `u8`value. The **function** then sets the `u8` value as the new brightness of the light identified by the alias in the Vec of lights. +Define the **function** `change_brightness` that receives a `Vec` of lights, an `alias` and a `u8`value. The **function** then sets the `u8` value as the new brightness of the light identified by the alias in the Vec of lights. ### Notions diff --git a/subjects/chunky/README.md b/subjects/chunky/README.md index d6579f92..0b6e131a 100644 --- a/subjects/chunky/README.md +++ b/subjects/chunky/README.md @@ -6,4 +6,4 @@ Create the `chunk` function that returns an array of elements split into groups the length of the given size. If array can't be split evenly, -the final chunk will be the remaining elements. \ No newline at end of file +the final chunk will be the remaining elements. diff --git a/subjects/circular/README.md b/subjects/circular/README.md index 9c461c42..6b06c824 100644 --- a/subjects/circular/README.md +++ b/subjects/circular/README.md @@ -5,7 +5,6 @@ Create an object named `circular` that has a property named `circular` with itself as the value - ### Notions - [nan-academy.github.io/js-training/examples/data-structures.js](https://nan-academy.github.io/js-training/examples/data-structures.js) diff --git a/subjects/class-that/README.md b/subjects/class-that/README.md index 587231fd..7fdad553 100644 --- a/subjects/class-that/README.md +++ b/subjects/class-that/README.md @@ -3,6 +3,7 @@ ### Resources We provide you with some content to get started smoothly, check it out! + - Video [CSS - Set & style with CSS class](https://www.youtube.com/watch?v=-U397k4VloU&list=PLHyAJ_GrRtf979iZZ1N3qYMfsPj9PCCrF&index=6) ### Instructions diff --git a/subjects/clonernews/README.md b/subjects/clonernews/README.md index 5cf40714..a2955ca1 100644 --- a/subjects/clonernews/README.md +++ b/subjects/clonernews/README.md @@ -19,7 +19,6 @@ You must handle at least: Post and comments must be ordered by newest post to oldest. You must not load all posts at once. You must be able to load posts when ever the users need to see more posts. This can be done with the help of [event](https://developer.mozilla.org/en-US/docs/Web/Events). - [Live Data](https://github.com/HackerNews/API#live-data) : is one of the features from this Hacker News API, you can handle requests so that the news you provide are updated. - You must have a section that present the newest information. You will have to notify the user at least every 5 seconds, whenever the live data is updated. In other words, after every 5 seconds if a change was made in the live data, you have to notify the user. diff --git a/subjects/collections/README.md b/subjects/collections/README.md index 506df379..0914cb0a 100644 --- a/subjects/collections/README.md +++ b/subjects/collections/README.md @@ -19,12 +19,11 @@ Write a bunch of function to move from one type to another and finally write a function `superTypeOf` that unlike `typeof` return a different value for advanced types like `Map` and `Set` - ### Examples ```js const str = 'hello' -const arr = [ 1, 2, 1, 3 ] +const arr = [1, 2, 1, 3] const obj = { x: 45, y: 75, radius: 24 } const set = new Set() const map = new Map() @@ -61,7 +60,6 @@ superTypeOf(undefined) // -> 'undefined' superTypeOf(superTypeOf) // -> 'Function' ``` - ### Notions - [devdocs.io/javascript/operators/typeof](https://devdocs.io/javascript/operators/typeof) diff --git a/subjects/concat-str/README.md b/subjects/concat-str/README.md index 6884af74..a7bb735d 100644 --- a/subjects/concat-str/README.md +++ b/subjects/concat-str/README.md @@ -4,7 +4,6 @@ Create a `concatStr` function that takes 2 arguments and concatenate them - ### Notions - [nan-academy.github.io/js-training/examples/functions.js](https://nan-academy.github.io/js-training/examples/functions.js) diff --git a/subjects/copy/README.md b/subjects/copy/README.md index 99a5f5ce..3e8a78eb 100644 --- a/subjects/copy/README.md +++ b/subjects/copy/README.md @@ -5,15 +5,15 @@ Your objective is to fix the **functions** work so that the program works. - `nbr_function` returns a tuple: - - with the `original` value - - the `exponential function` of the value - - and the `natural logarithm` of this `absolute` value + - with the `original` value + - the `exponential function` of the value + - and the `natural logarithm` of this `absolute` value - `str_function` returns a tuple: - - with the `original` value - - and the `exponential function` each value as a string (see the example) + - with the `original` value + - and the `exponential function` each value as a string (see the example) - `vec_function` returns a tuple: - - with the `original` value - - and the `natural logarithm` of each `absolute` value + - with the `original` value + - and the `natural logarithm` of each `absolute` value The objective is to know how ownership works with different types. diff --git a/subjects/count-leap-years/README.md b/subjects/count-leap-years/README.md index 1c985e3b..787e3837 100644 --- a/subjects/count-leap-years/README.md +++ b/subjects/count-leap-years/README.md @@ -3,4 +3,4 @@ ### Instructions Make a `countLeapYears` functions that takes a date -and returns the number of leap years since year 1 \ No newline at end of file +and returns the number of leap years since year 1 diff --git a/subjects/currify/README.md b/subjects/currify/README.md index 505d66e0..64865e10 100644 --- a/subjects/currify/README.md +++ b/subjects/currify/README.md @@ -7,9 +7,8 @@ Create the function `currify` that will curry any functions put as argument. example: ```js -const mult2 = (el1,el2) => el1 * el2 -console.log(mult2(2,2)) // result expected 4 - +const mult2 = (el1, el2) => el1 * el2 +console.log(mult2(2, 2)) // result expected 4 const mult2Curried = currify(mult2) diff --git a/subjects/cut-corners/README.md b/subjects/cut-corners/README.md index a197d3e3..da457a75 100644 --- a/subjects/cut-corners/README.md +++ b/subjects/cut-corners/README.md @@ -3,21 +3,21 @@ ### Instructions Create a function for each rounding math functions: + - round (like `Math.round`) - ceil (like `Math.ceil`) - floor (like `Math.floor`) - trunc (like `Math.trunc`) Some restrictions apply: + - You may not use strings conversion to do it - No bitwise operator - ### Notions - [devdocs.io/javascript/global_objects/math](https://devdocs.io/javascript/global_objects/math) - ### Code provided > all code provided will be added to your solution and doesn't need to be submited. diff --git a/subjects/day-of-the-year/README.md b/subjects/day-of-the-year/README.md index 4890512f..de00d7ad 100644 --- a/subjects/day-of-the-year/README.md +++ b/subjects/day-of-the-year/README.md @@ -3,4 +3,4 @@ ### Instructions Make a `dayOfTheYear` functions that takes a date -and returns the number of days since the first day of that year \ No newline at end of file +and returns the number of days since the first day of that year diff --git a/subjects/declarations/README.md b/subjects/declarations/README.md index f60bc8fc..2760b04a 100644 --- a/subjects/declarations/README.md +++ b/subjects/declarations/README.md @@ -4,7 +4,7 @@ Create the following constant variables: -- `escapeStr`, that contains the following specials characters: `` ` ``, `\`, `/`, `"`, `'` +- `escapeStr`, that contains the following specials characters: `` ` ``, `\`, `/`, `"`, `'` - `arr` that is an array containing the values 4 and '2' - `obj` that is an object containing a property for each primitives: - `str` for `String` diff --git a/subjects/dr-strange/README.md b/subjects/dr-strange/README.md index ff9c0b19..72e3c8e5 100644 --- a/subjects/dr-strange/README.md +++ b/subjects/dr-strange/README.md @@ -15,7 +15,6 @@ it can go backwards or forwards in time. You will have a function that takes a date and you will pass 3 more parameters to change the hour, minute and seconds. - ### Example ```js diff --git a/subjects/elementary/README.md b/subjects/elementary/README.md index 158dde88..1c6f9874 100644 --- a/subjects/elementary/README.md +++ b/subjects/elementary/README.md @@ -3,6 +3,7 @@ ### Instructions Create 3 functions: + - `multiply` that act like the `*` operator without using it - `divide` that do an integer division without using `/` - `modulo` that act like the `%` operator without using it diff --git a/subjects/ephemeris/README.md b/subjects/ephemeris/README.md index 450726cd..0a5ca7e8 100644 --- a/subjects/ephemeris/README.md +++ b/subjects/ephemeris/README.md @@ -41,48 +41,48 @@ student@ubuntu:~/ephemeris$ npm install puppeteer Then, create a new file `ephemeris.mjs` in which you will use the puppeteer module: ```js -import puppeteer from "puppeteer"; +import puppeteer from 'puppeteer' const browser = await puppeteer.launch({ headless: false, // to be commented or removed when project is submitted devtools: true, // to be commented or removed when project is submitted -}); -const [page] = await browser.pages(); +}) +const [page] = await browser.pages() // actions... -await browser.close(); // you can comment this during you tests -process.exit(0); // terminate the process as succeeded (you can comment this during you tests) +await browser.close() // you can comment this during you tests +process.exit(0) // terminate the process as succeeded (you can comment this during you tests) ``` **Puppeteer helper - script model** ```javascript // navigate to a specific url -await page.goto("https://www.google.com/"); +await page.goto('https://www.google.com/') // wait an element in the page -await page.waitForSelector("input#myId"); +await page.waitForSelector('input#myId') // find an element in the page: -const button = await page.$("button#myId"); +const button = await page.$('button#myId') // check the element was found if (button) { // use the element - await button.click(); + await button.click() } else { // do something else: for example treat the exception as an error - console.error("Button not found !"); + console.error('Button not found !') // and terminate the process as failed (code 1) - process.exit(1); + process.exit(1) } // navigate in a website -await Promise.all([page.waitForNavigation(), page.click("div#myId")]); +await Promise.all([page.waitForNavigation(), page.click('div#myId')]) // get the textContent of an element -const myText = await page.$eval("div#myId", (elem) => elem.textContent); +const myText = await page.$eval('div#myId', (elem) => elem.textContent) // type something in an input -await page.type(`input#myId`, "some text"); +await page.type(`input#myId`, 'some text') ``` ### Optional diff --git a/subjects/fibonacci2/README.md b/subjects/fibonacci2/README.md index 9de5584a..ef697b14 100644 --- a/subjects/fibonacci2/README.md +++ b/subjects/fibonacci2/README.md @@ -6,7 +6,7 @@ Complete the body of the **function** `fibonacci`. This functions receives a number `n` and returns the nth number in the fibonacci series. -The Fibonacci Series starts like this: 0, 1, 1, 2, 3, 5, 8, 13 etc... +The Fibonacci Series starts like this: 0, 1, 1, 2, 3, 5, 8, 13 etc... ### Notions diff --git a/subjects/filter/README.md b/subjects/filter/README.md index c1040186..76131b04 100644 --- a/subjects/filter/README.md +++ b/subjects/filter/README.md @@ -3,14 +3,13 @@ ### Instructions - Create a `filter` function that takes an array as first argument, a function as second, -and that works like the method [].filter + and that works like the method [].filter - Create a `reject` function that takes an array as first argument, a function as second, -and that works like the reject function from lodash. + and that works like the reject function from lodash. - Create a `partition` function that takes an array as first argument, a function as second, -and that works like the partition function from lodash. - + and that works like the partition function from lodash. ### Notions @@ -18,7 +17,6 @@ and that works like the partition function from lodash. - [lodash.com/docs/4.17.15#reject](https://lodash.com/docs/4.17.15#reject) - [lodash.com/docs/4.17.15#partition](https://lodash.com/docs/4.17.15#partition) - ### Code provided > all code provided will be added to your solution and doesn't need to be submited. diff --git a/subjects/find-expression/README.md b/subjects/find-expression/README.md index 6e9a5574..61e722c9 100644 --- a/subjects/find-expression/README.md +++ b/subjects/find-expression/README.md @@ -7,19 +7,17 @@ Create a function called `findExpression` that takes a number as parameter and r - It will be given two constant variable `add4` and `mul2` - Your goal is to try to find a sequence, starting from the number 1, and repeatedly either adding 4 or multiplying 2 - that produces the number given has parameter. -For example, the number 8 you must first multiplying by 2 twice and then add 4. -It will look something like this `1 *2 *2 +4` + that produces the number given has parameter. + For example, the number 8 you must first multiplying by 2 twice and then add 4. + It will look something like this `1 *2 *2 +4` - If the number can not be reached you should return `undefined` - ### Notions - [nan-academy.github.io/js-training/examples/loops.js](https://nan-academy.github.io/js-training/examples/loops.js) - [nan-academy.github.io/js-training/examples/recursion.js](https://nan-academy.github.io/js-training/examples/recursion.js) - ### Code provided > all code provided will be added to your solution and doesn't need to be submited. diff --git a/subjects/firingrange/audit/README.md b/subjects/firingrange/audit/README.md index c1763833..aa0a8313 100644 --- a/subjects/firingrange/audit/README.md +++ b/subjects/firingrange/audit/README.md @@ -1,25 +1,25 @@ -#### Functional - -###### Are the map size (X = 35, Y = 40, Z = 1) and composition (using cubes) being respected? - -###### Are the projectile size (X = Y = Z = 0,5) and speed (10000) being respected? - -###### If you try to move the target to the target zone, is the player forbidden from trespassing to that zone by an invisible wall? - -###### When you shoot a target, does the bullet go through the invisible wall? - -###### Did the targets correctly lay on the floor when hit by the projectile? - -###### Did the target rotate from the bottom and not from the center? - -###### Is there only one class “BP_Target” present on the project? - -###### Do all the public variables have a tooltip? (Mouse over it to check if a description is set or check if the variable have a little green eye on the right) - -#### Bonus - -###### Do different targets have different speeds? - -###### Do the walls and floor have texture? - -###### Are there obstacles in front of targets? +#### Functional + +###### Are the map size (X = 35, Y = 40, Z = 1) and composition (using cubes) being respected? + +###### Are the projectile size (X = Y = Z = 0,5) and speed (10000) being respected? + +###### If you try to move the target to the target zone, is the player forbidden from trespassing to that zone by an invisible wall? + +###### When you shoot a target, does the bullet go through the invisible wall? + +###### Did the targets correctly lay on the floor when hit by the projectile? + +###### Did the target rotate from the bottom and not from the center? + +###### Is there only one class “BP_Target” present on the project? + +###### Do all the public variables have a tooltip? (Mouse over it to check if a description is set or check if the variable have a little green eye on the right) + +#### Bonus + +###### Do different targets have different speeds? + +###### Do the walls and floor have texture? + +###### Are there obstacles in front of targets? diff --git a/subjects/first-words/README.md b/subjects/first-words/README.md index 3217de39..302341a6 100644 --- a/subjects/first-words/README.md +++ b/subjects/first-words/README.md @@ -3,6 +3,7 @@ ### Resources We provide you with some content to get started smoothly, check it out! + - Video [DOM JS - createElement & append](https://www.youtube.com/watch?v=J-A_pqTqGBU&list=PLHyAJ_GrRtf979iZZ1N3qYMfsPj9PCCrF&index=13) - Video [Set an element's className](https://www.youtube.com/watch?v=h3b7H1ZKvFE&list=PLHyAJ_GrRtf979iZZ1N3qYMfsPj9PCCrF&index=16) - Video [DOM JS - Set an element's properties](https://www.youtube.com/watch?v=4O6zSVR0ufw&list=PLHyAJ_GrRtf979iZZ1N3qYMfsPj9PCCrF&index=14) diff --git a/subjects/flagger/README.md b/subjects/flagger/README.md index 557d9f19..7a7243d7 100644 --- a/subjects/flagger/README.md +++ b/subjects/flagger/README.md @@ -6,9 +6,10 @@ Create a function called `flags` that receives an object and returns the specific aliases and descriptions from the properties of that object. The `help` flag: - - Should be present in the output by default. - - When not present in the input, it should return the description of all flags. - But when present it specifies the descriptions of the flags that are passed to help. (ex: `help: ['divide']`) + +- Should be present in the output by default. +- When not present in the input, it should return the description of all flags. + But when present it specifies the descriptions of the flags that are passed to help. (ex: `help: ['divide']`) #### Example: @@ -19,6 +20,7 @@ The `help` flag: help: ['divide'] } ``` + and outputs : ```js diff --git a/subjects/flat/README.md b/subjects/flat/README.md index 5de3c6ea..b855054c 100644 --- a/subjects/flat/README.md +++ b/subjects/flat/README.md @@ -4,12 +4,10 @@ Create the `flat` functions that works like the `.flat` array method - ### Notions - [devdocs.io/javascript/global_objects/array/flat](https://devdocs.io/javascript/global_objects/array/flat) - ### Code provided > all code provided will be added to your solution and doesn't need to be submited. diff --git a/subjects/flow/README.md b/subjects/flow/README.md index 0ddd8a45..5d9049b5 100644 --- a/subjects/flow/README.md +++ b/subjects/flow/README.md @@ -5,20 +5,16 @@ Create the function `flow` that will works as the \_.flow([funcs]) from lodash. - ### Example -``` js - -const square = nbr => nbr * nbr +```js +const square = (nbr) => nbr * nbr const add2Numbers = (nbr1, nbr2) => nbr1 + nbr2 const flowedFunctions = flow([add2Numbers, square]) flowedFunctions(2, 3) // -> 25 - ``` - ### Notions - [lodash.com/docs/4.17.15#flow](https://lodash.com/docs/4.17.15#flow) diff --git a/subjects/for-each/README.md b/subjects/for-each/README.md index a62cd7aa..50aaed4c 100644 --- a/subjects/for-each/README.md +++ b/subjects/for-each/README.md @@ -5,12 +5,10 @@ Create a `forEach` function that takes an array as first argument, a function as second, and that works like the method .forEach - ### Notions - [devdocs.io/javascript/global_objects/array/foreach](https://devdocs.io/javascript/global_objects/array/foreach) - ### Code provided > all code provided will be added to your solution and doesn't need to be submited. diff --git a/subjects/forum/audit/README.md b/subjects/forum/audit/README.md index 06f556c9..5e927ceb 100644 --- a/subjects/forum/audit/README.md +++ b/subjects/forum/audit/README.md @@ -1,187 +1,187 @@ -#### Authentication - -###### Are an email and a password asked for in the resgistration? - -###### Does the project detect if the email or password are wrong? - -###### Does the project detect if the email or user name is already taken in the registration? - -##### Try to register as a new user in the forum. - -###### Is it possible to register? - -##### Try to login with the user you created. - -###### Can you login and have all the rights of a registered user? - -##### Try to login without any credentials. - -###### Does it show a warning message? - -###### Are sessions present in the project? - -##### Try opening two different browsers and login into one of them. Refresh the other browser. - -###### Can you confirm that the browser non logged remains unregistered? - -##### Try opening two different browsers and login into both of them. Refresh both browsers. - -###### Can you confirm that only one of those browsers has an active session? - -##### Try opening two different browsers and login into one of them. Then create a new post or just add a comment. Refresh both browsers. - -###### Does it present the comment/post on both browsers? - -#### SQLite - -###### Does the code contain at least one CREATE query? - -###### Does the code contain at least one INSERT query? - -###### Does the code contain at least one SELECT query? - -##### Try registering in the forum, open the database with `sqlite3 ` and perform a query to select all the users (Example: SELECT \* FROM users;). - -###### Does it present the user you created? - -##### Try creating a post in the forum, open the database with `sqlite3 ` and perform a query to select all the users (Example: SELECT \* FROM post;). - -###### Does it present the post you created? - -##### Try creating a comment in the forum, open the database with `sqlite3 ` and perform a query to select all the users (Example: SELECT \* FROM comment;). - -###### Does it present the comment you created? - -#### Docker - -###### Does the project have Dockerfiles? - -##### Try to run the command `"docker image build [OPTINS] PATH | URL | -"` to build the image using using the project Dockerfiles and run the command `"docker images"` to see images. - -``` -student$ docker images -REPOSITORY TAG IMAGE ID CREATED SIZE - latest 85a65d66ca39 7 seconds ago 795MB -``` - -###### Does all images build as above? - -##### Try running the command `"docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]"` to start the containers using the images just created and run the command `"docker ps -a"` to see containers. - -``` -student$ docker ps -a -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -cc8f5dcf760f "./server" 6 seconds ago Up 6 seconds 0.0.0.0:8080->8080/tcp ascii-art-web -``` - -###### Is the docker containers running as above? - -###### Does the project present no [unused object](https://docs.docker.com/config/pruning/)? - -#### Functional - -##### Enter the forum as a non-registered user. - -###### Are you prohibited to create a post? - -##### Enter the forum as a non-registered user. - -###### Are you prohibited to create a comment? - -##### Enter the forum as a non-registered user and try to like a comment. - -###### Are you prohibited to like a post? - -##### Enter the forum as a non-registered user and try to dislike a comment. - -###### Are you prohibited to dislike a comment? - -##### Enter the forum as a registered user, go to a post and try to create a comment for it. - -###### Were you able to create the comment? - -##### Enter the forum as a registered user, go to a post and try to create an empty comment for it. - -###### Were you prohibited to create the comment? - -##### Enter the forum as a registered user and try to create a post. - -###### Were you able to create a post? - -##### Enter the forum as a registered user and try to create an empty post. - -###### Were you prohibited to create the post? - -##### Try creating a post as a registered user and try to choose several categories for that post. - -###### Were you able to choose several categories for that post? - -##### Try creating a post as a registered user and try to choose a category for that post. - -###### Were you able to choose a category for that post? - -##### Enter the forum as a registered user and try to like or dislike a post. - -###### Can you like or dislike the post? - -##### Enter the forum as a registered user and try to like or dislike a comment. - -###### Can you like or dislike the comment? - -##### Enter the forum as a registered user, try liking and disliking a post and then refresh the page. - -###### Does the number of likes/dislikes change? - -##### Enter the forum as a registered user and try to like and then dislike the same post. - -###### Can you confirm that it is not possible that the post is liked and disliked at the same time? - -##### Enter the forum as a registered user and try seeing all of your created posts. - -###### Does it present the expected posts? - -##### Enter the forum as a registered user and try seeing all of your liked posts. - -###### Does it present the expected posts? - -##### Navigate to a post of your choice and see its comments. - -###### Are all users (registered or not) able to see the number of likes and dislikes that comment has? - -##### Try seeing all posts from one category using the filter. - -###### Are all posts displayed from that category? - -###### Did the server behaved as expected?(did not crashed) - -###### Does the server use the right [HTTP method](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods)? - -###### Are all the pages working? (Absence of 404 page?) - -###### Does the project handle [HTTP status 400 - Bad Requests](https://kinsta.com/knowledgebase/400-bad-request/#causes)? - -###### Does the project handle [HTTP status 500 - Internal Server Errors](https://www.restapitutorial.com/httpstatuscodes.html)? - -###### Are only the allowed packages being used? - -###### As an auditor, is this project up to every standard? If not, why are you failing the project?(Empty Work, Incomplete Work, Invalid compilation, Cheating, Crashing, Leaks) - -#### General - -###### +Does the project present a script to build the images and containers? (using a script to simplify the build) - -#### Basic - -###### +Does the project runs quickly and effectively? (Favoring recursive, no unnecessary data requests, etc) - -###### +Does the code obey the [good practices](https://public.01-edu.org/subjects/good-practices/)? - -###### +Is there a test file for this code? - -#### Social - -###### +Did you learn anything from this project? - -###### +Can it be open-sourced / be used for other sources? - -###### +Would you recommend/nominate this program as an example for the rest of the school? +#### Authentication + +###### Are an email and a password asked for in the resgistration? + +###### Does the project detect if the email or password are wrong? + +###### Does the project detect if the email or user name is already taken in the registration? + +##### Try to register as a new user in the forum. + +###### Is it possible to register? + +##### Try to login with the user you created. + +###### Can you login and have all the rights of a registered user? + +##### Try to login without any credentials. + +###### Does it show a warning message? + +###### Are sessions present in the project? + +##### Try opening two different browsers and login into one of them. Refresh the other browser. + +###### Can you confirm that the browser non logged remains unregistered? + +##### Try opening two different browsers and login into both of them. Refresh both browsers. + +###### Can you confirm that only one of those browsers has an active session? + +##### Try opening two different browsers and login into one of them. Then create a new post or just add a comment. Refresh both browsers. + +###### Does it present the comment/post on both browsers? + +#### SQLite + +###### Does the code contain at least one CREATE query? + +###### Does the code contain at least one INSERT query? + +###### Does the code contain at least one SELECT query? + +##### Try registering in the forum, open the database with `sqlite3 ` and perform a query to select all the users (Example: SELECT \* FROM users;). + +###### Does it present the user you created? + +##### Try creating a post in the forum, open the database with `sqlite3 ` and perform a query to select all the users (Example: SELECT \* FROM post;). + +###### Does it present the post you created? + +##### Try creating a comment in the forum, open the database with `sqlite3 ` and perform a query to select all the users (Example: SELECT \* FROM comment;). + +###### Does it present the comment you created? + +#### Docker + +###### Does the project have Dockerfiles? + +##### Try to run the command `"docker image build [OPTINS] PATH | URL | -"` to build the image using using the project Dockerfiles and run the command `"docker images"` to see images. + +``` +student$ docker images +REPOSITORY TAG IMAGE ID CREATED SIZE + latest 85a65d66ca39 7 seconds ago 795MB +``` + +###### Does all images build as above? + +##### Try running the command `"docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]"` to start the containers using the images just created and run the command `"docker ps -a"` to see containers. + +``` +student$ docker ps -a +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +cc8f5dcf760f "./server" 6 seconds ago Up 6 seconds 0.0.0.0:8080->8080/tcp ascii-art-web +``` + +###### Is the docker containers running as above? + +###### Does the project present no [unused object](https://docs.docker.com/config/pruning/)? + +#### Functional + +##### Enter the forum as a non-registered user. + +###### Are you prohibited to create a post? + +##### Enter the forum as a non-registered user. + +###### Are you prohibited to create a comment? + +##### Enter the forum as a non-registered user and try to like a comment. + +###### Are you prohibited to like a post? + +##### Enter the forum as a non-registered user and try to dislike a comment. + +###### Are you prohibited to dislike a comment? + +##### Enter the forum as a registered user, go to a post and try to create a comment for it. + +###### Were you able to create the comment? + +##### Enter the forum as a registered user, go to a post and try to create an empty comment for it. + +###### Were you prohibited to create the comment? + +##### Enter the forum as a registered user and try to create a post. + +###### Were you able to create a post? + +##### Enter the forum as a registered user and try to create an empty post. + +###### Were you prohibited to create the post? + +##### Try creating a post as a registered user and try to choose several categories for that post. + +###### Were you able to choose several categories for that post? + +##### Try creating a post as a registered user and try to choose a category for that post. + +###### Were you able to choose a category for that post? + +##### Enter the forum as a registered user and try to like or dislike a post. + +###### Can you like or dislike the post? + +##### Enter the forum as a registered user and try to like or dislike a comment. + +###### Can you like or dislike the comment? + +##### Enter the forum as a registered user, try liking and disliking a post and then refresh the page. + +###### Does the number of likes/dislikes change? + +##### Enter the forum as a registered user and try to like and then dislike the same post. + +###### Can you confirm that it is not possible that the post is liked and disliked at the same time? + +##### Enter the forum as a registered user and try seeing all of your created posts. + +###### Does it present the expected posts? + +##### Enter the forum as a registered user and try seeing all of your liked posts. + +###### Does it present the expected posts? + +##### Navigate to a post of your choice and see its comments. + +###### Are all users (registered or not) able to see the number of likes and dislikes that comment has? + +##### Try seeing all posts from one category using the filter. + +###### Are all posts displayed from that category? + +###### Did the server behaved as expected?(did not crashed) + +###### Does the server use the right [HTTP method](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods)? + +###### Are all the pages working? (Absence of 404 page?) + +###### Does the project handle [HTTP status 400 - Bad Requests](https://kinsta.com/knowledgebase/400-bad-request/#causes)? + +###### Does the project handle [HTTP status 500 - Internal Server Errors](https://www.restapitutorial.com/httpstatuscodes.html)? + +###### Are only the allowed packages being used? + +###### As an auditor, is this project up to every standard? If not, why are you failing the project?(Empty Work, Incomplete Work, Invalid compilation, Cheating, Crashing, Leaks) + +#### General + +###### +Does the project present a script to build the images and containers? (using a script to simplify the build) + +#### Basic + +###### +Does the project runs quickly and effectively? (Favoring recursive, no unnecessary data requests, etc) + +###### +Does the code obey the [good practices](https://public.01-edu.org/subjects/good-practices/)? + +###### +Is there a test file for this code? + +#### Social + +###### +Did you learn anything from this project? + +###### +Can it be open-sourced / be used for other sources? + +###### +Would you recommend/nominate this program as an example for the rest of the school? diff --git a/subjects/forum/moderation/audit.md b/subjects/forum/moderation/audit.md index d8cf61fa..9af52e1a 100644 --- a/subjects/forum/moderation/audit.md +++ b/subjects/forum/moderation/audit.md @@ -1,51 +1,51 @@ -#### Functional - -###### Does the forum present the 4 types of users? - -##### Try to enter the forum as a Guest - -###### Can you confirm that the content is only viewable? - -##### Try registering as a normal user. - -###### Can you create posts and comments? - -##### Try registering as a normal user. - -###### Can you like or dislike a post? - -##### Try registering as a moderator. Then login to an admin account and see if the admin user has received the request. - -###### Can you confirm that the admin received the request? - -##### Try accepting a moderator using the admin user. - -###### Has the moderator been promoted? - -##### Try using the moderator to delete a obscene post - -###### Can you confirm that it is possible? - -##### Try using the moderator to report a illegal post - -###### Did the admin user receive the report? - -##### Try using the admin user to answer the moderator request. - -###### Did the moderator receive the answer from the admin? - -##### Try using an admin user to demote a moderator. - -###### Can you confirm that it is possible? - -##### As an auditor, is this project up to every standard? If not, why are you failing the project?(Empty Work, Incomplete Work, Invalid compilation, Cheating, Crashing, Leaks) - -#### General - -###### +Does the project present more then 4 types of users? - -#### Social - -###### +Did you learn anything from this project? - -###### +Would you recommend/nominate this program as an example for the rest of the school? +#### Functional + +###### Does the forum present the 4 types of users? + +##### Try to enter the forum as a Guest + +###### Can you confirm that the content is only viewable? + +##### Try registering as a normal user. + +###### Can you create posts and comments? + +##### Try registering as a normal user. + +###### Can you like or dislike a post? + +##### Try registering as a moderator. Then login to an admin account and see if the admin user has received the request. + +###### Can you confirm that the admin received the request? + +##### Try accepting a moderator using the admin user. + +###### Has the moderator been promoted? + +##### Try using the moderator to delete a obscene post + +###### Can you confirm that it is possible? + +##### Try using the moderator to report a illegal post + +###### Did the admin user receive the report? + +##### Try using the admin user to answer the moderator request. + +###### Did the moderator receive the answer from the admin? + +##### Try using an admin user to demote a moderator. + +###### Can you confirm that it is possible? + +##### As an auditor, is this project up to every standard? If not, why are you failing the project?(Empty Work, Incomplete Work, Invalid compilation, Cheating, Crashing, Leaks) + +#### General + +###### +Does the project present more then 4 types of users? + +#### Social + +###### +Did you learn anything from this project? + +###### +Would you recommend/nominate this program as an example for the rest of the school? diff --git a/subjects/fusion/README.md b/subjects/fusion/README.md index b0c3547c..8bf3e55e 100644 --- a/subjects/fusion/README.md +++ b/subjects/fusion/README.md @@ -9,14 +9,14 @@ With this create a function called `fusion` that: - If the type is an array you must concat it ```js -fusion([1,2], [3,4]) // -> [1,2,3,4] -``` +fusion([1, 2], [3, 4]) // -> [1,2,3,4] +``` - If it is a string you must concatenate with a space ```js fusion('Salem', 'alem') // -> 'Salem alem' -``` +``` - If it is numbers you must added them diff --git a/subjects/get-json/README.md b/subjects/get-json/README.md index e7dfc583..dc4d11c2 100644 --- a/subjects/get-json/README.md +++ b/subjects/get-json/README.md @@ -5,8 +5,9 @@ In this exercise, we will focus on building complex async flows with promises. Create a `getJSON` function that takes 2 parameters: + - `path`, that will be the url called by your function -- `params` *optional*, that will be the search parameters appended to your url +- `params` _optional_, that will be the search parameters appended to your url `getJSON` must construct a valid url with the `path` and stringified `params` and call `fetch` with it. @@ -16,10 +17,10 @@ the response status message. The response body must then be read and parsed from json. The parsed object contains one of those 2 properties: + - `"data"` the actual data to return - `"error"` the error message to throw - ### Notions - [nan-academy.github.io/js-training/examples/promise.js](https://nan-academy.github.io/js-training/examples/promise.js) diff --git a/subjects/get/README.md b/subjects/get/README.md index c8f96575..15e64dcd 100644 --- a/subjects/get/README.md +++ b/subjects/get/README.md @@ -4,13 +4,14 @@ Create the `get` function. It takes 2 arguments: - - `src` an object - - `path` a string -And returns the value at the given string path. +- `src` an object +- `path` a string +And returns the value at the given string path. ### Example: + ```js const src = { nested: { key: 'peekaboo' } } const path = 'nested.key' diff --git a/subjects/good-practices/README.md b/subjects/good-practices/README.md index d30ae6dd..8305db7e 100644 --- a/subjects/good-practices/README.md +++ b/subjects/good-practices/README.md @@ -65,11 +65,11 @@ Removing layout can be done using transform: ```js // bad // this will trigger the layout to recalculate everything and repaint it again -box.style.left = `${x * 100}px`; +box.style.left = `${x * 100}px` // good // this way its possible to lose the layout -box.style.transform = `translateX(${x * 100}px)`; +box.style.transform = `translateX(${x * 100}px)` ``` It is possible to remove painting by adding a layer: diff --git a/subjects/gougle-search/README.md b/subjects/gougle-search/README.md index 622494e6..664e6781 100644 --- a/subjects/gougle-search/README.md +++ b/subjects/gougle-search/README.md @@ -3,6 +3,7 @@ ### Instructions Create the `queryServers` function, that takes 2 arguments: + - `serverName` a string of the name of the server - `q` a string of the query given by the user @@ -13,12 +14,11 @@ Then return the first value of those 2 calls ```js queryServers('pouet', 'hello+world') - // return the fastest of those 2 calls: - // -> getJSON('/pouet?q=hello+world') - // -> getJSON('/pouet_backup?q=hello+world') +// return the fastest of those 2 calls: +// -> getJSON('/pouet?q=hello+world') +// -> getJSON('/pouet_backup?q=hello+world') ``` - Create a `gougleSearch` function that takes a single query argument. It must call `queryServers` in concurrently on 3 servers: `'web'`, `'image'` and `'video'`. @@ -28,13 +28,11 @@ A timeout of 80milliseconds must be set for the whole operation. You must return the value from each servers in an object using a the server name as key. - ### Notions - [devdocs.io/javascript/global_objects/promise/race](https://devdocs.io/javascript/global_objects/promise/race) - [devdocs.io/javascript/global_objects/promise/all](https://devdocs.io/javascript/global_objects/promise/all) - ### Code provided > all code provided will be added to your solution and doesn't need to be submited. diff --git a/subjects/greedy-url/README.md b/subjects/greedy-url/README.md index cbc1c0b5..08abdf9f 100644 --- a/subjects/greedy-url/README.md +++ b/subjects/greedy-url/README.md @@ -10,7 +10,6 @@ Write 3 functions : You can search for greedy quantifiers for help - ### Notions - [github.com/ziishaned/learn-regex](https://github.com/ziishaned/learn-regex) diff --git a/subjects/group-price/README.md b/subjects/group-price/README.md index 166f81d7..7726134d 100644 --- a/subjects/group-price/README.md +++ b/subjects/group-price/README.md @@ -3,10 +3,10 @@ ### Instructions Create a `groupPrice` function, that can find a price in a given string. -The function has to return an array of arrays with the full match of the price ($43.99) +The function has to return an array of arrays with the full match of the price ($43.99) and the groups of that price, the first group(43) and the second group (99). If there is no match the function returns an empty array. Example: - "The price is USD12.31" +"The price is USD12.31" Expected output: - [["USD12.31","12","31"]] \ No newline at end of file +[["USD12.31","12","31"]] diff --git a/subjects/groupie-tracker/audit/README.md b/subjects/groupie-tracker/audit/README.md index 8db79a2c..eb61accc 100644 --- a/subjects/groupie-tracker/audit/README.md +++ b/subjects/groupie-tracker/audit/README.md @@ -1,103 +1,103 @@ -#### Functional - -###### Has the requirement for the allowed packages been respected? (Reminder for this project: (only [standard packages](https://golang.org/pkg/) - -###### Is the data from the artists being used? - -###### Is data from the relations being used? - -##### Try to see the "members" for the artist/band `"Queen"` - -``` - "Freddie Mercury", - "Brian May", - "John Daecon", - "Roger Meddows-Taylor", - "Mike Grose", - "Barry Mitchell", - "Doug Fogie" -``` - -###### Does it present the right "member", as above? - -##### Try to see the "firstAlbum" for the artist/band `"Gorillaz"` - -``` - "26-03-2001" -``` - -###### Does it present the right date for the "firstAlbum", as above? - -##### Try to see the "locations" for the artist/band `"Travis Scott"` - -``` - "santiago-chile" - "sao_paulo-brasil" - "los_angeles-usa" - "houston-usa" - "atlanta-usa" - "new_orleans-usa" - "philadelphia-usa" - "london-uk" - "frauenfeld-switzerland" - "turku-finland" -``` - -###### Does it present the right "locations" as above? - -##### Try to see the ""members"" for the artist/band `"Foo Fighters"`. - -``` - "Dave Grohl" - "Nate Mendel" - "Taylor Hawkins" - "Chris Shiflett" - "Pat Smear" - "Rami Jaffee" -``` - -###### Does it present the right members as above? - -##### Try to trigger an event using some kind of action (ex: Clicking the mouse over a certain element, pressing a key on the keyboard, resizing or closing the browser window, a form being submitted, an error occurring, etc). - -###### Does the event responds as expected? - -###### Did the server behaved as expected?(did not crashed) - -###### Does the server use the right [HTTP method](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods)? - -###### Has the website runned without crashing at anytime? - -###### Are all the pages working? (Absence of 404 page?) - -###### Does the project handle [HTTP status 400 - Bad Requests](https://kinsta.com/knowledgebase/400-bad-request/#causes)? - -###### Does the project handle [HTTP status 500 - Internal Server Errors](https://www.restapitutorial.com/httpstatuscodes.html)? - -###### Is the communication between server and client well established? - -###### Does the server present all the needed handlers and patterns for the http requests? - -###### As an auditor, is this project up to every standard? If not, why are you failing the project?(Empty Work, Incomplete Work, Invalid compilation, Cheating, Crashing, Leaks) - -#### General - -###### +Does the event system run as asynchronous? (usage of go routines and channels) - -###### +Is the site hosted or deployed? Can you access the website through a DNS (Domain Name System)? - -#### Basic - -###### +Does the project runs quickly and effectively? (Favoring recursive, no unnecessary data requests, etc) - -###### +Does the code obey the [good practices](https://public.01-edu.org/subjects/good-practices/)? - -###### +Is there a test file for this code? - -#### Social - -###### +Did you learn anything from this project? - -###### +Can it be open-sourced / be used for other sources? - -###### +Would you recommend/nominate this program as an example for the rest of the school? +#### Functional + +###### Has the requirement for the allowed packages been respected? (Reminder for this project: (only [standard packages](https://golang.org/pkg/) + +###### Is the data from the artists being used? + +###### Is data from the relations being used? + +##### Try to see the "members" for the artist/band `"Queen"` + +``` + "Freddie Mercury", + "Brian May", + "John Daecon", + "Roger Meddows-Taylor", + "Mike Grose", + "Barry Mitchell", + "Doug Fogie" +``` + +###### Does it present the right "member", as above? + +##### Try to see the "firstAlbum" for the artist/band `"Gorillaz"` + +``` + "26-03-2001" +``` + +###### Does it present the right date for the "firstAlbum", as above? + +##### Try to see the "locations" for the artist/band `"Travis Scott"` + +``` + "santiago-chile" + "sao_paulo-brasil" + "los_angeles-usa" + "houston-usa" + "atlanta-usa" + "new_orleans-usa" + "philadelphia-usa" + "london-uk" + "frauenfeld-switzerland" + "turku-finland" +``` + +###### Does it present the right "locations" as above? + +##### Try to see the ""members"" for the artist/band `"Foo Fighters"`. + +``` + "Dave Grohl" + "Nate Mendel" + "Taylor Hawkins" + "Chris Shiflett" + "Pat Smear" + "Rami Jaffee" +``` + +###### Does it present the right members as above? + +##### Try to trigger an event using some kind of action (ex: Clicking the mouse over a certain element, pressing a key on the keyboard, resizing or closing the browser window, a form being submitted, an error occurring, etc). + +###### Does the event responds as expected? + +###### Did the server behaved as expected?(did not crashed) + +###### Does the server use the right [HTTP method](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods)? + +###### Has the website runned without crashing at anytime? + +###### Are all the pages working? (Absence of 404 page?) + +###### Does the project handle [HTTP status 400 - Bad Requests](https://kinsta.com/knowledgebase/400-bad-request/#causes)? + +###### Does the project handle [HTTP status 500 - Internal Server Errors](https://www.restapitutorial.com/httpstatuscodes.html)? + +###### Is the communication between server and client well established? + +###### Does the server present all the needed handlers and patterns for the http requests? + +###### As an auditor, is this project up to every standard? If not, why are you failing the project?(Empty Work, Incomplete Work, Invalid compilation, Cheating, Crashing, Leaks) + +#### General + +###### +Does the event system run as asynchronous? (usage of go routines and channels) + +###### +Is the site hosted or deployed? Can you access the website through a DNS (Domain Name System)? + +#### Basic + +###### +Does the project runs quickly and effectively? (Favoring recursive, no unnecessary data requests, etc) + +###### +Does the code obey the [good practices](https://public.01-edu.org/subjects/good-practices/)? + +###### +Is there a test file for this code? + +#### Social + +###### +Did you learn anything from this project? + +###### +Can it be open-sourced / be used for other sources? + +###### +Would you recommend/nominate this program as an example for the rest of the school? diff --git a/subjects/has-city/README.md b/subjects/has-city/README.md index 75092f67..dbbf0add 100644 --- a/subjects/has-city/README.md +++ b/subjects/has-city/README.md @@ -4,7 +4,7 @@ Create a function `hasCity` that takes a country and an array of cities of that country and it returns a new function. \ -The new function takes a city parameter which returns +The new function takes a city parameter which returns whether a city is part of that country or not. If it is, it should be returned ` is a city from `, otherwise diff --git a/subjects/hello_rust/README.md b/subjects/hello_rust/README.md index ec261a15..5f986ee5 100644 --- a/subjects/hello_rust/README.md +++ b/subjects/hello_rust/README.md @@ -47,10 +47,12 @@ Once this is done the git clone command should work now. Once you repository is cloned, create and edit the .gitignore file in your repository and add this line: + ```console **/target/* ``` -The goal of this setup is to avoid any binary files to be pushed in your gitea accidentaly. + +The goal of this setup is to avoid any binary files to be pushed in your gitea accidentaly. Do not forget to push it to your repository. @@ -89,7 +91,8 @@ You can test it with the below command inside the folder of your exercise. ```console cargo run ``` -This command will compile, and run the binary. + +This command will compile, and run the binary. #### 4- return your solution diff --git a/subjects/index-of/README.md b/subjects/index-of/README.md index 89c7b78a..1bc35dda 100644 --- a/subjects/index-of/README.md +++ b/subjects/index-of/README.md @@ -3,24 +3,23 @@ ### Instructions Create 3 functions: + - `indexOf` that returns the index of the first occurence of a value - `lastIndexOf` that returns the index of the last occurence of a value - `includes` that returns true if the value was found in the array > If a value is not found, the returned index is -1 -> functions should have an array element as first argument, +> functions should have an array element as first argument, > both `indexOf` and `lastIndexOf` take an additional `fromIndex` argument > that allows you to begin searching from a specific index. - ### Notions - [devdocs.io/javascript/global_objects/array/indexof](https://devdocs.io/javascript/global_objects/array/indexof) - [devdocs.io/javascript/global_objects/array/lastindexof](https://devdocs.io/javascript/global_objects/array/lastindexof) - [devdocs.io/javascript/global_objects/array/includes](https://devdocs.io/javascript/global_objects/array/includes) - ### Code provided > all code provided will be added to your solution and doesn't need to be submited. diff --git a/subjects/ion-out/README.md b/subjects/ion-out/README.md index 3780be46..41221457 100644 --- a/subjects/ion-out/README.md +++ b/subjects/ion-out/README.md @@ -5,7 +5,6 @@ Make a function `ionOut` that receives a string and returns an array with every word containing 'ion' following a t, without the 'ion'. - ### Notions - [github.com/ziishaned/learn-regex#4-lookarounds](https://github.com/ziishaned/learn-regex#4-lookarounds) diff --git a/subjects/is-winner/README.md b/subjects/is-winner/README.md index 0ad8bd53..6fc33b8a 100644 --- a/subjects/is-winner/README.md +++ b/subjects/is-winner/README.md @@ -9,17 +9,16 @@ return a resolved Promise with the string: - ` + ' is not what we are looking for because of the continent'`, if the country passed in `isWinner` is not from the european -continent + continent - ` + ' is not what we are looking for because of the number of times it was champion'`, if the country passed in `isWinner` was champion -less than 3 times + less than 3 times - ` + ' won the FIFA World Cup in ' + + 'winning by ' + `, otherwise. If the country was champion in more than one year, the years should be displayed like : '1000, 1004, 1008'. The same goes for the results - ### Code provided > all code provided will be added to your solution and doesn't need to be submited. diff --git a/subjects/is/README.md b/subjects/is/README.md index 488baf26..51ae1503 100644 --- a/subjects/is/README.md +++ b/subjects/is/README.md @@ -3,6 +3,7 @@ ### Instructions Add new function properties to the object `is` to check a value type + - `is.num` value is a number - `is.nan` value is NaN - `is.str` value is a string @@ -15,7 +16,6 @@ Add new function properties to the object `is` to check a value type - `is.truthy` value is truthy - `is.falsy` value is falsy - ### Notions - [nan-academy.github.io/js-training/examples/primitive-and-operators](https://nan-academy.github.io/js-training/examples/primitive-and-operators.js) @@ -23,7 +23,6 @@ Add new function properties to the object `is` to check a value type - [developer.mozilla.org/en-US/docs/Glossary/Truthy](https://developer.mozilla.org/en-US/docs/Glossary/Truthy) - [developer.mozilla.org/en-US/docs/Glossary/Falsy](https://developer.mozilla.org/en-US/docs/Glossary/Falsy) - ### Code provided > all code provided will be added to your solution and doesn't need to be submited. diff --git a/subjects/its-a-match/README.md b/subjects/its-a-match/README.md index 528e5824..d91619d5 100644 --- a/subjects/its-a-match/README.md +++ b/subjects/its-a-match/README.md @@ -15,7 +15,6 @@ Create 4 regular expression in variables: - `beginEnd` matches with the expression 'hi', only when it is in the beginning and the end. - ### Notions - [github.com/ziishaned/learn-regex#28-anchors](https://github.com/ziishaned/learn-regex#28-anchors) diff --git a/subjects/keep-cut/README.md b/subjects/keep-cut/README.md index 6fbb9d0d..606d4d52 100644 --- a/subjects/keep-cut/README.md +++ b/subjects/keep-cut/README.md @@ -20,7 +20,6 @@ and return the string only keeping the 2 last characters. Create a `keepFirstLast` function that takes a string as parameter and only keep 2 first characters and 2 last characters. - ### Notions - [devdocs.io/javascript/global_objects/array/slice](https://devdocs.io/javascript/global_objects/array/slice) diff --git a/subjects/keep-trying-or-giveup/README.md b/subjects/keep-trying-or-giveup/README.md index 165a37b0..1955f561 100644 --- a/subjects/keep-trying-or-giveup/README.md +++ b/subjects/keep-trying-or-giveup/README.md @@ -3,23 +3,25 @@ ### Instructions Create a `retry` function, that takes 2 arguments + - a `count` indicates maximum amount of retries - an async `callback`, that will be called on every try -`retry` returns a function that calls and returns value from `callback` -function passing its arguments and catches errors. If error is caught it -should return the `callback` function with catch. If number of errors +`retry` returns a function that calls and returns value from `callback` +function passing its arguments and catches errors. If error is caught it +should return the `callback` function with catch. If number of errors exceeds `count` then throw an `Error`. > for count of 3, the function will be called at most 4 times: > the initial call + 3 retries. Create a `timeout` function, that takes 2 arguments + - a `delay` indicates maximum wait time - an async `callback`, that will be called -`timeout` returns a function either that calls and returns value from `callback` -function passing its arguments or returns `Error('timeout')` if `callback` didn't +`timeout` returns a function either that calls and returns value from `callback` +function passing its arguments or returns `Error('timeout')` if `callback` didn't resolve before `delay` time has reached. ### Notions diff --git a/subjects/last-first-kiss/README.md b/subjects/last-first-kiss/README.md index 42ca2af1..c3d493e9 100644 --- a/subjects/last-first-kiss/README.md +++ b/subjects/last-first-kiss/README.md @@ -13,7 +13,6 @@ Create 3 functions: - a `kiss` function that returns an array of 2 elements the last and the first element, in that order - ### Notions - [nan-academy.github.io/js-training/examples/data-structures.js](https://nan-academy.github.io/js-training/examples/data-structures.js) diff --git a/subjects/letter-space-number/README.md b/subjects/letter-space-number/README.md index 1795868e..4c6e1ebc 100644 --- a/subjects/letter-space-number/README.md +++ b/subjects/letter-space-number/README.md @@ -6,7 +6,6 @@ Make a function called `letterSpaceNumber` that receives a string and returns an array with every instance of a letter, followed by a space, followed by a number only if that number has only one digit and is not followed by any letter. - ### Notions - [github.com/ziishaned/learn-regex#3-shorthand-character-sets](https://github.com/ziishaned/learn-regex#3-shorthand-character-sets) diff --git a/subjects/long-words/README.md b/subjects/long-words/README.md index a15fa87e..340b1d45 100644 --- a/subjects/long-words/README.md +++ b/subjects/long-words/README.md @@ -5,13 +5,13 @@ Create three functions that take as argument an array each: - `longWords` that returns true if every element of the array is a string of at -least 5 characters. + least 5 characters. - `oneLongWord` that returns true if at least one element of the array is a -string of at least 10 characters. + string of at least 10 characters. - `noLongWords` that returns true if there are no elements in the array that are -a string with at least 7 characters. + a string with at least 7 characters. ### Notions diff --git a/subjects/make-your-game/different-maps/README.md b/subjects/make-your-game/different-maps/README.md index cc6857c8..5fd7ba48 100644 --- a/subjects/make-your-game/different-maps/README.md +++ b/subjects/make-your-game/different-maps/README.md @@ -16,17 +16,17 @@ To store efficiently the **tile images**, you should group them all in a single To generate a specific tile image, you must select a section of this big image and render it into the game. This will help with performance and memory usage. ----- +--- If you plan to use scrolling tile maps it can be pretty costly on [rendering performance](https://developer.mozilla.org/en-US/docs/Games/Techniques/Tilemaps#Performance). So you must take special caution if you do so. One of the best ways is to render only the tiles that will be visible to the player using opacity or other methods. Sometime this is not enough. ----- +--- A tile map can be mapped to a logical grid, helping with the map display and the game logic. Here is an example of a tile map data structure: ```js let map = { - columns: 5, + columns: 5, rows: 5, size: 25, tiles: [ diff --git a/subjects/manipulate-entries/README.md b/subjects/manipulate-entries/README.md index 541fabb7..d5d85d37 100644 --- a/subjects/manipulate-entries/README.md +++ b/subjects/manipulate-entries/README.md @@ -20,7 +20,6 @@ Create 3 other functions that use your previously create functions: What the functions will take as argument is an object cart which contains the food rations. All the nutrition in the nutritionDB object are measured per 100 grams. - ### Notions - [devdocs.io/javascript/global_objects/array/filter](https://devdocs.io/javascript/global_objects/array/filter) @@ -29,7 +28,6 @@ What the functions will take as argument is an object cart which contains the fo - [devdocs.io/javascript/global_objects/object/entries](https://devdocs.io/javascript/global_objects/object/entries) - [devdocs.io/javascript/global_objects/object/fromentries](https://devdocs.io/javascript/global_objects/object/fromentries) - ### Code provided > all code provided will be added to your solution and doesn't need to be submited. diff --git a/subjects/manipulate-keys/README.md b/subjects/manipulate-keys/README.md index 8c6fd192..1b32ced0 100644 --- a/subjects/manipulate-keys/README.md +++ b/subjects/manipulate-keys/README.md @@ -5,11 +5,11 @@ I do not want onions. I want oranges!!! Create 3 functions that works like the `.filter`, `.map` and `.reduce` array method but for the keys of your grocery cart. + - `filterKeys` filters the name of the items you have. - `mapKeys` changes the name of the items you have. - `reduceKeys` reducing you grocery cart. - ### Notions - [devdocs.io/javascript/global_objects/array/filter](https://devdocs.io/javascript/global_objects/array/filter) @@ -18,7 +18,6 @@ Create 3 functions that works like the `.filter`, `.map` and `.reduce` array met - [devdocs.io/javascript/global_objects/object/entries](https://devdocs.io/javascript/global_objects/object/entries) - [devdocs.io/javascript/global_objects/object/fromentries](https://devdocs.io/javascript/global_objects/object/fromentries) - ### Code provided > all code provided will be added to your solution and doesn't need to be submited. diff --git a/subjects/manipulate-values/README.md b/subjects/manipulate-values/README.md index ffcb5e30..c9897422 100644 --- a/subjects/manipulate-values/README.md +++ b/subjects/manipulate-values/README.md @@ -8,6 +8,7 @@ You have a grocery cart with some items you need. The items will have a `key` being the name and a `value` that is the amount in grams. Create 3 functions that works like the `.filter`, `.map` and `.reduce` array method but for the values of your grocery cart. + - `filterValues` filters the values of your grocery cart. - `mapValues` changes the values of your grocery cart. - `reduceValues` that will reduce your grocery cart. @@ -22,7 +23,6 @@ You will have a small database to help you with the groceries. - [devdocs.io/javascript/global_objects/object/entries](https://devdocs.io/javascript/global_objects/object/entries) - [devdocs.io/javascript/global_objects/object/fromentries](https://devdocs.io/javascript/global_objects/object/fromentries) - ### Code provided > all code provided will be added to your solution and doesn't need to be submited. diff --git a/subjects/mapper/README.md b/subjects/mapper/README.md index 261e8425..9d91ef04 100644 --- a/subjects/mapper/README.md +++ b/subjects/mapper/README.md @@ -3,10 +3,10 @@ ### Instructions - Create a `map` function that takes an array as first argument, a function as second, -and that works like the method .map + and that works like the method .map - Create a `flatMap` function that takes an array as first argument, a function as second, -and that works like the method .flatMap + and that works like the method .flatMap ### Notions diff --git a/subjects/match-cron/README.md b/subjects/match-cron/README.md index 53d20205..ebd835ca 100644 --- a/subjects/match-cron/README.md +++ b/subjects/match-cron/README.md @@ -25,7 +25,6 @@ matchCron('9 * * * *', new Date('2020-05-30 19:21:00')) // -> false // +--------- Minute (range: 0-59) ``` - ### Notions - [crontab.guru](https://crontab.guru/) diff --git a/subjects/matrix_transposition/README.md b/subjects/matrix_transposition/README.md index 5c384773..b99b66df 100644 --- a/subjects/matrix_transposition/README.md +++ b/subjects/matrix_transposition/README.md @@ -8,7 +8,7 @@ - Note: - - The transpose of a matrix `A` is the matrix `A'` where `A'`'s columns are `A`'s row and the rows are the columns: + - The transpose of a matrix `A` is the matrix `A'` where `A'`'s columns are `A`'s row and the rows are the columns: Example: diff --git a/subjects/min-max/README.md b/subjects/min-max/README.md index fe371f76..9e87c908 100644 --- a/subjects/min-max/README.md +++ b/subjects/min-max/README.md @@ -12,7 +12,6 @@ and returns the lowest > You must not just use `Math.min`, make your own. - ### Notions - [nan-academy.github.io/js-training/examples/functions](https://nan-academy.github.io/js-training/examples/functions.js) @@ -20,7 +19,6 @@ and returns the lowest - [devdocs.io/javascript/global_objects/math/min](https://devdocs.io/javascript/global_objects/math/min) - [devdocs.io/javascript/global_objects/math/max](https://devdocs.io/javascript/global_objects/math/max) - ### Code provided > all code provided will be added to your solution and doesn't need to be submited. diff --git a/subjects/more-or-less/README.md b/subjects/more-or-less/README.md index edd0f67d..f45482e9 100644 --- a/subjects/more-or-less/README.md +++ b/subjects/more-or-less/README.md @@ -3,12 +3,12 @@ ### Instructions Create 4 functions + - `more` that takes 1 argument and add 1 to it - `less` that takes 1 argument and substract 1 to it - `add` that takes 2 arguments and add them - `sub` that takes 2 arguments and substract them - ### Notions - [nan-academy.github.io/js-training/examples/functions](https://nan-academy.github.io/js-training/examples/functions.js) diff --git a/subjects/mousevr/README.md b/subjects/mousevr/README.md index 94025954..767688d1 100644 --- a/subjects/mousevr/README.md +++ b/subjects/mousevr/README.md @@ -1,55 +1,55 @@ -## MouseVR - -On this one you will learn the basics of interaction using objects, learn the use of blueprint interface and learn stereoscopic sphere texturing. How, you ask? By creating a game in which you will be in a city and will be looking for interaction points in order to travel through the map. And do not to look straight at the end of the subject. - -### Objectives - -You will have to create a game that uses the mouse as if it were the player head in a VR game. You will navigate through the map using the mouse, focusing in certain points in order to "teleport" to that location. - -### Instructions - -After creating a blank project and importing the content from the provided folder, you should focus on the following points to accomplish the previous explained features: - -- Use Scene Capture to take a 360 degrees screenshot, that you will need later on every targeted location on the map. - - - With this, you can create a new material and apply it to a sphere. - - Find a way to display the material inside and outside the sphere to create a VR world illusion. - -- Create a pawn that can move his head using the mouse inside the spheres. - -- In order to play the game, the player only needs to use the mouse and never the keyboard. - -- Create your own interaction point to indicate where the player is heading. - - - The design of the interaction point is up to you, but it should display a text underneath it, indicating where this interaction point is going to lead the player to (burger store, metro, park, etc...). - - There should always be an interaction point visible to the player, somewhere in the world that lets the player quit, no matter where the player is in the map. - -- There should be no brutal transitions in the teleportation phase. - -- Use an Interface Blueprint to handle interactions: a Blur, a Focus and an Active interaction. - -- Use a SphereTraceByChannel node to be able to look at objects. - - - Use casting with your interaction point to know which object you are looking at. - -- Use an interaction timer to set how many times should the player look at an interaction point in order to travel to the next space (like on the video example). In other words, the player should look for a while at the interaction point before getting teleported to the next scene. - -- Except for the interaction point and the spheres containing the panoramic images, no 3D objects are allowed on the map. - -After downloading and unzipping this [file](https://assets.01-edu.org/Unreal-Engine-Piscine/MouseVR.zip), you can copy its content to your project Content folder. - -When finished, your project should look like the [“Expected Result” video](https://youtu.be/Tor1Q10NG_Q). - -> Do not forget to zip up the project compile and save everything for peer correction. - -### Bonus - -The following are the bonuses for this project: - -- Create a circle, around the interaction points, that indicates when the interaction point will be triggered. -- Animate the interaction points. -- Add looping background music during the experience. - -[Here](https://www.youtube.com/playlist?list=PLHyAJ_GrRtf9sxZqgfPVM06PrLk8_CWA-) you can find an instructional playlist on Unreal Engine. - -Ah! I made you look. +## MouseVR + +On this one you will learn the basics of interaction using objects, learn the use of blueprint interface and learn stereoscopic sphere texturing. How, you ask? By creating a game in which you will be in a city and will be looking for interaction points in order to travel through the map. And do not to look straight at the end of the subject. + +### Objectives + +You will have to create a game that uses the mouse as if it were the player head in a VR game. You will navigate through the map using the mouse, focusing in certain points in order to "teleport" to that location. + +### Instructions + +After creating a blank project and importing the content from the provided folder, you should focus on the following points to accomplish the previous explained features: + +- Use Scene Capture to take a 360 degrees screenshot, that you will need later on every targeted location on the map. + + - With this, you can create a new material and apply it to a sphere. + - Find a way to display the material inside and outside the sphere to create a VR world illusion. + +- Create a pawn that can move his head using the mouse inside the spheres. + +- In order to play the game, the player only needs to use the mouse and never the keyboard. + +- Create your own interaction point to indicate where the player is heading. + + - The design of the interaction point is up to you, but it should display a text underneath it, indicating where this interaction point is going to lead the player to (burger store, metro, park, etc...). + - There should always be an interaction point visible to the player, somewhere in the world that lets the player quit, no matter where the player is in the map. + +- There should be no brutal transitions in the teleportation phase. + +- Use an Interface Blueprint to handle interactions: a Blur, a Focus and an Active interaction. + +- Use a SphereTraceByChannel node to be able to look at objects. + + - Use casting with your interaction point to know which object you are looking at. + +- Use an interaction timer to set how many times should the player look at an interaction point in order to travel to the next space (like on the video example). In other words, the player should look for a while at the interaction point before getting teleported to the next scene. + +- Except for the interaction point and the spheres containing the panoramic images, no 3D objects are allowed on the map. + +After downloading and unzipping this [file](https://assets.01-edu.org/Unreal-Engine-Piscine/MouseVR.zip), you can copy its content to your project Content folder. + +When finished, your project should look like the [“Expected Result” video](https://youtu.be/Tor1Q10NG_Q). + +> Do not forget to zip up the project compile and save everything for peer correction. + +### Bonus + +The following are the bonuses for this project: + +- Create a circle, around the interaction points, that indicates when the interaction point will be triggered. +- Animate the interaction points. +- Add looping background music during the experience. + +[Here](https://www.youtube.com/playlist?list=PLHyAJ_GrRtf9sxZqgfPVM06PrLk8_CWA-) you can find an instructional playlist on Unreal Engine. + +Ah! I made you look. diff --git a/subjects/mousevr/audit/README.md b/subjects/mousevr/audit/README.md index dd61a67e..f471ff12 100644 --- a/subjects/mousevr/audit/README.md +++ b/subjects/mousevr/audit/README.md @@ -1,31 +1,31 @@ -#### Functional - -###### When you move the mouse does the "head" of the player move accordingly? - -###### Can we navigate throughout the map using interaction points? - -###### Does every interaction point contain a text underneath it indicating where that interaction point is going to lead you? - -###### Do all interaction points led you to the location they tell you? - -###### Can we play the whole game without pressing any key on the keyboard? - -###### Is a "Quit Game" interaction point always available, so that it is possible to quit the game at any point of the game? - -###### Are all teleportation visible to the player smooth and non brutal? - -###### Is a sphere being used to cast instead of a single ray, in other words, did the student used a SphereTraceByChannel node? - -###### Is an Interface Blueprint being used to handle the different actions on the interaction point (Blur,Focus and Active)? - -###### Do you need to stare for a little at an interaction point to be able to teleport to a different scene? - -###### Except for the interaction point and the spheres containing the panoramic images, are there any 3D objects on the map? - -#### Bonus - -###### Is a circle that indicates when the interaction point will be triggered present? - -###### Is the interaction point animated? - -###### Is there looping background music during the game? +#### Functional + +###### When you move the mouse does the "head" of the player move accordingly? + +###### Can we navigate throughout the map using interaction points? + +###### Does every interaction point contain a text underneath it indicating where that interaction point is going to lead you? + +###### Do all interaction points led you to the location they tell you? + +###### Can we play the whole game without pressing any key on the keyboard? + +###### Is a "Quit Game" interaction point always available, so that it is possible to quit the game at any point of the game? + +###### Are all teleportation visible to the player smooth and non brutal? + +###### Is a sphere being used to cast instead of a single ray, in other words, did the student used a SphereTraceByChannel node? + +###### Is an Interface Blueprint being used to handle the different actions on the interaction point (Blur,Focus and Active)? + +###### Do you need to stare for a little at an interaction point to be able to teleport to a different scene? + +###### Except for the interaction point and the spheres containing the panoramic images, are there any 3D objects on the map? + +#### Bonus + +###### Is a circle that indicates when the interaction point will be triggered present? + +###### Is the interaction point animated? + +###### Is there looping background music during the game? diff --git a/subjects/multiplayer_fps/README.md b/subjects/multiplayer_fps/README.md index 63d654ff..3a07437c 100644 --- a/subjects/multiplayer_fps/README.md +++ b/subjects/multiplayer_fps/README.md @@ -22,7 +22,6 @@ Write your own version of the game [maze wars](https://www.youtube.com/watch?v=5 - Use the UDP protocol to enable the communication between the clients and the server. - #### You have to develop the game server and also a client application: - The server must accept as much connections as possible (the minimum should be 10). @@ -34,7 +33,7 @@ Write your own version of the game [maze wars](https://www.youtube.com/watch?v=5 - After this, it should ask also for a name. - Example: - Assuming that you can to connect to a server in your same computer. + Assuming that you can to connect to a server in your same computer. ```console path/to/client $ cargo run diff --git a/subjects/mutability/README.md b/subjects/mutability/README.md index 022c29d2..e3e96120 100644 --- a/subjects/mutability/README.md +++ b/subjects/mutability/README.md @@ -10,14 +10,12 @@ Create a new variable `samePerson` with the same value as `person`. Increase by one the property age of `person` and set his country to `'FR'`. - ### Notions - [nan-academy.github.io/js-training/examples/set](https://nan-academy.github.io/js-training/examples/set.js) - [nan-academy.github.io/js-training/examples/get](https://nan-academy.github.io/js-training/examples/get.js) - [nan-academy.github.io/js-training/examples/data-structures](https://nan-academy.github.io/js-training/examples/data-structures.js) - ### Code provided > all code provided will be added to your solution and doesn't need to be submited. diff --git a/subjects/nasa/README.md b/subjects/nasa/README.md index 34acdec5..46f19146 100644 --- a/subjects/nasa/README.md +++ b/subjects/nasa/README.md @@ -2,13 +2,13 @@ ### Instructions -Create a `nasa` function that takes a number `N` as a parameter and returns +Create a `nasa` function that takes a number `N` as a parameter and returns a string with all numbers from 1 to the `N` separated by whitespace, with three exceptions: + - For numbers divisible by 3, add 'NA'. - For numbers divisible by 5, add 'SA'. - For the number that are divisible by 3 and 5 add 'NASA'. - ### Notions - [nan-academy.github.io/js-training/examples/loops](https://nan-academy.github.io/js-training/examples/loops.js) diff --git a/subjects/nascaronlinealpha/README.md b/subjects/nascaronlinealpha/README.md index ddaab27c..8de4ff2a 100644 --- a/subjects/nascaronlinealpha/README.md +++ b/subjects/nascaronlinealpha/README.md @@ -1,69 +1,69 @@ -## NascarOnlineAlpha - -In this exercise, you will create an online racing game. The player will be able to race with another player to see who is faster. When you feel stuck remember that once, a man could not work out how to fasten his seatbelt. But then it suddenly clicked! - -### Objectives - -You will have to create a car game using an already existing project that you will have to download. - -You will learn to analyze the code and understand what the developer did before you, and adapt it to extend the gameplay to continue the development of the game. - -### Instructions - -In order to start the project, you will have to open the Epic Games Launcher, switch to the Learn tab and search for the Vehicle Game project. Once you find it and download it, you can create a new Vehicle Game project and that will be the base of your project. - -As the game is done, you only will need to make the multiplayer part of it. Basically, these are the requirements: - -- As soon as the game starts it should ask for a name to assign to the player. - -- Create a main menu map where the player can choose either to Host/Join a session. - - - If the player chooses to Host, the game should ask you for a server name, number of players allowed on the server, whether the player wants to host via LAN or ONLINE, and a host button that launches the player into a multiplayer Lobby. - - - The maximum number of players should be 4 and the minimum should be 2. - - If the server name is not provided, the player can not yet host the server and a warning message should appear requesting to insert a name for the server. - - - If you press the Join button, the game should display, a list of available sessions which the player can join. Also a refresh button should be available to search for sessions again. - - - A button with the server name in it should appear for each session found. By clicking on it, the player is directly transferred to the host lobby. - - The option to do the search for LAN sessions or ONLINE sessions must be presented to the player. - - - In the start menu, there should also be a button that enables the player to quit the game. - - - In every other menu, there should be a button that allows the player to go back. - -- On the host lobby, before the creator of the session starts the game, the player should be able to drive around the map. - - - If you are not the host, a widget should pop on the screen saying “Waiting for the host to start” and if you are the host it should be a “Click START to start” widget. Therefore the host of the server should have a Start button available. - -- Once the game started, all players spawn on the map and the race starts after a countdown (A little delay may occur for the client but it quickly goes back to normal so do not worry about this possible issue). - -- The first to finish the race gets a message on the screen displaying “YOU WIN”. The rest of the players get a “YOU LOSE” instead. - -- Once the player crosses the finish line, the player input is disabled (the player can no longer move). - -- Use the provided loading screen to hide all screen/player switching between maps and screens. - -As for the multiplayer aspect, here are some hints that you will have to follow: - -- Use the Advanced Session plugin to have more host options when creating and searching for a session. - -- Use replicated Custom Events to share information. - -- Use Game Instance to handle all widgets navigation. - -- Use Game State and replicated variables to know who is the winner of the game. If you have more info to share for all players on the game, do it through Game State using server replication. - -- Use "Has Authority" checks to know if it is the server or the client that is trying to execute an action. - -When finished, your project should look like the [“Expected Result” video](https://youtu.be/s56rio0bw0U). - -> Do not forget to zip up the project compile and save everything for peer correction. - -### Bonus - -As bonus for this exercise you can: - -- create a restart race button when all players crossed the finish line. -- display the winner on every player screen when crossing the finish line. -- make players join a server by IP address, from another LAN network (two players connected to different networks for example). +## NascarOnlineAlpha + +In this exercise, you will create an online racing game. The player will be able to race with another player to see who is faster. When you feel stuck remember that once, a man could not work out how to fasten his seatbelt. But then it suddenly clicked! + +### Objectives + +You will have to create a car game using an already existing project that you will have to download. + +You will learn to analyze the code and understand what the developer did before you, and adapt it to extend the gameplay to continue the development of the game. + +### Instructions + +In order to start the project, you will have to open the Epic Games Launcher, switch to the Learn tab and search for the Vehicle Game project. Once you find it and download it, you can create a new Vehicle Game project and that will be the base of your project. + +As the game is done, you only will need to make the multiplayer part of it. Basically, these are the requirements: + +- As soon as the game starts it should ask for a name to assign to the player. + +- Create a main menu map where the player can choose either to Host/Join a session. + + - If the player chooses to Host, the game should ask you for a server name, number of players allowed on the server, whether the player wants to host via LAN or ONLINE, and a host button that launches the player into a multiplayer Lobby. + + - The maximum number of players should be 4 and the minimum should be 2. + - If the server name is not provided, the player can not yet host the server and a warning message should appear requesting to insert a name for the server. + + - If you press the Join button, the game should display, a list of available sessions which the player can join. Also a refresh button should be available to search for sessions again. + + - A button with the server name in it should appear for each session found. By clicking on it, the player is directly transferred to the host lobby. + - The option to do the search for LAN sessions or ONLINE sessions must be presented to the player. + + - In the start menu, there should also be a button that enables the player to quit the game. + + - In every other menu, there should be a button that allows the player to go back. + +- On the host lobby, before the creator of the session starts the game, the player should be able to drive around the map. + + - If you are not the host, a widget should pop on the screen saying “Waiting for the host to start” and if you are the host it should be a “Click START to start” widget. Therefore the host of the server should have a Start button available. + +- Once the game started, all players spawn on the map and the race starts after a countdown (A little delay may occur for the client but it quickly goes back to normal so do not worry about this possible issue). + +- The first to finish the race gets a message on the screen displaying “YOU WIN”. The rest of the players get a “YOU LOSE” instead. + +- Once the player crosses the finish line, the player input is disabled (the player can no longer move). + +- Use the provided loading screen to hide all screen/player switching between maps and screens. + +As for the multiplayer aspect, here are some hints that you will have to follow: + +- Use the Advanced Session plugin to have more host options when creating and searching for a session. + +- Use replicated Custom Events to share information. + +- Use Game Instance to handle all widgets navigation. + +- Use Game State and replicated variables to know who is the winner of the game. If you have more info to share for all players on the game, do it through Game State using server replication. + +- Use "Has Authority" checks to know if it is the server or the client that is trying to execute an action. + +When finished, your project should look like the [“Expected Result” video](https://youtu.be/s56rio0bw0U). + +> Do not forget to zip up the project compile and save everything for peer correction. + +### Bonus + +As bonus for this exercise you can: + +- create a restart race button when all players crossed the finish line. +- display the winner on every player screen when crossing the finish line. +- make players join a server by IP address, from another LAN network (two players connected to different networks for example). diff --git a/subjects/neuron/README.md b/subjects/neuron/README.md index b58afe51..158b1923 100644 --- a/subjects/neuron/README.md +++ b/subjects/neuron/README.md @@ -2,7 +2,7 @@ ### Instructions -Create a function called `neuron` that allows your AI/bot to learn how to data shape a given +Create a function called `neuron` that allows your AI/bot to learn how to data shape a given dataset into an object so that it can better navigate the data. ### Example diff --git a/subjects/ownership/README.md b/subjects/ownership/README.md index 94afff78..828ec180 100644 --- a/subjects/ownership/README.md +++ b/subjects/ownership/README.md @@ -30,7 +30,7 @@ fn main() { let s3 = String::from("CamelCase"); let s4 = String::from("just"); - println!("first_subword({}) = {}", s1.clone(), first_subword(s1)); + println!("first_subword({}) = {}", s1.clone(), first_subword(s1)); println!("first_subword({}) = {}", s2.clone(), first_subword(s2)); println!("first_subword({}) = {}", s3.clone(), first_subword(s3)); println!("first_subword({}) = {}", s4.clone(), first_subword(s4)); diff --git a/subjects/primitives/README.md b/subjects/primitives/README.md index 0e61ee6b..4c838fd1 100644 --- a/subjects/primitives/README.md +++ b/subjects/primitives/README.md @@ -3,12 +3,12 @@ ### Instructions Create a constant variable for each primitives: + - `str` for `String` - `num` for `Number` - `bool` for `Boolean` - `undef` for `undefined` - ### Notions - [nan-academy.github.io/js-training/examples/primitive-and-operators](https://nan-academy.github.io/js-training/examples/primitive-and-operators.js) diff --git a/subjects/pronoun/README.md b/subjects/pronoun/README.md index 7aba9a46..0e47aa92 100644 --- a/subjects/pronoun/README.md +++ b/subjects/pronoun/README.md @@ -2,8 +2,8 @@ ### Instructions -Create a function called `pronoun` that has a string as parameter. This function returns an object -that will have all the pronouns, present in the string, as keys. Each key will have a sub object with the +Create a function called `pronoun` that has a string as parameter. This function returns an object +that will have all the pronouns, present in the string, as keys. Each key will have a sub object with the first word after each of the pronouns found in the string. Also, a property `count` must be added, to the sub object, with the amount of occurrences of the pronoun. @@ -21,4 +21,4 @@ const ex = 'If he you want to buy something you have to pay.' you: { word: [ 'want', 'have' ], count: 2 } } -``` \ No newline at end of file +``` diff --git a/subjects/pyramid/README.md b/subjects/pyramid/README.md index 8231d3a1..47b738f7 100644 --- a/subjects/pyramid/README.md +++ b/subjects/pyramid/README.md @@ -19,6 +19,7 @@ Just like triangle ******* ********* ``` + > No new line in last line ### Notions diff --git a/subjects/quad/README.md b/subjects/quad/README.md index 51bec432..0bea2327 100644 --- a/subjects/quad/README.md +++ b/subjects/quad/README.md @@ -112,7 +112,7 @@ o student@ubuntu:~/quad/test$ ``` ----- +--- ## quadB @@ -226,7 +226,7 @@ student@ubuntu:~/quad/test$ ./test student@ubuntu:~/quad/test$ ``` ----- +--- ## quadC @@ -340,7 +340,7 @@ C student@ubuntu:~/quad/test$ ``` ----- +--- ## quadD @@ -454,7 +454,7 @@ A student@ubuntu:~/quad/test$ ``` ----- +--- ## quadE diff --git a/subjects/quantifiers/README.md b/subjects/quantifiers/README.md index ef676d7a..08112474 100644 --- a/subjects/quantifiers/README.md +++ b/subjects/quantifiers/README.md @@ -5,21 +5,19 @@ Create three functions that receive an array and a function each: - `every` that returns true if every element of the array respects the -condition of the received function and false otherwise. + condition of the received function and false otherwise. - `some` that returns true if at least one element of the array respects the -condition of the received function and false otherwise. + condition of the received function and false otherwise. - `none` that returns true if none of the elements of the array respects the -condition of the received function and false otherwise. + condition of the received function and false otherwise. The use of `[].every` and `[].some` is forbidden for this exercise. - ### Notions - [devdocs.io/javascript/global_objects/array/some](https://devdocs.io/javascript/global_objects/array/some) - [devdocs.io/javascript/global_objects/array/every](https://devdocs.io/javascript/global_objects/array/every) - ### Code provided > all code provided will be added to your solution and doesn't need to be submited. diff --git a/subjects/race/README.md b/subjects/race/README.md index 8d31474a..44b424a7 100644 --- a/subjects/race/README.md +++ b/subjects/race/README.md @@ -6,15 +6,14 @@ Create a function `race` that works like `Promise.race` Create a function `some` that takes an `array` of promises or values and `N` number. It should return the first `N` resolved values. -> Empty array or a count of 0 return a promise resolving to `undefined` +> Empty array or a count of 0 return a promise resolving to `undefined` ### Notions - [nan-academy.github.io/js-training/examples/promise](https://nan-academy.github.io/js-training/examples/promise.js) - [devdocs.io/javascript/global_objects/promise/race](https://devdocs.io/javascript/global_objects/promise/race) - ### Code provided > all code provided will be added to your solution and doesn't need to be submited. diff --git a/subjects/rebecca-black/README.md b/subjects/rebecca-black/README.md index b66b0805..6d78ca19 100644 --- a/subjects/rebecca-black/README.md +++ b/subjects/rebecca-black/README.md @@ -3,12 +3,12 @@ ### Instructions Create the following functions: + - `isFriday` returns true if the date is a friday - `isWeekend` returns true if the date is a day of the weekend - `isLeapYear` returns true if the year is a leap year - `isLastDayOfMonth` returns true if the date is the last day of the month - ### Notions - [date-fns.org/v2.14.0/docs/isWeekend](https://date-fns.org/v2.14.0/docs/isWeekend) diff --git a/subjects/reduce/README.md b/subjects/reduce/README.md index ce42a1a0..91177a3c 100644 --- a/subjects/reduce/README.md +++ b/subjects/reduce/README.md @@ -5,35 +5,34 @@ Create three functions: - `fold` that receives an array, a function and an accumulator, in this order, -and applies the function in the elements of the array starting on the left. + and applies the function in the elements of the array starting on the left. - `foldRight` that receives an array, a function and an accumulator, in this order, -and applies the function in the elements of the array starting on the right. + and applies the function in the elements of the array starting on the right. - `reduce` that works just like the method `[].reduce` when you don't -specify an accumulator. -The arguments should be an array and a function. -The starting value of your accumulator must be the first value of the array. -If your array is less than 1 argument you should throw an error. + specify an accumulator. + The arguments should be an array and a function. + The starting value of your accumulator must be the first value of the array. + If your array is less than 1 argument you should throw an error. - `reduceRight` like reduce, from the last value to the first Example: + ```js -const adder = (a,b) => a + b -fold([1,2,3], adder, 2) // returns 8 (2 + 1 + 2 + 3) -foldRight([1,2,3], adder, 2) // returns 8 (2 + 3 + 2 + 1) -reduce([1,2,3], adder) // returns 6 (1 + 2 + 3) +const adder = (a, b) => a + b +fold([1, 2, 3], adder, 2) // returns 8 (2 + 1 + 2 + 3) +foldRight([1, 2, 3], adder, 2) // returns 8 (2 + 3 + 2 + 1) +reduce([1, 2, 3], adder) // returns 6 (1 + 2 + 3) ``` The use of `[].reduce` and `[].reduceRight` is forbidden for this exercise. - ### Notions - [devdocs.io/javascript/global_objects/array/reduce](https://devdocs.io/javascript/global_objects/array/reduce) - ### Code provided > all code provided will be added to your solution and doesn't need to be submited. diff --git a/subjects/repeat/README.md b/subjects/repeat/README.md index 53e30643..3c7d5bce 100644 --- a/subjects/repeat/README.md +++ b/subjects/repeat/README.md @@ -7,14 +7,12 @@ and return the repeated string by the given number Like the method [developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat) Of course you may not use the method directly - ### Notions - [nan-academy.github.io/js-training/examples/loops](https://nan-academy.github.io/js-training/examples/loops.js) - [nan-academy.github.io/js-training/examples/recursion](https://nan-academy.github.io/js-training/examples/recursion.js) - [devdocs.io/javascript/global_objects/string/repeat](https://devdocs.io/javascript/global_objects/string/repeat) - ### Code provided > all code provided will be added to your solution and doesn't need to be submited. diff --git a/subjects/returns/README.md b/subjects/returns/README.md index d3950176..932538c4 100644 --- a/subjects/returns/README.md +++ b/subjects/returns/README.md @@ -7,7 +7,6 @@ Create the following functions: - `id` that takes one argument and return it - `getLength` that takes an array or a string and return its length - ### Notions - [nan-academy.github.io/js-training/examples/functions](https://nan-academy.github.io/js-training/examples/functions.js) diff --git a/subjects/reverser/README.md b/subjects/reverser/README.md index e817017f..b2755936 100644 --- a/subjects/reverser/README.md +++ b/subjects/reverser/README.md @@ -6,12 +6,10 @@ Create a `reverse` function that works on both arrays and strings. Like `[].reverse()` but working also for strings (without using the actual method) - ### Notions - [devdocs.io/javascript/global_objects/array/reverse](https://devdocs.io/javascript/global_objects/array/reverse) - ### Code provided > all code provided will be added to your solution and doesn't need to be submited. diff --git a/subjects/road_intersection/README.md b/subjects/road_intersection/README.md index 39ecd8c5..1e05d3cc 100644 --- a/subjects/road_intersection/README.md +++ b/subjects/road_intersection/README.md @@ -28,7 +28,7 @@ _______________| ← ↓ → | ↑ |_____________ | ↓ l _________________________|_______________________ l ↑ | - → → → → → s → | → → → → → → + → → → → → s → | → → → → → → r ↓ | _______________ | _____________ | | ← ↑ → | @@ -68,12 +68,12 @@ Vehicles must obey this rules: - Vehicles must have a color depending on their route the colors are up to you to decide(ex:`r`- purple, `s`- Blue and `l`- Yellow). This must then be given during the audit - Autonomous, vehicles driving on a lane with a **given route** must follow the direction of -that route, its not possible for the driver to change lanes or route. + that route, its not possible for the driver to change lanes or route. - Each vehicle must have a fixed velocity. - It must be kept a safety distance from other vehicles, if one vehicle stops the other vehicle thats -behind him must stop and keep its distance. + behind him must stop and keep its distance. - Vehicles must stop if the traffic light is red and proceed otherwise. @@ -91,6 +91,7 @@ vehicles in different lanes and with different routes. For this it must be possible to do the following: - The `Arrow` keys must generate one vehicle in a specific direction and with a random route ( `r`, `s` and `l`): + - `Up` south to north. - `Down` north to south. - `Right` west to east. diff --git a/subjects/same-amount/README.md b/subjects/same-amount/README.md index 41b904f1..94794d73 100644 --- a/subjects/same-amount/README.md +++ b/subjects/same-amount/README.md @@ -6,8 +6,7 @@ Create a `sameAmount` function that takes three parameter, a data string and 2 regexes. The objective is to confirm that the second and the third parameter matched - the same amount of times in the first parameter. - +the same amount of times in the first parameter. ### Notions diff --git a/subjects/scalar/README.md b/subjects/scalar/README.md index 8417bd97..55e1aa3c 100644 --- a/subjects/scalar/README.md +++ b/subjects/scalar/README.md @@ -1,24 +1,26 @@ ## Scalar ### Instructions + Create the following **functions**, which each receives two parameters: + - `sum`, which returns the sum between two values from 0 to 255 - `diff`, which returns the difference between two values from -32768 to 32767 - `pro`, which returns the product of the multiplication between two values from -128 to 127 - `quo`, which returns the quotient of the division between two values (32bit and you have to figure out the second part) - `rem`, which returns the remainder of the division between two values (32bit and you have to figure out the second part) -You **must** complete the Expected functions parameters data type accordingly (Replace the Xs)! +You **must** complete the Expected functions parameters data type accordingly (Replace the Xs)! ### Notions -- [Data Types](https://doc.rust-lang.org/book/ch03-02-data-types.html) +- [Data Types](https://doc.rust-lang.org/book/ch03-02-data-types.html) ### Expected functions (Incomplete, you must precise the Data Types) ```rust pub fn sum(a: X , b: X) -> X { - + } pub fn diff(a: X, b: X) -> X { @@ -39,6 +41,7 @@ pub fn rem(a: X, b: X) -> X { ``` ### Usage : + #### Note that There is no output for this test for you to train to comment accordingly. ```rust @@ -55,7 +58,7 @@ fn main() { println!("pro : {}", pro(23, 2)); // 'pro : 46' println!("pro : {}", pro(-128, 2)); // 'ERROR: attempt to multiply with overflow' // quotient - println!("quo : {}", quo(22.0, 2.0));// 'quo : 11' + println!("quo : {}", quo(22.0, 2.0));// 'quo : 11' println!("quo : {}", quo(-128.23, 2.0));// 'quo : -64.115' // remainder println!("rem : {}", rem(22.0, 2.0));// 'rem : 0' diff --git a/subjects/select-and-style/README.md b/subjects/select-and-style/README.md index 98f116af..abbfd62a 100644 --- a/subjects/select-and-style/README.md +++ b/subjects/select-and-style/README.md @@ -3,6 +3,7 @@ ### Resources We provide you with some content to get started smoothly, check it out! + - Video [Link a CSS stylesheet to your HTML file](https://www.youtube.com/watch?v=e7G-KhaqTjs&list=PLHyAJ_GrRtf979iZZ1N3qYMfsPj9PCCrF&index=3) - Video [CSS - Style with type selectors](https://www.youtube.com/watch?v=q0ur7YWBzhs&list=PLHyAJ_GrRtf979iZZ1N3qYMfsPj9PCCrF&index=4) - Video [HTML/CSS - Set & style with ID selector](https://www.youtube.com/watch?v=3b3MiY-MR-Y&list=PLHyAJ_GrRtf979iZZ1N3qYMfsPj9PCCrF&index=5) diff --git a/subjects/series/README.md b/subjects/series/README.md index 4f98501d..46b9728d 100644 --- a/subjects/series/README.md +++ b/subjects/series/README.md @@ -5,7 +5,6 @@ Create a function `series` that takes an array of async functions. It must execute them in series and return the results in order. - ### Notions - [nan-academy.github.io/js-training/examples/promise](https://nan-academy.github.io/js-training/examples/promise.js) diff --git a/subjects/shop/audit/README.md b/subjects/shop/audit/README.md index 27828e72..6926f548 100644 --- a/subjects/shop/audit/README.md +++ b/subjects/shop/audit/README.md @@ -5,6 +5,7 @@ ###### Can you confirm that the user was created? ##### Navigate to the homepage using the user you created. Try to erase products that were + ##### not created by the user. ###### Is it impossible to edit and delete products that were not created by your user? diff --git a/subjects/sign/README.md b/subjects/sign/README.md index 554be8d8..2bfe5519 100644 --- a/subjects/sign/README.md +++ b/subjects/sign/README.md @@ -10,14 +10,12 @@ You must not just use `Math.sign`, make your own. Create the `sameSign` function that takes 2 numbers as arguments and return true if they both have the same sign, or false otherwise. - ### Notions - [nan-academy.github.io/js-training/examples/functions](https://nan-academy.github.io/js-training/examples/functions.js) - [nan-academy.github.io/js-training/examples/if-else](https://nan-academy.github.io/js-training/examples/if-else.js) - [devdocs.io/javascript/global_objects/math/sign](https://devdocs.io/javascript/global_objects/math/sign) - ### Code provided > all code provided will be added to your solution and doesn't need to be submited. diff --git a/subjects/simple_hash/README.md b/subjects/simple_hash/README.md index d9333888..f2f93a18 100644 --- a/subjects/simple_hash/README.md +++ b/subjects/simple_hash/README.md @@ -7,6 +7,7 @@ Create a **function** `contain` that checks a `HashMap` to see if it contains a Create a **function** `remove` that removes a given key from the `HashMap`. - Note: pay attention to the comment in the [usage](#usage) + ### Notions - https://doc.rust-lang.org/rust-by-example/std/hash.html diff --git a/subjects/skeleton/README.md b/subjects/skeleton/README.md index 04506b46..0893d0d7 100644 --- a/subjects/skeleton/README.md +++ b/subjects/skeleton/README.md @@ -19,6 +19,7 @@ For the whole quest, the principle is to iterate over your code: when you finish ### Resources We provide you with some content to get started smoothly, check it out! + - Video [Basic set up of an HTML page](https://www.youtube.com/watch?v=QtKoO7tT-Gg&list=PLHyAJ_GrRtf979iZZ1N3qYMfsPj9PCCrF&index=1) - Video [Different HTML tags overview](https://www.youtube.com/watch?v=Al-Jzpib8VY&list=PLHyAJ_GrRtf979iZZ1N3qYMfsPj9PCCrF&index=2) diff --git a/subjects/slicer/README.md b/subjects/slicer/README.md index ff3d2a96..b4cb7e68 100644 --- a/subjects/slicer/README.md +++ b/subjects/slicer/README.md @@ -6,12 +6,10 @@ Create the `slice` function that works like `Array.slice` and `String.slice` It takes an additional first argument which is the string or the array - ### Notions - [devdocs.io/javascript/global_objects/array/slice](https://devdocs.io/javascript/global_objects/array/slice) - ### Code provided > all code provided will be added to your solution and doesn't need to be submited. diff --git a/subjects/sortable/README.md b/subjects/sortable/README.md index c21ac3ad..fa67a2cf 100644 --- a/subjects/sortable/README.md +++ b/subjects/sortable/README.md @@ -7,13 +7,12 @@ weird masks wearing **superheroes**. You never understood why are some of them considered superheroes just because they are rich. Others annoy you with their philosophical speeches. And of course that something tragic has had to happen to them for the people to feel sorry for them. \ -Anyway, we've found *confidential* information about those superheroes. +Anyway, we've found _confidential_ information about those superheroes. > Your task for the moment is to build a web page in order to organize all the > data from those smartypants. > This information can be found here: [all.json](https://rawcdn.githack.com/akabab/superhero-api/0.2.0/api/all.json). - #### Fetching the data In order to get the information out of the API you should use `fetch`. @@ -56,21 +55,22 @@ A `