Skip to content

Instantly share code, notes, and snippets.

@gsong
Last active April 6, 2021 20:01
Show Gist options
  • Save gsong/56590f78110008b05fb49c868f5d0901 to your computer and use it in GitHub Desktop.
Save gsong/56590f78110008b05fb49c868f5d0901 to your computer and use it in GitHub Desktop.
Techtonica Project Planning

Planning Your Final Project

Elements of Your Final Project

README

Non-Technical

  • Link to demo app

  • Elevator pitch

  • App features

    You can consider using a checklist format, to show which features are completed so far.

Technical

  • What does the stack look like? E.g. database, API server, browser app, etc. If you can draw a diagram, all the better.
  • Anything specific that you're proud of, or want to highlight?
  • How to set up development environment and run the project locally.

Code

  • Mind your .gitignore, aka: don't check in extraneous files.
  • Tidy code and file organization.
    • Most important code at the top of the file.
  • Consistent and meaningful filenames.
  • Consistent and meaningful component, variable, and function names.
  • Remove debugging statements.
  • Remove unnecessary comments.
  • Remove unnecessary files.
  • Make sure you don't accidentally check in any secrets.

Build

  • Lint your code (eslint)
  • Format your code (prettier)

Planning Your Project

  • 4–6 weeks is a lot less time than you think.
  • Be careful of introducing too many new technologies.
  • User experience is more important than styling.
  • Identify risks early on.
  • Consider using design-led process—work backwards from the UI.
  • Plan your progress so that the app always works.
  • Ask for code review as early as possible, and do it throughout your project.
  • Think about dependencies. For example, if you require the user to log in, then perhaps set up the user and authentication infrastructure first.

Pointers

  • As early in the project as possible, deploy your code.
  • Set up an easy way to deploy, so you're always deploying.
  • Get into the habit of using feature branches, and deploy from your main.
  • Try to write meaningful commit messages: what changed, why was it changed?
  • General workflow:
    1. Plan a discrete chunk of work.
    2. Do the design and planning work, if necessary.
    3. Make it work.
    4. Deploy it.
    5. Refactor.
    6. Deploy.

Integrating With Third-Party APIs

Working with third-party APIs should always be considered a risk, unless you already have prior experience with it. You'll want to actually play with it as early in the project as possible, so you can thoroughly understand how your code is going to interact with it.

  • Does it have limitations that'll hinder your app? E.g. usage limits.
  • Is there already a client library that you can use?
  • Will you interact with it on the client side or the server side?
    • If the credential cannot be leaked, then you'll want to proxy the API access using your own backend.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment