Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,9 @@
- [Preparation](courses/frontend/react/week5/preparation.md)
- [Session Plan](courses/frontend/react/week5/session-plan.md)
- [Assignment](courses/frontend/react/week5/assignment.md)
- [Final Frontend Project](courses/frontend/final-project/README.md)
- [Final Project](courses/frontend/final-project/README.md)
- [Requirements](courses/frontend/final-project/frontend-requirements.md)
- [Session Plan](courses/frontend/final-project/session-plan.md)

- [Backend](courses/backend/README.md)
- [Advanced JavaScript](courses/backend/advanced-javascript/README.md)
Expand Down Expand Up @@ -153,7 +155,9 @@
- [Preparation](courses/backend/node/week2/preparation.md)
- [Session Plan](courses/backend/node/week2/session-plan.md)
- [Assignment](courses/backend/node/week2/assignment.md)
- [Final Backend Project](courses/backend/final-project/README.md)
- [Final Project](courses/backend/final-project/README.md)
- [Requirements](courses/backend/final-project/backend-requirements.md)
- [Session Plan](courses/backend/final-project/session-plan.md)

- [Common Modules](shared-modules/README.md)
- [Collaboration via GitHub](shared-modules/collaboration-via-github/README.md)
Expand Down
17 changes: 13 additions & 4 deletions courses/backend/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ This specialism course is focused on setting you up to land a Backend Developer
| [Node.js](./node/README.md) | 2 |
| [Specialist Career Training](/shared-modules/specialist-career-training/README.md) | 2 |
| [Agile Teamwork](/shared-modules/agile-teamwork/README.md) | 1 |
| [Final project](./final-project/README.md) | 5 |
| [Final Project](./final-project/README.md) | 5 |

Total: 18 weeks

Expand Down Expand Up @@ -81,9 +81,18 @@ Total: 18 weeks
- [ ] Understand how these skills and practices impact and support agility
- [ ] Be able to organise a very well structured project in collaboration with other developers for the final project

### [Final Backend Project](/courses/backend/final-project)

> ⚠️ "Learning goals" section is empty in `courses/backend/final-project`
### [Final Project](/courses/backend/final-project)

- [ ] Collaborate effectively in a team setting
- [ ] Read and extend/improve other peoples code
- [ ] Give and receive constructive PR feedback
- [ ] Plan, communicate and coordinate technical tasks / solutions upfront before implementation
- [ ] Develop self-guided learning skills (e.g. learn to read documetation for a new tool or API)
- [ ] Interpret a problem statement and specs/wireframes/prototypes into buildable requirements
- [ ] Break down bigger problems into smaller, actionable written tasks
- [ ] Work in iterative sprints and achieve deadlines
- [ ] Ask for help effectively and at the right time (e.g. describing problems to mentors, asking online, and knowing the power _and_ limitations of using AI)
- [ ] Deploy a completed project you are proud to showcase on your portfolio

<!-- END generate:learning-goals -->
<!-- prettier-ignore-end -->
35 changes: 30 additions & 5 deletions courses/backend/final-project/README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,34 @@
# Final project (back end)
# Final Project (Backend)

Coming soon
This module contains information about the final module of the program, where you will take everything you have learned so far and work together as a team to build a final project together.

## Module Learning Goals
This module usually runs for 4-5 weeks.

By the end of this module, you will be able to:
The final project can be organised differently, depending on the team responsible, mentors and the opportunities available at the time. The default option is to run it with:

TODO
1. Trainee-proposed projects (e.g. [example project proposal](https://docs.google.com/document/d/1558NnZ0Fuwol-UhZIo9YcxxO1UtI7vJOWYgkBmF2EPc/edit)) and built using [HYF Project Template](https://github.com/HackYourFuture-CPH/hyf-project-template)

Alternatively, when possible, we can run them as:

2. Client-driven projects designed in collaboration with a real client partner, built using their own templates and starting codebase.

## Learning Goals

These goals are required regardless of how the final project is organised.

By the end of this session, you will be able to:

- [ ] Collaborate effectively in a team setting
- [ ] Read and extend/improve other peoples code
- [ ] Give and receive constructive PR feedback
- [ ] Plan, communicate and coordinate technical tasks / solutions upfront before implementation
- [ ] Develop self-guided learning skills (e.g. learn to read documetation for a new tool or API)
- [ ] Interpret a problem statement and specs/wireframes/prototypes into buildable requirements
- [ ] Break down bigger problems into smaller, actionable written tasks
- [ ] Work in iterative sprints and achieve deadlines
- [ ] Ask for help effectively and at the right time (e.g. describing problems to mentors, asking online, and knowing the power _and_ limitations of using AI)
- [ ] Deploy a completed project you are proud to showcase on your portfolio

## Requirements

See [Requirements](backend-requirements.md).
39 changes: 39 additions & 0 deletions courses/backend/final-project/backend-requirements.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Backend Requirements

This document describes all requirements that you _must_ complete as part of finishing your project. You are strongly encouraged to implement your own ideas to showcase the range of your technical abilities - now is the time to push yourself! Don't forget to implement the requirements below, first, though.

## Product Requirements

Users must be able to:

TODO

## Technical Requirements

TODO

## Organisational Requirements

- [ ] Work as a team of 4-5 trainees to complete the project together
- [ ] Assign clear roles and/or areas of ownership between each team member
- [ ] Use Trello to organise your project tasks and visualise your progress
- [ ] Define all of your tasks clearly using Trello cards
- [ ] Organise your team using weekly sprints
- [ ] Run weekly planning sessions to decide on the next tasks and priority order for the sprint
- [ ] Submit small pull request(s) for each task, ready to be reviewed by other team members before merging

## Deliverables

To submit your finished project, you will need:

- [ ] A deployed and working API accessible via a public URL
- [ ] Deployed and viewable API docs describing all of your functionality
- [ ] A PostMan collection and test script(s) to demo your API
- [ ] Code versioned using git along with meaningful commit messages
- [ ] Code pushed to a public GitHub repo on your profile
- [ ] A README in the root of your repo including:
- [ ] A project description
- [ ] How to run it locally
- [ ] A link to your deployed API, docs and PostMan deliverables
- [ ] Key technical summary & decisions
- [ ] Known limitations & future improvements
3 changes: 3 additions & 0 deletions courses/backend/final-project/session-plan.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Session Plan

TODO
2 changes: 1 addition & 1 deletion courses/foundation/final-project/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Welcome to your final project! Here you can learn more about the goals and requi
- [ ] Design a data schema to store data for your app
- [ ] Create a database table with usable data

## Organisation Requirements
## Organisational Requirements

Copy link
Contributor

Choose a reason for hiding this comment

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

Based on our talk at HYF 2.0, Here the bullet points for the final P (from Soheib and me) regarding the project presentations.

Please feel free to suggest changes if needed, and add your ideas! 🙃

🎮 Final Project Presentation Guidelines
When: 3rd week of the Foundation project
Duration: 7–10 minutes per team

Presentation structure:

Start with your Trello board → Explain your workflow, task organization, and process.

Show your project → Demonstrate the working game/application.

Talk about contributions → Each team member should briefly explain what they worked on.

Requirements before presentation day:
✅ Project must be fully deployed and live.(did we decide which platform for deployment?)
✅ Prepare a QR code linking to your live project.

During the session:

Share the QR code so other teams can test your game on their devices.

Copy link
Contributor

Choose a reason for hiding this comment

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

I think it would also be good to have consistent steps for the Specialization final project.
That way, trainees would know what to expect in advance, and we don’t have to wait until two days before the presentation to tell them.

Would you like me to draft a similar set of guidelines for the Specialization phase as well?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@saloumeh-67 The guidelines sound good. The default deployment for the projects is render right now, since we have instructions for those.

Yes, would be great to get similar guidelines for the specialism so we can just get them in here already!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@saloumeh-67 and I decided to merge this pr first, then iterate with the session plans for each final project after.

- [ ] Work as a pair (two trainees) to complete the project together
- [ ] Use Trello to organise your project and visualise your progress
Expand Down
26 changes: 26 additions & 0 deletions courses/foundation/final-project/session-plan.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,29 @@ Note: Trainees will work in pairs to compelete the project. These pairs will hav
- Teaching moment: If there were any significant issues or confusions that came up, spend some time diving into them in detail.
- Introduce the next milestone: Talk through the next requirements in detail, and answer any questions.
- Pairing time: Allow space for the trainees to continue working on their project, answering any questions as they come up with the whole team.

### The final session

The final session acts as a showcase for the projects. Here is an outline that can be shared with trainees:

```plaintext
🎮 Final Project Presentation Guidelines
When: 3rd week of the Foundation project
Duration: 7–10 minutes per team

Presentation structure:

1. Start with your Trello board → Explain your workflow, task organization, and process.

2. Show your project → Demonstrate the working game/application.

3. Talk about contributions → Each team member should briefly explain what they worked on.

Requirements before presentation day:
✅ Project must be fully deployed and live.
✅ Prepare a QR code linking to your live project.

During the session:

Share the QR code so other teams can test your game on their devices.
```
17 changes: 13 additions & 4 deletions courses/frontend/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ This specialism course is focused on setting you up to land a Frontend Developer
| [React](./react/README.md) | 5 |
| [Specialist Career Training](/shared-modules/specialist-career-training/README.md) | 2 |
| [Agile Teamwork](/shared-modules/agile-teamwork/README.md) | 1 |
| [Final project](./final-project/README.md) | 5 |
| [Final Project](./final-project/README.md) | 5 |

Total: 19 weeks

Expand Down Expand Up @@ -74,9 +74,18 @@ Total: 19 weeks
- [ ] Understand how these skills and practices impact and support agility
- [ ] Be able to organise a very well structured project in collaboration with other developers for the final project

### [Final Frontend Project](/courses/frontend/final-project)

> ⚠️ "Learning goals" section is empty in `courses/frontend/final-project`
### [Final Project](/courses/frontend/final-project)

- [ ] Collaborate effectively in a team setting
- [ ] Read and extend/improve other peoples code
- [ ] Give and receive constructive PR feedback
- [ ] Plan, communicate and coordinate technical tasks / solutions upfront before implementation
- [ ] Develop self-guided learning skills (e.g. learn to read documetation for a new tool or API)
- [ ] Interpret a problem statement and specs/wireframes/prototypes into buildable requirements
- [ ] Break down bigger problems into smaller, actionable written tasks
- [ ] Work in iterative sprints and achieve deadlines
- [ ] Ask for help effectively and at the right time (e.g. describing problems to mentors, asking online, and knowing the power _and_ limitations of using AI)
- [ ] Deploy a completed project you are proud to showcase on your portfolio

<!-- END generate:learning-goals -->
<!-- prettier-ignore-end -->
35 changes: 31 additions & 4 deletions courses/frontend/final-project/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,34 @@
# Final project (front-end)
# Final Project (Frontend)

Coming soon
This module contains information about the final module of the program, where you will take everything you have learned so far and work together as a team to build a final project together.

## Module Learning Goals
This module usually runs for 4-5 weeks.

TODO
The final project can be organised differently, depending on the team responsible, mentors and the opportunities available at the time. The default option is to run it with:

1. Trainee-proposed projects (e.g. [example project proposal](https://docs.google.com/document/d/1558NnZ0Fuwol-UhZIo9YcxxO1UtI7vJOWYgkBmF2EPc/edit)) and built using [HYF Project Template](https://github.com/HackYourFuture-CPH/hyf-project-template)

Alternatively, when possible, we can run them as:

2. Client-driven projects designed in collaboration with a real client partner, built using their own templates and starting codebase.

## Learning Goals

These goals are required regardless of how the final project is organised.

By the end of this session, you will be able to:

- [ ] Collaborate effectively in a team setting
- [ ] Read and extend/improve other peoples code
- [ ] Give and receive constructive PR feedback
- [ ] Plan, communicate and coordinate technical tasks / solutions upfront before implementation
- [ ] Develop self-guided learning skills (e.g. learn to read documetation for a new tool or API)
- [ ] Interpret a problem statement and specs/wireframes/prototypes into buildable requirements
- [ ] Break down bigger problems into smaller, actionable written tasks
- [ ] Work in iterative sprints and achieve deadlines
- [ ] Ask for help effectively and at the right time (e.g. describing problems to mentors, asking online, and knowing the power _and_ limitations of using AI)
- [ ] Deploy a completed project you are proud to showcase on your portfolio

## Requirements

See [Requirements](frontend-requirements.md).
65 changes: 65 additions & 0 deletions courses/frontend/final-project/frontend-requirements.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Frontend Requirements

This document describes all requirements that you _must_ complete as part of finishing your project. You are strongly encouraged to implement your own ideas to showcase the range of your technical abilities - now is the time to push yourself! Don't forget to implement the requirements below, first, though.

## Product Requirements

Users must be able to:

- [ ] Easily understand the purpose of the app and who it's for
- [ ] Experience a consistent design throughout the app
- [ ] Sign up and log in
- [ ] Navigate between and use 3 (or more) distinct screens/pages
- [ ] View dynamic data/content (e.g. from an external API)
- [ ] Input, modify and submit persistent data (e.g. that saves across sessions)
- [ ] Receive feedback on their actions (e.g. loading, button clicks, input validation)
- [ ] Recover gracefully in the case of issues (e.g. missing data, api errors, invalid forms)
- [ ] Use the application on both desktop and mobile

## Technical Requirements

- [ ] User mangement
- [ ] Basic access control (e.g. logged in and logged out users have appropriate access)
- [ ] Session management (e.g. to maintain user state during their use of the app)

- [ ] Data
- [ ] Use 1 (or more) external APIs to support your apps dynamic features
- [ ] Store appropriate data persistently (e.g. via an API and/or local storage)

- [ ] Security and error handling
- [ ] Input sanitisation - Ensure all user input is cleaned to prevent security vulnerabilities
- [ ] Form validation - Validate user input to make sure they fit appropriate criteria (e.g. strong passwords)
- [ ] Error handling - Sufficient handling of issues and errors to avoid the app breaking

- [ ] Architecture
- [ ] Component-based architecture
- [ ] Handle routing of multiple pages with React Router

- [ ] UX and Design
- [ ] Responsive design (e.g. a layout that adapts to different screen sizes graciously)
- [ ] Consistent styling approach (e.g. component-specific styles, CSS modules)
- [ ] Basic accessibility (e.g. semantic HTML, alt-text, keyboard navigation on forms)

## Organisational Requirements

- [ ] Work as a team of 4-5 trainees to complete the project together
- [ ] Assign clear roles and/or areas of ownership between each team member
- [ ] Use Trello to organise your project tasks and visualise your progress
- [ ] Define all of your tasks clearly using Trello cards
- [ ] Organise your team using weekly sprints
- [ ] Run weekly planning sessions to decide on the next tasks and priority order for the sprint
- [ ] Submit small pull request(s) for each task, ready to be reviewed by other team members before merging

## Deliverables

To submit your finished project, you will need:

- [ ] A deployed and working app accessible via the browser with a public URL
- [ ] Code versioned using git along with meaningful commit messages
- [ ] Code pushed to a public GitHub repo on your profile
- [ ] A README in the root of your repo including:
- [ ] A project description
- [ ] How to run it locally
- [ ] A link to your deployed app
- [ ] Key technical summary & decisions
- [ ] Known limitations & future improvements
3 changes: 3 additions & 0 deletions courses/frontend/final-project/session-plan.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Session Plan

TODO
4 changes: 2 additions & 2 deletions support/src/documentationHelpers/programStructure.json
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@
"location": "shared-modules/agile-teamwork"
},
{
"name": "Final Backend Project",
"name": "Final Project",
"location": "courses/backend/final-project"
}
]
Expand Down Expand Up @@ -117,7 +117,7 @@
"location": "shared-modules/agile-teamwork"
},
{
"name": "Final Frontend Project",
"name": "Final Project",
"location": "courses/frontend/final-project"
}
]
Expand Down