Skip to content

Conversation

@magdazelena
Copy link
Contributor

@magdazelena magdazelena commented Oct 6, 2025

Contributing to #58. Continuing work from #146.

  • Week 2

    • README
    • Learning goals
    • Preparation
    • Session-plan
      • Move teacher code to module-materials
      • Time the session parts
      • Update the SQL related bits from MySQL to Sqlite
    • Assignment
  • Check everything looks good on gitbook

Remaining tasks (maybe create new tickets for these:)

  • Check if hyf-assignment-template is set up for this module, and if not, do it
  • Add Error Handling content to session plan: Refresher on http error codes, client feedback vs server feedback (e.g. we shouldn't return table names to the client, if e.g. it doesn't exist, we would return a 500 to the client)

Base automatically changed from 58-create-backend-nodejs-module to main October 28, 2025 09:07
@adamblanchard adamblanchard self-assigned this Oct 28, 2025
@adamblanchard
Copy link
Contributor

Alright! I have an update:

I have mostly focussed on getting the week 2 session plan in order, so I'm requesting a review mostly on that for now. I have:

  1. Moved over the "phonebook" live coding exercise from the old repo, but removed express stuff. I figured we could use this just to refresh crud using knex query builder by itself first (which trainees haven't actually been taught yet).
  2. Added POST, PUT and DELETE endpoints as exercises to continue the express snippets api project, after the knex intro.
  3. Added contact for advanced postman usage, including exercises

Right now there's some TODOs that i need help with:

  1. Add some error handling content throughout the snippets API section
  2. Replacing the placeholders for the put and delete endpoint exercises.

@magdazelena Would you be able to at least help me with a review, and maybe helping with those TODOs?

Copy link
Contributor Author

@magdazelena magdazelena left a comment

Choose a reason for hiding this comment

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

I tried to leave as many comments as suggestions to fasten the process, I believe the assignment one got broken because of nested code snippets in it...

The most comments I had were to streamline the language of the session plan as whether it is directed to the mentor or the trainee. As I mention in one of the comments, it is mixed thoughout the document. I also mention somewhere that it would be good to clarify the communation direction. In week 1 I totally tried to make it trainee-oriented, while session-plan would be used my mentors as a guideline and plan, it is not a manual. It is still a trainee resource to learn and mentor needs to freestyle a bit. I also know from experience there is 0 time for mentor to read instructions and lead the class in the same time :D

In the same time I'm curious to hear your opinion as you have an overview across all the modules and access to feedback from other mentors :)


## Advanced Postman

Postman can be used for quickly testing your APIs, but can also be configured in more advanced ways to support your development workflow. Here, you'll learn about four ways to level up your Postman game.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

...here is an example of what I mentioned before, line 38 is directed to the mentor, while line here is clearly for the trainees...

I have always thought that the session plan is for the mentor to use during the class, but as a syllabus kind of that is in fact student material. Therefore the language should be directed to the learning not the teaching one. Is that a correct assumption?

Copy link
Contributor

Choose a reason for hiding this comment

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

My understanding is different. It's not exactly strongly held, but for the new program we have been writing session plans assuming the reader is the mentor. Of course there could be useful content in here, and trainees are free to read/reference it.

The reason I have written some content that sounds like it's for trainees is because i thought of sections like this almost like scripts. So i imagine the mentor leaning on this content as inspiration of what to say. Like imagine if i put quotation marks around this paragraph :D

I totally see now that it reads quite mixed up though, as you say.

We have had a short discussion on slack about this back in summary, which is how i ended up with this perspective.

For now, I suggest we stick with that. Although, it's open for discussion (as most things are!).

Regarding moving this PR forward specifically, i'm not sure how to make it clearer for now, but i'd be keen to merge it if the content itself is good and aligns well with the learning goals. Once that's good, we can iterate on the wording and written content some more.

Would you be happy to proceed in that way too? 🤔

Copy link
Contributor

Choose a reason for hiding this comment

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

Just realised too, that I write exercises from the perspective of the trainee since they are instructions for them to complete. This also adds to the mix of tones in the session plan.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think I still don't get it and I'm quite confused because previous modules I wrote had different perspective in mind and received no feedback on it :) But assuming session plan is for the mentor, then mixing perspective in it is also confusing for the mentor I believe 🤔

Anyway, I agree with this one:

Regarding moving this PR forward specifically, i'm not sure how to make it clearer for now, but i'd be keen to merge it if the content itself is good and aligns well with the learning goals. Once that's good, we can iterate on the wording and written content some more.

Could be one of the subtasks to clear it up :)


## The tasks

### Task 1 - Solve the SQL injection
Copy link
Contributor

@adamblanchard adamblanchard Nov 10, 2025

Choose a reason for hiding this comment

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

I've expanded these tasks to mirror a bit more of the things learned in the session.

I'm not sure if it's too much to complete in a week (would appreciate some feedback on that), but at least conceptually it captures a nice little API and allows the trainees to practice the themes of today.

To be honest, the SQL injection part is the one that sticks out the most, since it's not covered in the session. But, i don't think it's a bad idea to cover it again since it was taught in foundation, and is a nice practice to apply a more theoretical learning to now a much more practical implementation. And we also touch on some "insecure" knex practices in the error handling live coding example, which this builds on.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think for assignment it is fine it's a lot of stuff. If it would be in class excecises, that can be tricky, but for home assignment it is good.

There is nice practice now of check-in during the week so if anything is unclear hopefully the trainees will flag that and it can be explained then :)

@adamblanchard
Copy link
Contributor

Ok, i think I have resolved all outstanding comments aside from the tone of voice/perspective discussion.

Notable changes:

  1. Expanded assignment to better mirror the learning objectives of the session
  2. Added error handling content along with a live coding exercise to demonstrate it

@magdazelena let me know if you're up for a review 👌

@adamblanchard adamblanchard marked this pull request as ready for review November 11, 2025 13:06
@adamblanchard adamblanchard requested a review from a team as a code owner November 11, 2025 13:06
Copy link
Contributor Author

@magdazelena magdazelena left a comment

Choose a reason for hiding this comment

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

ah I can't approve :D but I do approve. Also now after clean up the "perspective situation" doesn't stick out to me too much. I think all is coherent and I don't see any faults so I'd stay this PR is good to go with the remaining bits and bobs to be finished :)

@adamblanchard
Copy link
Contributor

adamblanchard commented Nov 20, 2025

Things left:

  • 1. Fix table header order in readme
  • 2. Fix links for gitbook (week2 exercises broken links, and move them into the sidebar to link internally)
  • 3. Finish task for setting up hyf-assignment-template
  • 4. post and delete endpoint exercises

@adamblanchard adamblanchard merged commit 3160e5d into main Nov 25, 2025
3 checks passed
@adamblanchard adamblanchard deleted the 58-backend-nodejs-week2 branch November 25, 2025 12:43
@adamblanchard
Copy link
Contributor

Related task for finishing endpoint exercises here #234

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants