This repository 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.
This module usually runs for 4-5 weeks.
The final project is organised differently for each team, depending on the team responsible, mentors and the opportunities available at the time. The options could include:
- Mentor-designed projects and built using HYF Project Template
- Trainee-proposed projects (e.g. example project proposal) and built using HYF Project Template
- Client-driven projects designed in collaboration with a real client partner, built using their own template.
- Collaboration in a team setting
- Learn to read and extend or improve other peoples code
- Learn to give/receive PR feedback
- Learn to plan and communicate technical solutions upfront before implementing
- Develop self-guided learning skills (e.g. learn to read documetation for a framework or API)
- Interpreting wireframes/prototypes into requirements
- Breaking bigger problems into smaller written tasks
- Working in sprints with deadlines
- Asking for help effectively and at the right time (e.g. describing problems to mentors, asking online, and the power and limitations of ChatGPT)
- Deploying a completed project you are proud to showcase on your portfolio
- Team code generation and validation
- Basic access control - Permissions to restrict user access depending on who they are
- Session management - Maintain user state during their use of the app
- Input sanitization - Ensure all user input is cleaned to prevent security vulnerabilities
- Form validation - Validate user inputs to make sure they fit any specific criteria you have (e.g. strong passwords)
- Error handling - Provide feedback on inputs if something isn't right
- RESTful endpoints - Implement endpoints that adhere to REST principles
- Request/response handling - Handle both making requests and handling their responses sufficiently
- Error responses - Handle errors from the API (e.g. informing the client, updating the UI appropriately)
- CRUD operations - Create, Read, Update and Delete functions to manage your data
- Relationship handling - Define and manage appropriate relationships between your data objects
- Data integrity - Ensure accuracy and consistency of your data (e.g. constraints, validation)
- Responsive design - A layout that adapts to different screen sizes
- Form handling - User friendly user input and submission flows
- Loading states - Visual indicators when content is not fully loaded
- Error states - User friendly, actionable feedback when something goes wrong
- Success feedback - Positive feedback when things are going to plan
They had the opportunity to work with two real clients. So the team was split into two 7 person teams, and worked together on these proposals:
- Atomic Learning Systems - Intro, Proposal, Live demo, Final code
- Kazboo - Intro, Proposal, Live demo, Final code
They had three teams & projects to choose from, all within the theme of "Team Health" (Intro)
- Project Time Off - Proposal, Live demo, Final code
- Project Check-In - Proposal,
Live demo, Final code - Project Retro - Proposal,
Live demo, Final code