jmchang35 / fullstackprojs

Bit Project
GNU General Public License v3.0
0 stars 0 forks source link

[TOP SECRET] Please open #17

Closed counselorbot[bot] closed 2 years ago

counselorbot[bot] commented 2 years ago

Week 1 Step 8 ⬤⬤⬤⬤⬤⬤⬤⬤◯ | 🕐 Estimated completion: 5-15 minutes

[TOP SECRET] Morse Code Converter

Dwight being a spy

Welcome agent! You have made it this far so we know we can trust you. BitProject is working in an undercover operation, and we need a new way to communicate.

✅ Tasks:

1: Installing Packages

Create a new HTTP trigger function using the Azure extension in VSCode, and choose the Function App you previously created during this week.

We will be using the morse-code-converter npm package.

❓ Why do we need these "packages" and what are they?
Packages are awesome! They're chunks of publicly available code that someone else has written to help make coding easier for everyone else. These packages reusable code that increases functionality in your code. Before the Azure Function can run the code we will write, we have to install all the necessary package dependencies. These packages contain **code that we will "depend on" in the application**; we have to install them in the console using `npm install`. >💡 [What is a package?](https://www.w3schools.com/nodejs/nodejs_npm.asp) >💡 [What is the morse-code-converter package?](https://www.npmjs.com/package/morse-code-converter)

❓ How do I install the package?
In VS Code, open your terminal. >💡 On Windows or Mac, go to the header of your window, and go to `Terminal --> New Terminal`. ![image](https://user-images.githubusercontent.com/69332964/125171153-b42f6300-e180-11eb-88d0-34ef48451069.png) Enter these commands in order: ```sh npm init -y npm install morse-code-converter ```

‼️ Woah! What just happened when the package was installed?
The first command created a **package.json** file to store your dependencies and essentially keeps track of what packages your application needs. You can find this file by going into the left menu and clicking on "App Files". Screen Shot 2021-04-26 at 3 15 21 AM The next one actually installs the necessary packages with code, `morse-code-converter`. >💡 Note: If you get red text like `WARN`, you can ignore it. Screen Shot 2021-04-26 at 3 12 43 AM

‼️ Reminder: don't forget to import your package! `const morse = require("morse-code-converter");

💡 Make sure your parameter is named plaintext

2: Using morse-code-converter

❓ How do I receive the English as a parameter?
[Query parameters](https://rapidapi.com/blog/api-glossary/parameters/query/) can be accessed from the `req` object in the input of the `module.exports` function. >💡 Since ours is named `plaintext`, we can access it with `req.query.plaintext`. **How would I send the English?** [place your function url here]&plaintext=[insert the English]

❓ How do I use the Morse Code package?
**Tip**: Try reading the [documentation](https://www.npmjs.com/package/morse-code-converter) first. 1. First require the npm package at the top of your code. ```js const morse = require("morse-code-converter"); ``` 2. Query the url for the parameter `plaintext`, and store it in a variable. 3. Create a variable named code, but set it to `undefined` for right now, because we are not sure if `plaintext` contains a value or not (we can't translate nothing 🤔) 4. To check if the user passed in nothing for plaintext, we need to use an `if-else` [conditional](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/if...else). 5. We first check if the user did not pass in a parameter of `plaintext` at all, or if `plaintext` has no value. In which case, we will tell them to enter some text. ```js if (typeof plaintext === 'undefined' || plaintext === "") { code = "Please enter some text to convert!" } ``` > 💡 the `||` means `or` in JavaScript. Either the left side can be `true`, or the right side can be `true`, and the code inside the `if` will run! 6. Now that we checked if the user has entered nothing, we can add code that will execute when the user has entered something for `plaintext`. Add the code below after the entire `if` statement (after the opening and closing brackets). ```js else { code = morse.textToMorse(plaintext); } ``` 7. Now, we just need to respond to the HTTP request with `code`! The final `if-else` code should look like: ```js if (typeof plaintext === 'undefined' || plaintext === "") { code = "Please enter some text to convert!" } else { code = morse.textToMorse(plaintext); } ```

💡 Be sure to return the code in the body of the response!

:question: Um. Body?
**Tip**: `context.res` is the object you use to return a response to the user. ```js context.res = { body: [insert your encoded English here] }; ```

:exclamation: Don't forget to git pull before making any changes to your local repo!!

‼️ Remember: we test your Morse Code function everytime you commit!

📹 Walkthrough Video

walkthrough video

counselorbot[bot] commented 2 years ago

📝 Week 1 Video Feedback

Please complete after you've watched the Week 1 walkthrough videos! If you haven't yet watched it but want to move on, just close this issue and come back to it later.

Comment your feedback:

Help us improve BitCamp Serverless - thank you for your feedback! Here are some questions you may want to answer:

:camping: To move on, comment your feedback.

jmchang35 commented 2 years ago

The content was good, just wished there was more content about setting up azure since that was a pain. It may be because the GUI is different on the windows system. The pace was good. I don't have much feedback on the videos since I thought they were well made.

counselorbot[bot] commented 2 years ago

Providing Feedback

What was confusing about this week? If you could change or add something to this week, what would you do? Your feedback is valued and appreciated!

jmchang35 commented 2 years ago

Maybe add more stuff or add piazza post 13 as part of the curriculum since it gave me a huge headache. Also knowing that the tests are based off the secrets and not our code that we push into github would be nice if it was explicitly stated. Setting up azure was the most confusing

counselorbot[bot] commented 2 years ago

⏰ Time to merge!

Go ahead and merge this branch to main to move on. Great work finishing this section!

merge

⚠️ If you receive a Conflicts error, simply press Resolve conflicts and you should be good to merge!

counselorbot[bot] commented 2 years ago

That's it for Week 1, move on to Week 2 in your new issue!