-
Notifications
You must be signed in to change notification settings - Fork 9
Specialism final projects #252
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
16 commits
Select commit
Hold shift + click to select a range
d7c4908
small tweak to foundation doc
adamblanchard 0de3f95
Added basic outline for final project
adamblanchard ad5480c
initial frontend project requirements
adamblanchard ae0d485
intial backend requirements
adamblanchard 4231d39
linting
adamblanchard 7e3973d
Added the docs to the gitbook sidebar while we review them
adamblanchard c294e3a
linting
adamblanchard 861e77e
Updated file structure to fit into individual courses
adamblanchard 1d59d92
Added outline for presentation in foundation fp
adamblanchard 1a1417b
Update summary.md with new file structure
adamblanchard 5cc4ac2
Linting fixes
adamblanchard 58f4de3
merge main
adamblanchard 6db5271
Removed error in summary.md
adamblanchard 265d29c
Updated requirements link to match name in gitbook
adamblanchard 0ec5233
Rename to just final project everywhere
adamblanchard 1a8d716
updated learning goal overview on courses
adamblanchard File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| # Session Plan | ||
|
|
||
| TODO |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| # Session Plan | ||
|
|
||
| TODO |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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!
There was a problem hiding this comment.
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.