🧑🏽‍🤝‍🧑🏽 day-plan

🎡 Morning orientation

Learning Objectives

Planning during the week

🧭 During the week, create a post on Slack and get some people to take on the roles of facilitator and timekeeper. Nominate new people each time.

👣 Steps

If you haven’t done so already, choose someone (volunteer or trainee) to be the facilitator for this morning orientation block. Choose another to be the timekeeper.

🎙️ The Facilitator will:

  1. Assemble the entire group (all volunteers & all trainees) in a circle
  2. Briefly welcome everyone with an announcement, like this:

    💬 “Morning everyone, Welcome to CYF {REGION}, this week we are working on {MODULE} {SPRINT} and we’re currently working on {SUMMARISE THE TOPICS OF THE WEEK}”

  3. Ask any newcomers to introduce themselves to the group, and welcome them.
  4. Now check: is it the start of a new module? Is it sprint 1? If so, read out the success criteria for the new module.
  5. Next go through the morning day plan only (typically on the curriculum website) - and check the following things:

Facilitator Checklist

  • Check the number of volunteers you have for the morning
  • Check someone is leading each session
  • Describe how any new activities works for the group
  • Decide how best to allocate trainees and volunteers for a given block - most blocks will make this clear

⏰ The Timekeeper will:

  • Announce the start of an activity and how long it will take (check everyone is listening)
  • Manage any whole class timers that are used in an activity
  • Give people a 10-minute wrap-up warning before the end of an activity
  • Announce the end of an activity and what happens next

Notes

Learning Objectives

Working Software and Done

Learning Objectives

Introduction

Many software projects have failed because they only found out at the end of the project that what they delivered was not valuable to the customers.

We should constantly validate what we are developing so that if we have misunderstood expectations, we can resolve them earlier. And we can realise the value we deliver sooner rather than waiting for a risky “big bang” deployment.

Agile software development highlights that working software is more important than documentation and other non-software deliverables, and that you must measure the progress of a project by looking at how much software has been delivered and “done”.

The Scrum Guide (the leading interpretation of Agile) expects developers to agree on a Definition of Done, and to achieve “Done” for each item they work on in the backlog. This allows them to deliver an increment.

The product owner should focus on identifying and achieving “value”.

Definition of Done

🎯 Goal: Recognise the steps to achieve a “done” piece of software (30 minutes)

Work in small groups. 

Make a list of acceptance criteria you would expect to be “done” for every software development user story (backlog item). You can refer to the Prep.

  • Did you identify all the achievements necessary to deliver working software to a customer?
  • Did you add anything which is not necessary?
  • Did you consider testing, automation, documentation, integration, coding style, acceptance, etc?

After you have a list, join another small group and share your ideas with them. What did you miss out?

Game: Anything but working software

🎯 Goal: Identify incorrect options to delivering valuable working software (30 minutes)

Work in small groups. Each person should take on one of the following roles at a time:

  • Lazy software developer
  • “Hacker” software developer
  • Bean-counter project manager
  • Salesperson
  • Proxy customer who is not the end user
  • Customer’s lawyer, who wants to verify the progress
  • Product Owner trying to maximise “value”.

You can have several people in the same role, and you can switch roles, so long as it’s clear what role you are playing at the time. Please caricature your role as a “Devil’s advocate”.

Go around your group, taking turns.

  • Propose something you could offer other than working software that is valuable or convenient for your role. For example, a video demo of the software. Or a specification of the product you are going to build.
  • Describe why this is more valuable than working software from your point of view.
  • The whole group should discuss if this is better or worse than delivering valuable working software. Sometimes the answer will be “yes”.

Morning Break

A quick break of fifteen minutes so we can all concentrate on the next piece of work.

Notes

Full Stack: setting up, backing up, and restoring a database 🔗

Development environment and database Workshop ⚙️

This workshop will guide you through the following:

  • setting up your development environment
  • initialising a local database
  • removing, re-initializing, and most importantly, backing up your database for the Full Stack Product.

