Tool preferences

Version control and repository management

We use Git as our version control system, ensuring reliable tracking of code changes and collaboration across the team. All repositories and projects are hosted and managed on GitLab, which provides an integrated platform for managing code, issues, and CI/CD pipelines. We also make use of GitLabs issue templates to standardise the way we create issues.

GitLab issue templates

A GitLab issue template is a predefined, structured format for creating issues in GitLab. These templates are designed to ensure that all necessary information is provided when an issue is reported, which helps in making the issue more understandable and actionable for the team. When you create a new issue in a GitLab project, you can choose from available templates.

GitLab allows the creation of multiple templates for different types of issues (bug reports, feature requests, etc.). This helps in capturing the specific information needed for each type.

Some advice when creating issues?

  • Ensure that the issue covers all necessary information but keep it as short as possible
  • Make issue titles readable to the general public
  • Use checklists where possible
  • Always ask for mockups if UI changes are necessary
  • Fill out all the sections, including the testing steps at the creation of the ticket (if possible)

How do we add GitLab issue templates to each repository?

Add markdown files to .gitlab/issue_templates/.

Please note: When creating the issue, please remove non-filled in sections and the[block instructions] to keep the issue concise and easy to read.

Bug template

[Brief description of the bug] ## Steps to reproduce [A numbered list of steps to reproduce the bug] ## Tasks (optional) [List of tasks to fix this bug] ## Expected behaviour when fixed (optional) [If it is not obvious, what is the expected behaviour after the bug is fixed?] ## Screenshots/Logs [Add any relevant screenshots or log excerpts] /label ~"🐜Bug"

Frontend (or App) feature/enhancement template

[Brief description of the feature] ## What is the benefit to the user/business? [Explain how this feature will benefit the business or the user experience] ## Tasks [List of checkbox tasks to implement this feature] ## Backend details (optional) [Link the backend ticket and add relevant endpoints with payloads and responses] ## Permission changes (optional) [If this feature requires permission changes, define them here] ## Mockups / Examples [Attach any mockups or links to examples] ## Testing steps [A numbered list of steps to test the entire feature] /label ~"★ Feature/enhancement"

Backend feature/enhancement template

[Brief description of the feature] ## What is the benefit to the user/business? [Explain how this feature will benefit the business or the user experience] ## Tasks [List of checkbox tasks to implement this feature] ## Permission changes (optional) [If this feature requires permission changes, define them here] ## Mockups / Examples (optional) [Attach any mockups or links to examples to help with context for the backend] ## Testing steps [A numbered list of steps to test the entire feature] /label ~"★ Feature/enhancement"

General task (default) e.g. refactoring/optimisation/investigation template

[Brief description of the task] ## Tasks [List of checkbox tasks to implement] ## Testing steps (optional) [A numbered list of steps to test the entire feature] /label ~Action

IDEs

  • Web and React Native: Visual Studio Code
  • Golang: GoLand or Visual Studio Code
  • Database: TablePlus or DataGrip
  • Git client: There are many good ones out there, but Fork and/or command-line is highly recommended

Visual Studio Code extensions

Here are some suggestions that might help your web development workflow. Feel free to suggest more as you come across useful ones: