⚒️

Essential Development Tools

Git/GitHub

We use Git & GitHub for our version control software. This allows us to incrementally make changes to our code base and provides a method of going back to an old version of the code should we need to. You can install it here:

Downloading Git
Git is a member of Software Freedom Conservancy, which handles legal and financial needs for the project. Conservancy is currently raising funds to continue their mission. Consider becoming a supporter! × Now that you have downloaded Git, it's time to start using it.
https://git-scm.com/download/win

A link to our repo can be found here (you will need to be a member of the organisation to access it):

https://github.com/Forumm-Limited/forumm-monorepo

You can clone our repo with the following command in the terminal

git clone https://github.com/Forumm-Limited/forumm-monorepo.git

Rush

Once you have the repo on your computer you first need to install all of the external packages and dependencies required for the website to run. Typically you'd have a package manager that is responsible for managing, fetching, updating and installing new packages as required.

Our repo is split into several sections e.g. a section for the main website and a separate section for cloud functions. This would normally lead to a duplicate installation of some packages as both sections require the same package to be installed. To get around this issue we use Rush. Rush ensures that we only have one copy of each of the packages we need and it reuses it across the different parts of the repo.

To setup rush follow these instructions:

  1. Install NodeJS if you haven't already from here:
    Download | Node.js
    Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
    https://nodejs.org/en/download/
  1. Install rush with the following command: npm install -g @microsoft/rush
  1. Make sure you have pulled the latest version of the code with: git pull
  1. Run rush update to install the NPM packages as required (this may take some time)
  1. You can run pnpm run serve to start the development server to start the website.
❗
Whenever you pull the site and WebStorm prompts you to update the packages DO NOT click the button on the dialog that pops up. You should instead run rush update.

WebStorm

WebStorm is our prefered IDE (Integrated Development Environment) for writitng code. You can download it here:

Download WebStorm: The Smartest JavaScript IDE by JetBrains
We've noticed that JavaScript is disabled in your web browser. Please enable JavaScript in order to take advantage of all the features of this website. Download Webstorm for your operating system Windows, macOS, Linux.
https://www.jetbrains.com/webstorm/download/

When making changes to the code base for the website you want to open the directory forumm-monorepo/apps/web when you open the editor (and not just the main forumm-monorepo directory). For editing other parts of the system such as the Firebase Cloud functions code you should open a seperate window in WebStorm.

If you open a new terminal window in the editor you should be able to run the local web server using the following command:

pnpm run serve