tasuke uses a primarily Go stack, with a NodeJS browser application for user registration. Infrastructure is hosted on GCP, with Firestore used for database. This document will go through the steps to be ready for local development of any part of tasuke. Individual component READMEs will document the subset of requirements for that component - if not needing to develop on any part, feel free to skip unnecessary steps.
The three tools required for development are Go, NodeJS, and gcloud CLI. Note, for frontend development, only NodeJS is required and for all other development, NodeJS is not required.
For MacOS users, it is recommended to install tools using Homebrew. First install Homebrew, then install the tools.
brew install go google-cloud-sdk node
For Ubuntu users, the default packages in apt will generally be quite old. Follow instructions for each tool for using a PPA to have more modern packages.
Install pnpm
using corepack
, which is part of NodeJS.
corepack enable
Refresh node dependencies
pnpm i
Allow accessing GCP resources (Firestore) by logging into gcloud CLI.
gcloud auth application-default login
You will want to make sure to use a GCP project with a (default)
Firestore database available.
For VSCode users, it is strongly recommended to load the repository's workspace settings using
File > Open Workspace from File > tasuke.code-workspace
. If prompted, install recommended extensions.
Doing this will ensure formatting runs on save in a way that is consistent with CI.