Final Project

May 6, 2026 · View on GitHub

You did it! You learned all the pieces of the full stack and now it's time for you to put it all together to make an app of your own!

Prerequisites

Goals of the Final Project

In order of importance:

  1. Demo in front of sponsor companies - memorable part of your brand
  2. Create something all your own (for your portfolio, to discuss in interviews)
  3. Practice how to breakdown an idea into small, achievable chunks (a critical part of being an engineer)

These are Explicitly Not Goals of the Final Project

  1. Prove you learned framework X, Y, Z (that's what the assessments are for)
  2. To learn a new language or framework (although you can, this will eat into time to develop features)

Requirements

Your app must:

  • Use the PERN stack.
  • Have a database with at least 2 tables.
  • Connect to at least 1 external API. You must do something with the data received from this API, such as display it on the screen. APIs such as Auth0 do not fulfill this requirement.
  • Have at least 1 test per component.
  • Have a well-documented and easy-to-read README like this one that doesn’t have any template or placeholder text and is complete with a description (your one sentence pitch), a link to the deployed site (once that's live), installation/setup instructions, and a screenshot.
  • Have at least 25 commits weekly (200 for the entire project) that have been merged from a minimum of 3 branches across the entire project development.

The following items must be utilized for or included in your final project.

Tools

  • Chrome Developer Tools
  • VS Code
  • TDD (Jest & RTL)
  • Scrum
  • Terminal
  • Git
  • GitHub

Languages

  • JavaScript
    • RegEx
    • Datetime
    • Objects
    • Arrays
    • Functions
    • Conditionals
    • Iteration using methods and/or loops
    • Data fetch calls with error handling
  • HTML
  • CSS

Libraries & Frameworks

  • React
  • CSS
  • Express
  • Node
  • PostgreSQL
  • Any additional electives you completed that make sense to include. If it replaces some of the above requirements, be clear in your proposal and planning that this is the case (i.e. using a CSS Framework instead of building your own custom rules).

Other

  • Use GitHub issues and milestones to manage your progress.
  • Comment your code.
  • Use UI/UX design best practices.
  • Use an external API of your choice with at least three calls.
  • Request code reviews at least once per week and incorporate constructive feedback.
  • Include basic web accessibility. People should have no trouble with visual contrast, using zoom to magnify content, or navigating via screenreader or keyboard.

What Staff Will Evaluate

Staff will evaluate the final project against the requirements above, weekly milestones below, and the shared project evaluation criteria. Be ready to show a working PERN app, database and API integration, tests, deployment progress, accessibility, weekly GitHub issues/milestones, frequent commits across branches, and code review feedback you incorporated.

Schedule

Having a schedule and effectively managing your time is extremely important. The details below should give you the initial structure you need to formulate an effective schedule as you build your final project. As always, the details could change and it is your responsibility to make note of changes announced in person or via Slack or email. Expect a scattering of guest speakers and volunteers.

Because final projects are complex and we want you to have time to make a basic-but-polished project that will work nicely for your personal portfolio, it's important to stick with the deadlines provided.

Daily Template

  1. Welcome, any announcements
  2. Scrum
  3. Work on projects
  4. Lunch
  5. Work on projects
  6. Wrap-up
  7. Work on projects, check in with mentors, attend events
  8. Your weekly wrap ups will consist of a project share where you articulate how you've met the week's requirements

Project Prep Week Milestones

  • Selecting Your Project—brainstorm ideas, check feasibility, and select one to build.
  • Planning Your Project—plan and receive approval on your final project's:
    • MVP
    • One-sentence pitch
    • List of tools and frameworks you plan to use
    • Features
    • Technical risks
    • User flows
    • Wireframes
    • Style guide (typography, color palette, UI components and their interactive states, any icons or logos, any responsive considerations)
    • Database schema
    • Choose and research API(s)
    • Prioritization
    • Outline of features, components, & functions (identify what kind of tests you will perform on each component, state the states for each component, identify the props you need accessible to each component, and identify how your components will interact in order to create featutes)
    • Create Trello or other ticketing board and schedule out your work for the next month. Look at the Week 1-4 Milestones listed below to help you understand what your schedule should cover each week.
    • Prepare 3-5 minute presentation on your project
    • Add all appropriate links to the final project spreadsheet
    • Give your project a title and create a GitHub repository with an "about" description (in the top right of the GitHub page) and a README that includes a project description, keys needed (but not the keys themselves or any other private information!), installation instructions, data, and anything else needed to get your code running and understand the goals of the project. Here's a great past final project README. Any generic template or placeholder text should be removed.
    • Invite your mentor to be a collaborator on your project's GitHub repo.

Week 1 Milestones

  • Fork the project template or start your own project from scratch.
  • Deploy your initial project files.
  • Connect and test your database and APIs.
  • Initialize the components.
  • Have 1 code review and PR with your mentor and 1 PR partner.
  • Make sure you're committing at least 3 times daily and pushing at least 1 time per day to hit your commit requirement for this project.
  • Turn in a detailed summary of how you've met your week's deliverables.

Week 2 Milestones

  • Create your tests (unit and integration).
  • Complete MVP functionality.
  • Re-scope if needed.
  • Your medium article text will be due this week - make sure your README has been updated and you are ready to talk about your project!
  • Complete all primary features.
  • Launch your project to Render.
  • Have 1 code review and PR with your mentor and 1 PR partner.
  • Turn in a detailed summary of how you've met your week's deliverables.

Week 3 Milestones

  • Make a "complete_mvp" branch.
  • Build any nice-to-have/secondary features you have time for.
  • Polish the visual design and check for accessibility and UI/UX best practices.
  • Prepare your personal pitch and project demo (<3 minutes).
  • Refactor your code.
  • Check that your variable and function names are self-explanatory.
  • Clarify your code comments.
  • Add setup instructions to your repo's README, and make any updates so it reflects the current state of the app. Don't forget a screenshot!
  • Have 1 code review and PR with your mentor and 1 PR partner.
  • Ensure you have at your commit requirement (closer to 200 is better).
  • Turn in a detailed summary of how you've met your week's deliverables.

Week 4 Milestones

  • Present final project to cohort!
  • Record and submit your personal pitch and demo video—it should be 2 minute MAX for each part with NO READING
  • Turn in a detailed summary of how you've met your week's deliverables.

GitHub repository requitements for code and PR collaboration are weekly requirements (your code reviews from your mentor and PR partner and your commit requirement).

Prep Work

Before brainstorming ideas, it is helpful to think of your personal aim for the project, what is the most important aspect of it, unrelated to the problem your app solves.

Questions to Ask Yourself

  • What is your "specialty"? Ex. Do you love or hate CSS?
  • What was your favorite technology to learn this cohort?
  • What is something you wanted to learn but we didn't cover?

FAQ

Does my project have to be a PERN stack app?

Yes. This is so you can spend more time building than learning and so you have the right technical support along the way.

The more buzzwords my app uses the better, right?

Definitely not! The more shiny things you add into your app, the more time you'll spend learning about them and debugging them, rather than building actual features. Usually, simple is best. If in doubt, discuss the right balance with your mentor or the STEM.

Other Tips

  • The goal is not to build a perfect app or company; questions about your app will be more about the process than the features.
  • Projects are easiest when you've broken them down into the smallest tasks possible.
  • Prioritize relentlessly.
  • When you get stuck, first try to outline what you've done so far, what results you've gotten, and what exactly you're trying to do. If that doesn't help you come up with more things to try, show that outline to someone and ask for help.
  • Beware of "feature creep." Don't let anyone pressure you to immediately add features beyond your MVP—thank them and maybe write down notes for "some day."
  • Never push sensitive data (like API keys) to public repositories.
  • Set deadlines for how long you have to get something working and stick to them.
  • You can always learn more later—keep yourself from going too deep into a technology that isn't directly necessary for your MVP.
  • Make each feature in a new branch and submit a pull request with any questions to simplify code reviews.
  • Don't compare yourself to others. Don't be hard on yourself about not knowing everything yet. The important thing is to show you can learn.
  • Make your UI purposefully simple and basic at first so you can focus on your features. It doesn't need to be pretty right away.
  • Commit your changes often and push to GitHub at least 3 times per day (10:00am, Lunch Break, 3:00pm, Before Wrap-up)—you should have at least a 25 commits weekly showing on your project (200 total) by the end of the project.
  • Take care of yourself—take breaks, get sleep, eat three meals, drink enough liquids, etc.
  • Check in with mentors, volunteers, other participants, and #tech-help often, and don't be afraid to ask someone while they're still helping someone else so they know you need help next.
  • If you decided to incorporate Auth0 into your project, please implement it into your frontend as a final feature to work on - make sure you have complete project functionality before adding this!
  • Work on making sure your app is good for web and mobile (media queries and Flexbox - start with mobile responsiveness) after you've built all of your functionality.
  • Example Pitch Template

Full Time Program Week 14 - 17: Final Projet App Part 4 of 4