🏷️ backlog

Module-Data-Flows πŸ”—   Project-TV-Show πŸ”—  

[PD] Linkedin Social Selling Index πŸ”— Clone

[PD] Linkedin Social Selling Index πŸ”—

Objectives

Coursework content

Being on LinkedIn isn’t enough to get noticed. You also need to make sure that you are active on it.

LinkedIn created a Social Selling Index (https://www.linkedin.com/sales/ssi.) which shows how you are in relationship to others in your industry or your network. You can use this as a key performance indicator to ensure you are being ranked higher after your actions.

Think about your strategy to get more active on LinkedIn. Some examples are below, but you can use your creativity. Start with one action and then build upon it.

  • Repost interesting articles at least once a week
  • React to one of your connections’ posts three times a week
  • Share an important Professional Development learning of this week
  • Share an important Technical Education learning of this week (not on the same day as the PD one)
  • Comment on one of your connections’ posts once a week

Estimated time in hours (PD has max 4 per week total)

15 minutes - set a timer

What is the purpose of this assignment?

To create a strong presence on a professional network platform - LinkedIn.

How to submit

  • Share the screenshot of your LinkedIn Social Selling Index on this issue.
  • Add what is the one action you will commit to. Write it using in a SMART way and add it as a comment on this issue.
  • πŸ• Priority Mandatory
  • πŸ¦” Size Tiny
  • πŸ“… Data Flows
  • πŸ“… Sprint 2
  • πŸ¦” Size Tiny
  • πŸ“… Sprint 2
  • πŸ“… Data Flows
  • πŸ• Priority Mandatory
[PD] Review your Development Plan πŸ”— Clone

[PD] Review your Development Plan πŸ”—

Objectives

Coursework content

Work on your Career Development plan, so that it reflects your learnings and where you evolved. Your goals might be different now, and writing them down can keep your focus and give you a tool to discuss them with anyone you trust who would like an opinion.

Remember: 2-3 areas are enough to change in such a short time, so it’s better to focus on a few, get them nailed, and then choose another area.

Technical knowledge is important, but the skills and processes are also important so you can get a job in tech. So think about both sides.

Examples of goals

  • Short term: Practicing coding = Code 1 hour a day on weekdays
  • Medium-term: Enhance my written English = Trying to correct by myself the errors that the automated grammar tool is showing in my text
  • Long term: Get a job in tech = Send 1 tailored CV per day when I have graduated from Code Your Future

Estimated time in hours

0.5

What is the purpose of this assignment?

Define where you want to be in the short, medium and long term. This helps give you perspective and clarity of where your direction is and if you are doing the right things to get there.

How to submit

  • Share your development plan link as a comment, open to anyone to comment
  • Write a paragraph, as a comment on this issue, about what you have learned/changed
  • 🏝️ Priority Stretch
  • πŸ“… Data Flows
  • πŸ“… Sprint 2
  • πŸ“… Sprint 2
  • πŸ“… Data Flows
  • 🏝️ Priority Stretch
[PD] Your LinkedIn tips πŸ”— Clone

[PD] Your LinkedIn tips πŸ”—

Learning Objectives

Objectives

Coursework content

Write a 100-word text with the top 3 tips you have learnt about LinkedIn and how to use it effectively.

Review the text with an automated grammar tool.

Estimated time in hours (PD has max 4 per week total)

0.5

What is the purpose of this assignment?

  • Reflect on your learnings about communication and selling yourself on LinkedIn.
  • To practice writing in English.

How to submit

  • Share the link to the doc on this issue. Make sure anyone can add comments to it.
  • πŸ• Priority Mandatory
  • πŸ‡ Size Small
  • πŸ“… Data Flows
  • πŸ“… Sprint 2
  • πŸ“… Sprint 2
  • πŸ“… Data Flows
  • πŸ‡ Size Small
  • πŸ• Priority Mandatory
[PD] Your SWOT analysis πŸ”— Clone

[PD] Your SWOT analysis πŸ”—

Learning Objectives

Objectives

Coursework content

Conduct a personal SWOT analysis. By answering the following questions, consider the key areas you want to improve. Remember to refer to the development plan you have already been working on:

  • Strengths: What are you great at? What makes you stand out? What positive comments do people say about your strengths? What are your greatest achievements?
  • Weaknesses: What hard and soft skills do you need to work on? Where do you need to improve? What holds you back? What key habits do you want to overcome? What do others say about your development areas?
  • Opportunities: Who can help you achieve your goals? What can you do differently to become more employable? How can you go the extra mile? How can you create opportunities?
  • Threats: What could stop you from achieving your career goals? What do you need to stop doing now? What’s out of your control?

Write your analysis down.

Estimated time in hours (PD has max 4 per week total)

0.75

What is the purpose of this assignment?

This analysis will provide you with insights into your personal strengths and development points. It will also help you identify external support opportunities and risks.

How to submit

  • Share the link to the doc with your SWOT analysis on your issue. Make sure anyone with this link can comment on it.
  • Review your Career Development Plan if it is applicable.
  • πŸ• Priority Mandatory
  • πŸ‡ Size Small
  • πŸ“… Data Flows
  • πŸ“… Sprint 2
  • πŸ“… Sprint 2
  • πŸ“… Data Flows
  • πŸ‡ Size Small
  • πŸ• Priority Mandatory
[TECH ED] πŸ“ Code review πŸ”— Clone

[TECH ED] πŸ“ Code review πŸ”—

Learning Objectives

Objectives

Why are we doing this?

Code review is an essential part of self-evaluation. Get a code review for a piece of work; then reply and iterate on this feedback.


We’re using GitHub Labels in our Code Review process. In order for a volunteer to review your pull request, you will need to add a “Needs Review” label to it.

  • Open your pull request
  • In the right sidebar, click Labels, then select “Needs Review”

Take a look at our code review process from beginning to end. Let us know if you have any questions or need help!


You can also use any solutions to review your code independently.

Maximum time in hours

1

  • πŸ• Priority Mandatory
  • πŸ“… Sprint 2
  • :memo: Self evaluate
  • πŸ“… Sprint 2
  • πŸ• Priority Mandatory
  • :memo: Self evaluate
[TECH ED] Book Library πŸ”— Clone

[TECH ED] Book Library πŸ”—

https://github.com/CodeYourFuture/Module-Data-Flows/tree/main/debugging/book-library

Why are we doing this?

Making a simpler version of the TV Show Project, that has some similar concerns, can help you design your application.

Maximum time in hours (Tech has max 16 per week total)

3

How to get help

  1. Share your blockers in your class channel. Use the opportunity to refine your skill in Asking Questions like a developer.

  2. There’s a Code Reading exercise included in the debugging folder that will help you think through this project.

  3. Use the debugger! Write tests! Use the tools you have been learning to help you solve problems methodically.

How to submit

  1. Fork to your Github account.
  2. Make a branch for this project.
  3. Make regular small commits in this branch with clear messages.
  4. When you are ready, open a PR to the CYF repo, following the instructions in the PR template.
gitGraph commit id: "start" branch feature/book-library commit id: "skeleton page code" commit id: "Fonts and colours" commit id: "mobile layout" commit id: "lighthouse audit revisions mobile" commit id: "desktop layout" commit id: "lighthouse audit revisions desktop" checkout main merge feature/book-library

There are several projects in this repo. Make a new branch based on main for each project.

How to review

  1. Complete your PR template
  2. Ask for review from a classmate or mentor
  3. Make changes based on their feedback
  4. Review and refactor again next week.
  • 🎯 Topic Programming Fundamentals
  • πŸ• Priority Mandatory
  • πŸ‚ Size Medium
  • πŸ”‘ Priority Key
  • πŸ“… Data Flows
  • πŸ“… Sprint 2
  • πŸ”‘ Priority Key
  • πŸ“… Sprint 2
  • πŸ“… Data Flows
  • πŸ‚ Size Medium
  • πŸ• Priority Mandatory
  • 🎯 Topic Programming Fundamentals
[TECH ED] Codewars πŸ”— Clone

[TECH ED] Codewars πŸ”—

https://www.codewars.com/users/CodeYourFuture/authored_collections

Why are we doing this?

Every week you need to complete at least three kata. Spend at least 20 minutes, three times a week, on your kata workout.

Find the Collection for this module on the CodeYourFuture account.

You should be able to complete level 6 kata during this module. Make sure to start trying some 5kyu as well.

Maximum time in hours (Tech has max 16 per week total)

1

How to get help

Remember, after 20 minutes, take a break.

How to submit

Your codewars progress is tracked automatically and is available on the public API. You don’t need to submit it.

How to review

Once you have completed your kata, look at the other solutions in the solutions view. Consider how many different approaches there are. Is there something you would adopt for yourself? Revise your own solution.

  • 🎯 Topic Code Review
  • 🎯 Topic Problem-Solving
  • 🎯 Topic Programming Fundamentals
  • 🎯 Topic Requirements
  • 🎯 Topic Time Management
  • πŸ• Priority Mandatory
  • πŸ“… Sprint 2
  • πŸ“… Sprint 2
  • πŸ• Priority Mandatory
  • 🎯 Topic Time Management
  • 🎯 Topic Requirements
  • 🎯 Topic Programming Fundamentals
  • 🎯 Topic Problem-Solving
  • 🎯 Topic Code Review
[TECH ED] πŸ«±πŸ½β€πŸ«²πŸΏ Mentored pair programming πŸ”— Clone

[TECH ED] πŸ«±πŸ½β€πŸ«²πŸΏ Mentored pair programming πŸ”—

Learning Objectives

Pick one piece of programming you’re doing (we recommend a codewars kata) and pair up with a volunteer to work on it together.

See the mentored pair programming guide for guidance.

Book time with a volunteer using one of the Scheduling links in the #cyf-pair-programming slack channel’s canvas. If there are no available times, please post in #cyf-pair-programming.

Remember, as a learner, you will need to explain your thought process, plan out what to do, write the code and check it works

Why are we doing this?

Pair programming is an excellent way to develop programming and communication skills. It is often much easier to work through something when working on something 1-to-1. It is also helps our learners to prepare for technical interviews when they’ll need to code in front of other people.

Acceptance criteria

  • You have pair programmed on a piece of programming with a volunteer for at least one hour this sprint.

Objectives

  • πŸ• Priority Mandatory
  • πŸ¦” Size Tiny
  • πŸ“… Sprint 2
  • πŸ¦” Size Tiny
  • πŸ“… Sprint 2
  • πŸ• Priority Mandatory
Level 200: Swap Codebases πŸ”— Clone

Level 200: Swap Codebases πŸ”—

Level 200

For level 200, you are not allowed to work on the same codebase as you worked on for level 100.

Swap repos with a random person in your class. You do not need to coordinate your schedules.

Fork their GitHub repository to your GitHub username. You will need to give it a different name (e.g. Project-TV-Show-Partner), because you already have a repo named Project-TV-Show.

Clone their repository to your laptop.

Look at their level 100 implementation.

Compare their implementation to yours. Think:

  1. How is it different?
  2. What do you prefer about your implementation?
  3. What do you prefer about their implementation?
  4. What did you learn that you didn’t know before?

They should do the same with your repository.

Have a discussion about your answers to these questions. In class, together you should give a talk for 5 minutes about your conclusions. (Do this in small groups - we don’t want to take all day).

Refactoring

Before implementing new features, take some time to change the codebase you’re going to build level 200 in. Change anything you think will make it easier to add more features.

Some example ideas that you may want to think about:

  1. Could any variables or functions have more clear names, to help you understand what they do?
  2. Would extracting functions help make some code easier to understand?

Make a pull request to your partner’s repo with any changes you want to make. Have them review, and when happy, merge your PR.

Adding new functionality

Level 200 is all about being able to filter episodes.

Add a live search input which meets the following requirements:

When a user types a search term into the search box:

  1. Only episodes whose summary OR name contains the search term should be displayed
  2. The search should be case-insensitive
  3. The display should update immediately after each keystroke changes the input
  4. Display how many episodes match the current search
  5. If the search box is cleared, all episodes should be shown

Send a pull request to your partner’s repo with this functionality. Have them review, and when happy, merge your PR.

Screenshot of minimal version

Note: Provided your project meets the above requirements, it can look however you want.

Here is one example layout.

πŸ–ΌοΈ

Episode selector

Add a select drop-down which lets the user jump quickly to a particular episode, with the following requirements:

  1. The select input should list all episodes in the format: “S01E01 - Winter is Coming”
  2. When the user makes a selection, they should be taken directly to that episode in the list
  3. Bonus: if you prefer, when the select is used, ONLY show the selected episode. If you do this, be sure to provide a way for the user to see all episodes again.

Send a pull request to your partner’s repo with this functionality. Have them review, and when happy, merge your PR.

Screenshot of minimal version

Note: Provided your project meets the above requirements, it can look however you want.

Here is one example layout.

πŸ–ΌοΈ

  • 🎯 Topic Code Review
  • 🎯 Topic Iteration
  • 🎯 Topic Teamwork
  • πŸ“… Sprint 2
  • πŸ“… Sprint 2
  • 🎯 Topic Teamwork
  • 🎯 Topic Iteration
  • 🎯 Topic Code Review
Level 300: Swap back to your old codebase πŸ”— Clone

Level 300: Swap back to your old codebase πŸ”—

Level 300

For level 300, you should switch back to your original codebase.

You should have merged someone else’s level 200 implementation.

Once again, compare their implementation to yours. Think:

  1. How is it different?
  2. What do you prefer about your implementation?
  3. What do you prefer about their implementation?
  4. What did you learn that you didn’t know before?

Have a discussion about your answers to these questions. In class, together, give a 3 minute talk about your conclusions. Do this in small groups so you can be done in 15 minutes.

Refactoring

Like with level 200, feel free to change anything in your codebase which you think will make it easier to work with, or to build new features.

Have your partner review any changes you have, and make sure they understand them.

Adding new functionality

Level 300 is about getting rid of our static data from episodes.js, and instead using an API.

Requirements

  1. You must delete the episodes.js file from your repository.
  2. Your website must still work the same, but by using a fetch request to https://api.tvmaze.com/shows/82/episodes. This URL should serve the exact same content as was returned by getAllEpisodes in episodes.js.
  3. You must fetch this URL only once per visit to your website. You should not re-fetch when someone searches, scrolls, or selects an episode from the drop-down.
  4. If you don’t have data yet, you should show something to tell the user to wait for the data.
  5. If an error occurred loading the data, notify the user.
  6. Note: real users don’t look in the console - console.log or console.error are not sufficient for this requirement.
  7. You will need to simulate an error to test this out yourself.

Documentation

You can see that this endpoint has been documented here: https://www.tvmaze.com/api#show-episode-list

  • 🎯 Topic Code Review
  • 🎯 Topic Iteration
  • 🎯 Topic Requirements
  • 🎯 Topic Teamwork
  • πŸ“… Sprint 2
  • πŸ“… Sprint 2
  • 🎯 Topic Teamwork
  • 🎯 Topic Requirements
  • 🎯 Topic Iteration
  • 🎯 Topic Code Review