Learning Objectives

Requirements

  • Check you've split into a team for the Full Stack Project
  • Clone your team's fork of the Full Stack Project Assessment repository to your local machine.
  • Locate the User story: Video recommendation listing issue on the Project Kanban board
  • From the User story: Video recommendation listing issue, locate the Setup your local development environment and Setup your local database issues
  • Have a code editor or terminal ready.

Part 1 - Set up your local development environment

  • Set a whole class timer for 10 mins ⏱️
  • Follow the instructions in the setup guide to set up your local development environment
  • Check the acceptance criteria on the Setup your local development environment issue. Has everyone in your team met the acceptance criteria for this issue?

Part 2 - Set up your local database

  • Set a whole class timer for 15 mins ⏱️
  • Use the instructions for the db setup guide to set up a local database with one table and some data. Use the first section in the instructions to complete this task.
  • Check the acceptance criteria on the Setup your local database issue. Which criteria have you met?

Part 3 - Backup your local database

  • Set a whole class timer for 15 mins ⏱️
  • Use the instructions for the db setup guide to backup your local database
  • Check the acceptance criteria on the Setup your local database issue. Which criteria have you met?

Part 4 - Remove, Re-store, and Restoring

  • Set a whole class timer for 15 mins ⏱️
  • Use the instructions for the db setup guide to backup your local database
  • Check the acceptance criteria on the Setup your local database issue. Which criteria have you met?

Practice Makes Perfect

Set another timer and repeat the dropping, re-initializing, and restoring process a few more times to solidify your understanding. Experiment with different backup file locations if you'd like.

By the end of this workshop, you should feel confident in creating, removing, re-initializing, and backing up your database so you don't need to worry about losing your data.

Acceptance Criteria

Double-check the acceptance criteria on the issues: Setup your local development environment and Setup your local database

By completing these steps, you've mastered the fundamentals of database setup for the Full Stack Assessment, and you're ready to tackle the next challenge!

Community Lunch

Every Saturday we cook and eat together. We share our food and our stories. We learn about each other and the world. We build community.

This is everyone’s responsibility, so help with what is needed to make this happen, for example, organising the food, setting up the table, washing up, tidying up, etc. You can do something different every week. You don’t need to be constantly responsible for the same task.

Notes

Study Group

What are we doing now?

You’re going to use this time to work through coursework. Your cohort will collectively self-organise to work through the coursework together in your own way. Sort yourselves into groups that work for you.

Use this time wisely

You will have study time in almost every class day. Don’t waste it. Use it to:

  • work through the coursework
  • ask questions and get unblocked
  • give and receive code review
  • work on your portfolio
  • develop your own projects

Notes

🛎️ Code waiting for review 🔗

Below are trainee coursework Pull Requests that need to be reviewed by volunteers.

Add recommended VS Code extensions 🔗

What does this change?

This PR introduces a curated list of recommended Visual Studio Code extensions to the module. The aim is to standardize the development environment for all trainees, ensuring they have access to essential tools and features that enhance their learning experience, and save our mentors’ time and energy.

Common Content?

This change does not directly modify the common content shared across modules but provides an essential resource that complements the existing curriculum. It ensures that all trainees, regardless of their module, have a consistent set of tools at their disposal.

  • Block/s

Common Theme?

  • Yes

Issue number: #368

Org Content?

Module

Checklist

Who needs to know about this?

@CodeYourFuture/itp-syllabus-team

Start a review
NW6 | Fathi Kahin | Module-Database | E-commerce -API-| Week 4 🔗

Learners, PR Template

Self checklist

  • I have committed my files one by one, on purpose, and for a reason
  • I have titled my PR with COHORT_NAME | FIRST_NAME LAST_NAME | REPO_NAME | WEEK
  • I have tested my changes
  • My changes follow the style guide
  • My changes meet the requirements of this task

Changelist

Briefly explain your PR.

Questions

Ask any questions you have for your reviewer.

Start a review
WM5 | AISHA_ATHMAN_LALI | MODULE_DATABASES | WEEK_3 | CYF_E-COMMERCE 🔗

Self checklist

  • I have committed my files one by one, on purpose, and for a reason
  • I have titled my PR with COHORT_NAME | FIRST_NAME LAST_NAME | REPO_NAME | WEEK
  • I have tested my changes
  • My changes follow the style guide
  • My changes meet the requirements of this task

This is a PR on CYF E-COMMERCE.

Questions

Are there better ways I could have written the queries?

Start a review
WM5 | AISHA_ATHMAN_LALI| MODULE_DATABASES | WEEK_2 | BIG-SPENDER 🔗

Self checklist

  • I have committed my files one by one, on purpose, and for a reason
  • I have titled my PR with COHORT_NAME | FIRST_NAME LAST_NAME | REPO_NAME | WEEK
  • I have tested my changes
  • My changes follow the style guide
  • My changes meet the requirements of this task

This is a PR for the big-spender database project.

Questions

Is there a better way I could have written the queries?

Start a review
NW6 | Pedro Ricciardi | Databases Module | [TECH ED] E-Commerce API | Sprint 4 🔗

Self checklist

  • I have committed my files one by one, on purpose, and for a reason
  • I have titled my PR with COHORT_NAME | FIRST_NAME LAST_NAME | REPO_NAME | WEEK
  • I have tested my changes
  • My changes meet the requirements of this task

Changelist

All routes and tests implemented following the user stories in readme.md:

  • As a user, I want to view a list of all products with their prices and supplier names.
  • As a user, I want to search for products by name.
  • As a user, I want to view a single customer by their ID.
  • As a user, I want to create a new customer with their name, address, city, and country.
  • As a user, I want to create a new product.
  • As a user, I want to create a new product availability with a price and supplier ID, and get an error if the price is not a positive integer or if either the product or supplier ID does not exist.
  • As a user, I want to create a new order for a customer with an order date and reference number, and get an error if the customer ID is invalid.
  • As a user, I want to update an existing customer’s information with their name, address, city, and country.
  • As a user, I want to delete an existing order and all associated order items.
  • As a user, I want to delete an existing customer only if they do not have any orders.
  • As a user, I want to view all orders with their items for a specific customer, including order references, dates, product names, unit prices, suppliers, and quantities.

Issue

[TECH ED] E-Commerce API

Note

Due to a lack of time, I could not create my own acceptance criteria. I focused on the most important aspect, which is the correct implementation and testing for each route.

Start a review
See more pull requests

Afternoon Break

Please feel comfortable and welcome to pray at this time if this is part of your religion.

If you are breastfeeding and would like a private space, please let us know.

Notes

Study Group

What are we doing now?

You’re going to use this time to work through coursework. Your cohort will collectively self-organise to work through the coursework together in your own way. Sort yourselves into groups that work for you.

Use this time wisely

You will have study time in almost every class day. Don’t waste it. Use it to:

  • work through the coursework
  • ask questions and get unblocked
  • give and receive code review
  • work on your portfolio
  • develop your own projects

Notes

Retro: Start / Stop / Continue

Retro (20 minutes)

A retro is a chance to reflect on this past sprint. You can do this on a Jamboard (make sure someone clicks “Make a copy” before you start, and you work on that together) or on sticky notes on a wall.

  1. Set a timer for 5 minutes.
  2. Write down as many things as you can think of that you’d like to start, stop, and continue doing next sprint.
  3. Write one point per note and keep it short.
  4. When the timer goes off, one person should set a timer for 1 minute and group the notes into themes.
  5. Next, set a timer for 2 minutes and all vote on the most important themes by adding a dot or a +1 to the note.
  6. Finally, set a timer for 8 minutes and all discuss the top three themes.

Notes