Skip to content

Instantly share code, notes, and snippets.

@judytuna
Created January 2, 2019 19:40
Show Gist options
  • Save judytuna/23bd2ff2e540c16eb7fc389146cab94b to your computer and use it in GitHub Desktop.
Save judytuna/23bd2ff2e540c16eb7fc389146cab94b to your computer and use it in GitHub Desktop.

Final Project Outline

Overview

The final project is your chance to solidify what you've learned so far by putting concepts into practice with a project you've personally planned and built. Choose a project that gives you something to talk about during your job search and ideally involves something you're passionate about.

Goal

Build a well-scoped, functional application with a few defined features that demonstrates how much you've learned! In the end, you should be able to describe the features of your app, demo it, and include a well-documented GitHub repo.

Requirements

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

Tools

  • Chrome Developer Tools
  • Atom
  • TDD (Jasmine)
  • Scrum
  • Terminal
  • Git
  • GitHub

Languages

  • JavaScript
    • RegEx
    • Datetime
    • Objects
    • Arrays
    • Functions
    • Conditionals
    • For and while loops
    • AJAX
  • HTML
  • CSS

Libraries & Frameworks

  • React
  • Bootstrap
  • Express
  • Node
  • MongoDB or SQL
  • OAuth

Other

  • Use Github issues and milestones to manage your progress.
  • Comment your code.
  • Use UX/UI design best practices.
  • Use an API of your choice with at least three calls.
  • Use one of the data structures and algorithms covered (bonus if it's not one you presented!).
  • Request code reviews at least once per week and incorporate constructive feedback.
  • Make sure your app is good for web and mobile (start with mobile responsive and use media queries and Flexbox).
  • Include basic web accessibility.

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

  • 9 AM: Welcome, any announcements
  • 9:15 AM: Scrum
  • 9:30 AM - 12:30 PM: Work on projects
  • 12:30 PM - 1:30 PM: Lunch
  • 1:30 PM - 5:15 PM: Work on projects
  • 5:15 PM - 5:30 PM: Wrap-up

Week 1 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
    • Features
    • User flows
    • Wireframes
    • Style guide
    • Data model
    • Prioritization
  • Give your project a title and create a GitHub repository with a README that includes what keys, installations, data, and anything else needed to get your code running.
  • Create, successfully serve, and push your initial project files.
  • Create a Google Doc with your name in both titles, the name of your project, the GitHub link, and all of the items in the "Planning Your Project" list above. Share with facilitators, mentors, and other participants.
  • Invite your mentor to be a collaborator on your project's GitHub repo.

Week 2 Milestones

  • Start with the main feature.
  • Set up your database and migration scripts.
  • Retrieve and test your data.
  • Re-scope if needed.
  • Have a code review.

Week 3 Milestones

  • Complete all primary features.
  • Get OAuth 2 working.
  • Have a code review.

Week 4 Milestones

  • Make a "complete_mvp" branch.
  • Create your tests (unit and integration, if possible!).
  • Build any nice-to-have/secondary features you have time for.
  • Start on the visual design.
  • Prepare your personal pitch and project demo (<5 minutes).
  • Have a code review.

Week 5 Milestones

  • Stop building any new features (feature freeze).
  • Polish the visual design and check for accessibility and UI/UX best practices.
  • Practice your personal pitch and project demo (<5 minutes).
  • Have a code review.
  • Refactor your code.
  • Clarify your code comments.
  • Deploy so your project is on the web, if possible.
  • Add setup instructions to your repo's README.
  • Check that your variable and function names are self-explanatory.

Remember

  • 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 a new branch with each week's changes and submit a pull request with any questions to simplify code reviews.
  • Watch out for impostor syndrome. When it comes knocking, identify it and try to move on. 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.
  • Don't work on the appearance of your project until the end; working features come first.
  • Commit your changes often and push to GitHub at least a couple of times per day.
  • Take care of yourself—take breaks, get sleep, eat three meals, drink enough liquids, etc.
  • Check in with mentors, volunteers, other apprentices, 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment