Tool Preferences
Version control and repository management
- We're using Git, as it has become the industry standard for version control and tracking changes.
- We decided to go with GitLab for hosting our repos. We decided to self-host it to keep costs down. Even the marketing and finance teams are using GitLab boards to organise priorities at this stage.
- We make use of GitLab templates.
What is a GitLab issue template?
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.
Why use issue templates?
- For clarity and consistency
- To provide guidance when creating an issue
- It reduces the back-and-forth communication to gather additional information
Can we have more than one template?
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 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
[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
[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
[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
[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 (Integrated Development Environments)
- Web and React Native: Visual Studio Code or JetBrains IDEs (e.g. GoLand)
- Golang: GoLand
- JSP: IntelliJ IDEA Ultimate
- 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:
- Auto Rename Tag – Automatically rename paired HTML/XML tag, similar to Visual Studio IDE
- Code Spell Checker – A basic spell checker that works well with code and documents
- ESLint – Integrates ESLint into VS Code
- Git Blame – See Git blame in the status bar
- HTML CSS Support – CSS Intellisense for HTML
- npm Intellisense – Autocompletes npm modules in import statements
- Path Intellisense – Autocompletes filenames
- Prettier – Code formatter – Code formatter using Prettier
- Rainbow Brackets – A rainbow brackets extension for VS Code
- Tailwind CSS IntelliSense – Intelligent Tailwind CSS tooling for VS Code
- Tailwind Docs – Easily access the Tailwind CSS documentation from within Code