πŸ‘©πŸΎβ€πŸš€ Portfolio

A sort of repeating pattern for portfolio project development

Portfolio block viewer

This block viewer lets you flick through all the existing blocks in the Portfolio folder so you can choose what parts to add to your pages and what parts you might want to create, revise, or leave out.

It's literally just an alphabetical list of whatever is in this folder.

Next steps

  • Comms: how are you going to communicate with each other during the week
  • Git workflow: what does your git workflow look like?

User feedback

  • Analyse feedback on your application as it is so far. Can users make use of any functionality
  • If users cannot interact with your application - then this is also good feedback! How can you get feedback as quickly as possible?

🎀 Guest Speaker

Learning Objectives

If a guest speaker is available, they will join us for this session. We will ask them questions about their career and their work, and they will give us advice about their specialism.

This is a placeholder block.

πŸ“ Ground rules

Learning Objectives

We’re going to start off by defining rules and expectations for working on projects during this module.

πŸ“ Ground rules

  1. We go together
  2. Do one project at a time
  3. We will put in the time - 25 hours

πŸ—οΈ Projects

  • We start a new project when everyone has finished the current one
  • We can work as individuals or in groups
  • “Done” means “Good enough to show an employer”
  • 1 great user story is better than 10 meh user stories

πŸ—£οΈ Communication

  • Post a link to your deployed application by midnight at the end of every Thursday
  • If everyone is ~done, we’ll start a new project on Saturday
  • If you’re not done, LIST YOUR QUESTIONS AND BLOCKERS
  • But don’t wait until Thursday to get help
  • We are flexible to people’s needs: but you must express your needs

πŸ”Ž Gathering requirements

Learning Objectives

In addition to [who] and [what], good user stories also include [why]

As a [who], I can [what] so that [why]

Choosing a project

ℹ️ Use this section if you’ve not already chosen a project

activity

πŸ•₯ Time: 30 minutes

πŸ“– Read

Read the business problem carefully Read ( if there are any ) the user stories carefully

❓ Questions

Answer the following questions:

  • Do you have any domain knowledge on this project?

  • Will you need to do more research to understand this business problem?

  • Does the business problem make sense? Can you explain the business problem in your own words?

  • Are there user stories for your chosen project brief? If not, sketch out some user stories.

  • If there are already user stories, check they make sense. Can you think of any more? Can you imagine the users of this application needing the stated functionality?

  • Does this project interest you?

Reflect and decide

discuss

πŸ•₯ Time: 10 minutes

Get back together as a team. Get one person from each pair to explain in their own words what the project brief is about. Explain why you think you should do this project.

activity

πŸ•₯ Time: 10 minutes

As a team, decide on which project you’re going to implement.

πŸ˜‰ Stand up

Learning Objectives

Take 15 minutes (set a timer!) to share your progress and blockers with your team. This is a chance to ask for help and to help others. Don’t get into details - just share the headlines and arrange to talk more after the stand up if you need to.

πŸ•ΉοΈ User Interface

Learning Objectives

As a team, you need to start thinking about and designing the user interface. To focus your discussion, keep these two things in mind for your UI:

Sufficiency

Sufficient means enough for a given purpose. Your user interface should provide enough functionality or data for users to achieve their goals.

Simplicity

Simple means easy to understand. Think of the number of times you’ve used a website and it’s been impossible to find the things you need. Your user interface should be simple and intuitive. Users should be able to figure how to navigate and use the user interface with minimal effort.

activity

πŸ•°οΈ Time: 20 minutes

Split into pairs. Each pair, choose a different user story. Work on the following tasks, remember to focus on sufficiency and simplicity.

  1. What kind of pages will you need?
  2. What are the key components of this page (inputs, forms, buttons, cards, etc)
  3. Ensure you can clearly define the purpose of each page and its components
  4. What kind of data will you need to expose in this view?

πŸ–ΌοΈ Wireframe

activity

πŸ•°οΈ Time: 20 minutes

Create some wireframes for the pages you described in the previous section If you’ve not made wireframes before, check out this guide to help you come up with some ideas: https://balsamiq.com/learn/articles/what-are-wireframes/

πŸͺž Reflect and check

activity

πŸ•°οΈ Time: 10 minutes

Now swap wireframes between each pair. Check the following: Does the proposed interface meet the requirements for the user story? Is it sufficient? Is it simple?

πŸ—ƒοΈ Data

Learning Objectives

For your application to work, your user interface will interact with other services. These services provide data and ways to update this data via the user interface.

Here are the kinds of things these services may do:

πŸ“– Reading

A means of reading data. The user interface might fetch data from some external source and render it in the interface.

πŸ’Ύ Persisting

A means of persisting changes. Users will need to create or update existing data. For example, a user might need to create a comment on an article. Another user may need to update the like/dislike on an existing comment. In each of these cases, any changes are persisted in a database. The user interface enables users to read and persist data without worrying about the

activity

  • What are the key components of the application, how are they connected, is it a static or a dynamic application, what kind of data are you storing?

  • What sort of data does the client application need - what kind of data is it fetching?

  • What is the purpose of each component in your application, how will it communicate with other components in the architecture?

  • How do your different pieces of data relate to each other? If you’re storing things in a database, what tables will you need, and what relationships will there between the tables?

🧩 Break it down

Learning Objectives

You’ll need to break up your user stories into manageable units of work. Breaking down tasks into sub-problems is challenging: we often don’t know in advance how challenging the sub-problem will be. However through iteration, practice and feedback we can continue improving how we break problems down.

🎟️ Issues

You can keep track of work using a GitHub project board as you’ve done throughout the course.

activity

⏰ Time 20 mins

  1. On your GitHub project board
  2. Create a new issue
  3. Set the title to the user story you just chose

βœ… Acceptance criteria

If you’re working on something, then you need a definition of “done”. In other words, you need to have measurable criteria for knowing when you’ve completed some task. Acceptance criteria are the requirements that must be met for a unit of work to be considered complete. Most often you’ll ue acceptance criteria to decide whether a user story has been implemented. Here are two ways of expressing acceptance criteria:

  • Scenario-oriented (the Given/When/Then template)
  • Rule-oriented (the checklist template) and

🫱 More detailed information on writing up acceptance criteria.

activity

⏰ Time 20 mins

  1. Choose one user story
  2. In pairs, come up with acceptance criteria. Decide on scenario-oriented or rule-oriented acceptance criteria.

🧩 Project time

Learning Objectives

This time is set aside to work as a team on your project.

Use this time wisely

You will have project time every Saturday. Don’t waste it. Use it to:

πŸͺž Employability

Learning Objectives

In this session we will work on our employability skills. This means: improving our CVs, LinkedIn profiles, GitHub profiles, finding and analysing job descriptions, and preparing for interviews.

This is a placeholder block.