Skip to content

Jawad A.#5

Open
jivvyjams wants to merge 2 commits intoHackYourAssignment:mainfrom
jivvyjams:main
Open

Jawad A.#5
jivvyjams wants to merge 2 commits intoHackYourAssignment:mainfrom
jivvyjams:main

Conversation

@jivvyjams
Copy link
Copy Markdown

No description provided.

@github-actions
Copy link
Copy Markdown

📝 HackYourFuture auto grade

Assignment Score: 13 / 100 ❌

Status: ❌ Not passed
Minimum score to pass: 50
🧪 The auto grade is experimental and still being improved

Test Details
Vitest unit test results:

❌ [10] Markdown file created
❌ [1] Content starts with # Cocktail Recipes
❌ [1] Content includes drink name as ## Margarita
❌ [1] Content includes medium drink image
❌ [1] Content includes category and alcoholic info
❌ [1] Content includes header ### Ingredients
❌ [1] Content includes ingredients list
❌ [1] Content includes header ### Instructions
❌ [1] Content includes instruction details
❌ [1] Content includes glass type
✅ [1] Calls console.error() if no cocktail name argument provided
❌ [1] Calls console.error() if cocktail not found
❌ [1] Calls console.error() if fetch was not OK
❌ should complete all CRUD operations successfully
❌ should verify updatePost uses PUT method with Authorization
❌ should verify deleteUser uses DELETE method with Authorization
❌ should verify deletePost uses DELETE method with Authorization
❌ should verify getMe fetches current user info with Authorization
✅ should handle errors in any CRUD operation
❌ should make GET request to /users/me with Authorization header
❌ should return user information with correct structure
❌ should throw error when response is not ok (404)
❌ should make GET request to /posts/me with Authorization header
❌ should return an array of posts
❌ should return empty array when no posts exist
✅ should make POST request to /users/register with correct data
✅ should return user data with correct structure
✅ should include Content-Type header
✅ should throw error when API returns error
❌ should make POST request to /users/login with correct data
❌ should return user data with token
❌ should throw error on invalid credentials
❌ should make POST request to /posts with correct data and Authorization header
❌ should return post data with correct structure
❌ should include Content-Type and Authorization headers
❌ should throw error when not authenticated

Total passed: 6
Total failed: 30

@JQnetherlands JQnetherlands self-requested a review March 19, 2026 10:59
@JQnetherlands JQnetherlands self-assigned this Mar 19, 2026
Comment thread task-1/cokctails.js
const BASE_URL = "https://www.thecocktaildb.com/api/json/v1/1";

// Add helper functions as needed here
function checkAlcohol(alcoholic) {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very good, you encapsulated it in a function, this make your code reusable

Comment thread task-1/cokctails.js
return alcoholic === "Alcoholic" ? "Yes" : "No";
}

function getIngredients(drink) {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very good, you encapsulated it in a function, this make your code reusable

Comment thread task-1/cokctails.js
return ingredients.join("\n");
}

function createMarkdown(drink) {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very good, you encapsulated it in a function, this make your code reusable

Comment thread task-1/cokctails.js
].join("\n");
}

function formatMarkdown(drinks) {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very good, you encapsulated it in a function, this make your code reusable

Comment thread task-1/cokctails.js
}

// 2. Generate markdown content to match the examples
const markdown = formatMarkdown(data.drinks);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very good, you encapsulated it in a function, this make your code reusable

Comment thread task-2/services.js
const response = await fetch(`${BASE_URL}/posts/hello`);
if (!response.ok) {
throw new Error(
`Failed to get hello: HTTP ${response.status} ${response.statusText}`,
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see my main review comment

Comment thread task-2/services.js

if (!response.ok) {
throw new Error(
`Failed to get user: HTTP ${response.status} ${response.statusText}`,
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see my main review comment

Comment thread task-2/services.js
});
if (!response.ok) {
throw new Error(
`Failed to create user: HTTP ${response.status} ${response.statusText}`,
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see my main review comment

Comment thread task-2/services.js

if (!response.ok) {
throw new Error(
`Failed to login: HTTP ${response.status} ${response.statusText}`,
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see my main review comment

Comment thread task-2/services.js

if (!response.ok) {
throw new Error(
`Failed to create post: HTTP ${response.status} ${response.statusText}`,
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see my main review comment

Comment thread task-2/services.js

if (!response.ok) {
throw new Error(
`Failed to update post: HTTP ${response.status} ${response.statusText}`,
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see my main review comment

Comment thread task-2/services.js

if (!response.ok) {
throw new Error(
`Failed to delete post: HTTP ${response.status} ${response.statusText}`,
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see my main review comment

Copy link
Copy Markdown

@JQnetherlands JQnetherlands left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello, Jawad.

I will start with the good news! you have passed both task successfully, you almost have exceeds expectations ( almost 5 starts), now I will go on with the nices to have.

I really like how you use functions to encapsulate certain features for the markdown , because this make your code reusable you can use it for other projects , where you need to do a markdown or for personal use, your code is clean and very easy to follow. Congratulations

About task 2, all your functions accomplish their goal , well done, each of one shows you do understand the CRUD and HTTP actions and what each Method needs to successfully fetch to the back end (GET, POST, UPDATE, DELETE).

The only feedback I have to write better code is the following:

Right now you have ---> Failed to delete post: HTTP ${response.status} ${response.statusText}

That would be ---> Failed to delete post: HTTP 403 forbidden

Do you think it is clear enough information for the user to know what went wrong?
Can you imagine a better statement for the user?

for example this you could do if you change your code a bit, I will give you the final expected output that I am talking about:

clearer output ---> Failed to delete post: HTTP 403 You can only modify your own posts

Do you see the difference? can you imagine how you could make your code give that example? HINT: maybe an inline conditional , do you know which one?

That you could apply to each function to make it more user friendly.

Again, you did super well overall, you passed successfully and almost beyond expectations, please be proud of yourself and keep the good work! Congratulations

@JQnetherlands JQnetherlands added the Reviewed This assignment has been reivewed by a mentor and a feedback has been provided label Mar 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Reviewed This assignment has been reivewed by a mentor and a feedback has been provided

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants