diff --git a/SUMMARY.md b/SUMMARY.md index 19567084..9700e8e2 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -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) @@ -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) diff --git a/courses/backend/README.md b/courses/backend/README.md index 3a33cdc7..c1e51d8e 100644 --- a/courses/backend/README.md +++ b/courses/backend/README.md @@ -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 @@ -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 diff --git a/courses/backend/final-project/README.md b/courses/backend/final-project/README.md index 62755fb9..1ddcadf1 100644 --- a/courses/backend/final-project/README.md +++ b/courses/backend/final-project/README.md @@ -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). diff --git a/courses/backend/final-project/backend-requirements.md b/courses/backend/final-project/backend-requirements.md new file mode 100644 index 00000000..0fb48608 --- /dev/null +++ b/courses/backend/final-project/backend-requirements.md @@ -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 diff --git a/courses/backend/final-project/session-plan.md b/courses/backend/final-project/session-plan.md new file mode 100644 index 00000000..e449f38e --- /dev/null +++ b/courses/backend/final-project/session-plan.md @@ -0,0 +1,3 @@ +# Session Plan + +TODO diff --git a/courses/foundation/final-project/README.md b/courses/foundation/final-project/README.md index 51fdfcbf..f7b205c8 100644 --- a/courses/foundation/final-project/README.md +++ b/courses/foundation/final-project/README.md @@ -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 - [ ] Work as a pair (two trainees) to complete the project together - [ ] Use Trello to organise your project and visualise your progress diff --git a/courses/foundation/final-project/session-plan.md b/courses/foundation/final-project/session-plan.md index f1059776..bd90eb62 100644 --- a/courses/foundation/final-project/session-plan.md +++ b/courses/foundation/final-project/session-plan.md @@ -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. +``` diff --git a/courses/frontend/README.md b/courses/frontend/README.md index 7d9745a5..798069b5 100644 --- a/courses/frontend/README.md +++ b/courses/frontend/README.md @@ -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 @@ -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 diff --git a/courses/frontend/final-project/README.md b/courses/frontend/final-project/README.md index 3265158a..9715e735 100644 --- a/courses/frontend/final-project/README.md +++ b/courses/frontend/final-project/README.md @@ -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). diff --git a/courses/frontend/final-project/frontend-requirements.md b/courses/frontend/final-project/frontend-requirements.md new file mode 100644 index 00000000..bdab47d9 --- /dev/null +++ b/courses/frontend/final-project/frontend-requirements.md @@ -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 diff --git a/courses/frontend/final-project/session-plan.md b/courses/frontend/final-project/session-plan.md new file mode 100644 index 00000000..e449f38e --- /dev/null +++ b/courses/frontend/final-project/session-plan.md @@ -0,0 +1,3 @@ +# Session Plan + +TODO diff --git a/support/src/documentationHelpers/programStructure.json b/support/src/documentationHelpers/programStructure.json index 29396d76..17ed6f13 100644 --- a/support/src/documentationHelpers/programStructure.json +++ b/support/src/documentationHelpers/programStructure.json @@ -83,7 +83,7 @@ "location": "shared-modules/agile-teamwork" }, { - "name": "Final Backend Project", + "name": "Final Project", "location": "courses/backend/final-project" } ] @@ -117,7 +117,7 @@ "location": "shared-modules/agile-teamwork" }, { - "name": "Final Frontend Project", + "name": "Final Project", "location": "courses/frontend/final-project" } ]